如何计算项目最小日期并统计符合条件项目数(排除子类别干扰)
正确统计最小日期在指定月份的项目数量
问题原因
你当前的统计度量值错误在于:
- 未按项目维度计算最小日期,而是直接在表行级筛选中使用全局的
minDate,导致只要项目下存在任意一行日期符合2024年1月的条件,就会被错误统计,忽略了项目的实际最小日期。 - 多
FILTER叠加的筛选逻辑是行级的,没有先聚合到项目维度判断最小日期。
解决方案
1. 定义按项目计算最小日期的度量值(可选,方便复用)
项目最小日期 = CALCULATE(MIN('Table 1'[Date]), ALLEXCEPT('Table 1', 'Table 1'[Project]))
这个度量值会忽略Country等其他筛选器,只保留Project的上下文,返回每个项目的最小日期。
2. 统计符合条件的项目数量
使用以下度量值,先聚合每个项目的最小日期,再筛选符合2024年1月的项目并计数:
2024年1月最小日期项目数 = VAR 项目最小日期表 = ADDCOLUMNS( VALUES('Table 1'[Project]), // 获取所有唯一项目 "项目最小日期", CALCULATE(MIN('Table 1'[Date])) // 计算每个项目的最小日期 ) RETURN COUNTROWS( FILTER( 项目最小日期表, YEAR([项目最小日期]) = 2024 && MONTH([项目最小日期]) = 1 ) )
验证效果
这个逻辑会先为每个项目计算独立的最小日期,再判断该日期是否在2024年1月,最后统计符合条件的项目数,完全消除Country等子类别对统计结果的干扰,项目2因为最小日期是2023年12月1日不会被统计进去。
内容的提问来源于stack exchange,提问作者Ana Iliescu
相关产品推荐
相关产品推荐

