Power BI:基于多条件创建特定计算字段的技术求助
Power BI计算字段解决方案
嘿,刚接触Power BI遇到这种问题很正常,我来帮你捋清楚这个计算逻辑!
首先,你的公式可以做个数学简化,等价于:NameSubmitted出现次数 × (2 - 对应行的平均Time值),这样写DAX会更清晰易读。
下面是具体的DAX代码(记得把YourTable换成你实际的表名):
NameSubmitted Calculation = -- 定义变量:统计"NameSubmitted"的出现次数 VAR SubmittedOccurrences = CALCULATE(COUNTROWS('YourTable'), 'YourTable'[Event] = "NameSubmitted") -- 定义变量:计算这些行的Time平均值 VAR AvgTimeForSubmitted = CALCULATE(AVERAGE('YourTable'[Time]), 'YourTable'[Event] = "NameSubmitted") -- 按照公式返回结果 RETURN SubmittedOccurrences * (2 - AvgTimeForSubmitted)
代码细节解释:
SubmittedOccurrences:用CALCULATE筛选出Event等于"NameSubmitted"的行,再用COUNTROWS统计数量,也就是你要的出现次数。AvgTimeForSubmitted:同样用CALCULATE锁定目标行,然后用AVERAGE计算Time列的平均值。- 最终返回的结果完全匹配你要求的公式逻辑,只是做了数学简化,计算结果和你原本的公式完全一致。
使用步骤:
- 在Power BI的建模选项卡中,点击新建度量值(如果需要逐行计算结果可以选「新建计算列」,但报表场景下度量值更常用)。
- 粘贴上面的代码,把
YourTable替换成你自己的表名。 - 把这个度量值添加到可视化组件里就能看到结果啦!
内容的提问来源于stack exchange,提问作者Dee




