DAX计算月度/全局最高4-5分连续天数问题求助
解决DAX连续天数最大值计算问题
你的现有度量值只计算了筛选范围内最后一天的连续天数,而非遍历所有符合条件的日期区间找出最大值,这就是结果仅为1的原因。以下是满足需求的DAX度量值:
Max Consecutive Green Days = VAR FilteredDates = CALCULATETABLE( VALUES('Rate the Day'[RatingDate]), 'Rate the Day'[Rating] IN {4,5}, ALLSELECTED('Rate the Day') ) VAR NumberedDates = ADDCOLUMNS( FilteredDates, "GroupID", 'Rate the Day'[RatingDate] - RANKX(FilteredDates, 'Rate the Day'[RatingDate],, ASC, DENSE) ) VAR GroupedDays = GROUPBY( NumberedDates, [GroupID], "@Days", COUNTX(CURRENTGROUP(), 'Rate the Day'[RatingDate]) ) RETURN IF(ISBLANK(MAXX(GroupedDays, [@Days])), 0, MAXX(GroupedDays, [@Days]))
关键步骤说明
- FilteredDates:筛选当前上下文(选中月份或全表)内所有Rating为4/5的日期,用
VALUES去重避免同一日期重复统计。 - NumberedDates:给每个符合条件的日期生成
GroupID——连续日期的序号递增与日期递增同步,因此日期减序号的结果一致,实现连续日期自动分组。 - GroupedDays:按
GroupID分组,计算每组的日期数量(即连续天数)。 - 返回结果:取所有分组中的最大连续天数,无符合条件日期时返回0。
这个度量值会自动适配筛选规则:选中指定月份时计算该月内的最大值,无筛选时返回全表最高连续天数。
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

