如何在DAX中对同一列按ID条件应用不同计算逻辑?
DAX公式返回空值的解决方法
你的问题出在连续写了两个独立的IF函数——DAX中一个计算列或度量值只会返回最后一个表达式的结果:
- 当ID≤1733时,第一个IF的执行结果被丢弃,第二个IF因不满足条件返回空值,最终整体返回空;
- 当ID>1733时,第一个IF不执行,第二个IF能返回正确结果,但你看到的空值来自ID≤1733的行。
另外注意你原代码里写的是[Value]/23*100,和需求的Value/3*100不一致,下面的代码已按你的需求修正,若实际需要/23可自行调整。
正确写法1:单IF嵌套(最简洁)
Result = IF( 'Data'[ID] <= 1733, [Value]/3*100, [Value]*100 )
IF函数的标准结构是IF(判断条件, 满足条件的结果, 不满足条件的结果),用第二个参数和第三个参数分别对应两种情况,覆盖所有ID值。
正确写法2:SWITCH函数(多条件场景更易读)
如果后续有更多判断条件,用SWITCH会更清晰:
Result = SWITCH( TRUE(), 'Data'[ID] <= 1733, [Value]/3*100, 'Data'[ID] > 1733, [Value]*100 )
内容的提问来源于stack exchange,提问作者Cheries
相关产品推荐
相关产品推荐

