请求编写Power BI/Excel Power Pivot度量值:统计花园各月开花数量
DAX度量值:统计各月份花卉开花数量(适配大表)
前提假设
- 日期表包含
[年月]列(建议为每月第一天的日期格式,如2024-07-01,或数字格式如202407,需与花卉表的花期月份格式一致) - 花卉表包含
[花卉品种]、[始花期月份]、[终花期月份]、[种植数量]列,其中花期月份与日期表[年月]格式匹配
度量值代码
开花数量 = VAR 当前年月 = SELECTEDVALUE('日期表'[年月]) RETURN CALCULATE( SUM('花卉表'[种植数量]), '花卉表'[始花期月份] <= 当前年月, '花卉表'[终花期月份] >= 当前年月, ALLSELECTED('花卉表'[花卉品种]) )
代码说明
- 变量定义:
当前年月获取当前筛选上下文下的单个年月值(表格/矩阵每行对应一个年月时,会自动匹配该行的年月) - CALCULATE筛选:
- 筛选出花期覆盖当前年月的花卉品种(始花期≤当前年月≤终花期)
ALLSELECTED('花卉表'[花卉品种])保留品种筛选上下文:若筛选了特定品种,仅统计该品种的开花数量;无品种筛选时,统计所有符合条件品种的总种植数
- 性能优化:直接使用
SUM聚合函数配合CALCULATE筛选,避免全表迭代,适配85500行的大花卉表需求
使用方法
- 在Power BI/Excel Power Pivot中,将日期表的
[年月]拖到可视化的行/列区域 - (可选)将花卉表的
[花卉品种]拖到列/行区域,实现分品种统计 - 将
开花数量度量值拖到值区域,即可自动生成各年月的开花数量统计表格 - 若仅需未来月份数据,可给日期表添加计算列标记未来月份,再筛选该列:
是否未来月份 = IF('日期表'[年月] >= TODAY(), "是", "否")
内容的提问来源于stack exchange,提问作者zkilnbqi
相关产品推荐
相关产品推荐

