谢谢你提前帮忙。
我正在尝试创建一种方法,根据日期对某些列的调整值进行求和:
逻辑是:
如果日期在2022年6月22日之前,那么:对于销售代码"A0001“、"A0003”和"A0004",请将它们的销售数量(另一列)调整为*3
对于销售代码"B0001",将其销售数量(另一列)调整为*4,
对于销售代码"C0001",将其销售数量(另一列)调整为*5,
否则,销售数量保持不变。
到目前为止,这是我所掌握的,但它的计算不正确。
Measure =
SUMX('TABLE’,
SWITCH (
'TABLE'[Date] < DATE(2022,06,22)
'TABLE'[Sales Code] in {"A0001", "A0003", "A0004"}, 'TABLE'[Sales Count] * 3,
'TABLE'[Sales Code] in {"B0001"}, 'TABLE'[Sales Count] * 4,
'TABLE'[Sales Code] in {"C0001"}, 'TABLE'[Sales Count] * 5,
'TABLE'[Sales Count]
)
)
发布于 2022-06-22 23:28:16
首先,您忽略了SWITCH()
函数的第一个参数。它期望在这个地方有真/假结果的表达式。
有一个使用TRUE()
作为第一个参数的提示,但它不是一个通用的解决方案,应该谨慎使用。若要更多地了解使用此提示可能出现的问题,请阅读这。
然后,我想提醒您,您可以使用&&
(和)和||
(OR)来编写复杂的条件。
因此,您的问题的解决方案如下:
Measure =
SUMX(
'TABLE',
SWITCH (
TRUE,
'TABLE'[Date] < DATE(2022,06,22)
&& 'TABLE'[Sales Code] in {"A0001", "A0003", "A0004"},
'TABLE'[Sales Count] * 3,
'TABLE'[Date] < DATE(2022,06,22)
&& 'TABLE'[Sales Code] in {"B0001"},
'TABLE'[Sales Count] * 4,
'TABLE'[Date] < DATE(2022,06,22)
&& 'TABLE'[Sales Code] in {"C0001"},
'TABLE'[Sales Count] * 5,
'TABLE'[Sales Count]
)
)
对于那些刚开始使用SWITCH()
函数的人,我建议您访问此页。
https://stackoverflow.com/questions/72723130
复制相似问题