PowerBI中基于当前月份动态列的COUNTROWS统计实现
解决DAX计算指定月份状态行数的问题
数据集结构
| id | april | may | june | july |
|---|---|---|---|---|
| 1 | scheduled | done | null | done |
| 2 | scheduled | scheduled | done | |
| 3 | ongoing | canceled | scheduled | |
| 4 | ongoing | scheduled | scheduled |
需求说明
当前月份为六月,需计算june列中状态为scheduled的行数,预期结果为2。
尝试的DAX函数
measure_countrows = CALCULATE(COUNTROWS(df), df[**ACTUAL_MONTH(june)**] == "scheduled")
问题分析与解决方案
你的DAX写法错误在于列引用方式不合法,不能用df[**ACTUAL_MONTH(june)**]这种格式指定列。直接引用目标列名即可得到正确结果:
固定月份(六月)的写法
measure_countrows = CALCULATE(COUNTROWS(df), df[june] = "scheduled")
这个度量值会直接筛选june列等于scheduled的行,统计行数后返回预期的2。
动态适配当前月份的写法
如果需要自动匹配当前系统月份(无需固定写死列名),可以使用以下动态方案:
DynamicCountScheduled = VAR CurrentMonth = FORMAT(TODAY(), "mmmm") // 获取当前月份英文全称,如"June" VAR TargetColumn = MAXX( SELECTCOLUMNS(df, "Status", [&CurrentMonth]), [Status] ) RETURN COUNTROWS(FILTER(df, TargetColumn = "scheduled"))
内容的提问来源于stack exchange,提问作者Jresearcher
相关产品推荐
相关产品推荐

