Query 2
我在 Power BI 中有一个名为的表。
记录 ID | 地点 | 开始日期 | 活动 | 结束日期 | 期间 | 总计数 |
---|---|---|---|---|---|---|
10 | 1 | 2022 年 9 月 24 日 | 棒球 | 2022 年 10 月 1 日 | 1 | 1 |
10 | 1 | 2022 年 10 月 11 日 | 棒球 | 2022 年 11 月 1 日 | 1 | 2 |
10 | 1 | 2022 年 9 月 24 日 | 篮球 | 2022 年 11 月 1 日 | 3 | 3 |
10 | 1 | 2022 年 10 月 1 日 | 篮球 | 2022 年 11 月 1 日 | 3 | |
10 | 1 | 2022 年 10 月 11 日 | 篮球 | 2022 年 11 月 1 日 | 3 | |
10 | 1 | 2022 年 10 月 11 日 | 足球 | 2022 年 12 月 12 日 | 2 | 4 |
10 | 1 | 2022 年 11 月 1 日 | 足球 | 2022 年 12 月 12 日 | 2 | |
10 | 1 | 2022 年 11 月 1 日 | 足球 | 2022 年 12 月 12 日 | 1 | 5 |
该列total_count
是我想要实现的,它不是数据中的实际列,需要计算。它基于 record_id、activity 和 end_date 的组合进行计算,当这三列之一发生变化时,它应该算作一列。如果下一行中的这些值仍然相同,则计数不应改变,该行保持空白,但如果下一行中的一个值发生变化,计数应该增加。我尝试了以下代码,它很接近:
Total_Count =
VAR CurrentRow =
'Query2'[record_id] & "-" & 'Query2'[Activity] & "-" & 'Query2'[end_date] & "-" & 'Query2'[duration]
VAR PreviousRows =
FILTER(
'Query2',
'Query2'[record_id] & "-" & 'Query2'[Activity] & "-" & 'Query2'[end_date] & "-" & 'Query2'[duration] < CurrentRow
)
RETURN
IF(
RANKX(
FILTER(
'Query2',
'Query2'[record_id] = EARLIER('Query2'[record_id]) &&
'Query2'[Activity] = EARLIER('Query2'[Activity]) &&
'Query2'[end_date] = EARLIER('Query2'[end_date]) &&
'Query2'[duration] = EARLIER('Query2'[duration])
),
'Query2'[start_date],
,
ASC,
DENSE
) = 1,
COUNTROWS(PreviousRows) + 1,
BLANK()
)
第一次重复后计数出错,我的 中为 4 total_count
,结果得到 6。
尝试这种变化 - 它计算以前的唯一组合而不是行: