在 Dax 中,如何计算一列中等于另一列值的值?

In Dax, how can i count values in one column that equal the value of another column?

我有两列,我想要一个 table 显示“周开始”中“分配日期”的数量,因此对于 2022 年 1 月 1 日的“周开始”,它应该为 0,因为1/7/2022的“Week Start”应该是2,1/14/2022和1/21/2022应该是1.

我有两个日期列

Week Start Assign Date
1/1/2022 1/8/2022
1/8/2022 1/8/2022
1/15/2022 1/15/2022
1/22/2022 1/22/2022

我想要一个日期栏和一个计数栏

Week Start Assign Count
1/1/2022 0
1/8/2022 2
1/15/2022 1
1/22/2022 1

我是 DAX 的新手,我认为我把解决方案复杂化了,但我不知道从哪里开始。因为我正在学习 DAX,所以我想在 DAX 度量中得到它。

可能还有更高效的方法M-Code,但是我这里做的是 使用 List.Accumulate 计算正确范围内的条目数:>=Week Start<Week Start + 7 days

M代码

let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Week Start", type date}, {"Assign Date", type date}}),

    #"Added Custom" = Table.AddColumn(#"Changed Type", "Assign Count", 
        each List.Accumulate(
                #"Changed Type"[Assign Date],
                0,
                (state, current)=> 
                    if current >=[Week Start] and current < Date.AddDays([Week Start],7) then state +1 else state)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Assign Date"})
in
    #"Removed Columns"

或者这个措施:

Assign Count :=
VAR ThisWeekStart =
    MIN( Table1[Week Start] )
RETURN
    0
        + COUNTROWS(
            FILTER(
                ALL( Table1 ),
                Table1[Assign Date] = ThisWeekStart
            )
        )

您可以将其与 Week Start 字段一起放置在视觉对象中。