我有一张桌子
+-----------+----------+--------+-------+---------+ |Customer ID|Visit Date|Category|Product|Served by| +-----------+----------+--------+-------+---------+ |1001 |03/17/2019|A |P11 |Jone Doe | |1003 |03/17/2019|D |P12 |Jone Doe | |1006 |03/15/2019|C |P13 |Jone Doe | |1009 |03/10/2019|G |P14 |Jone Doe | |1011 |12/12/2018|H |P15 |Foo Bar | |1003 |11/11/2018|D |P16 |Foo Bar | |1006 |09/10/2018|C |P17 |Foo Bar | |1009 |10/10/2018|G |P18 |Foo Bar | +-----------+----------+--------+-------+---------+
有4个客户,但上一季度仅拜访了2个(1003和1009)。
我使用了DATESINPERIOD,但是在前几个季度之间(我有一个指定的日期表),它的计数全部不同。
第一种方法
customers_count =
CALCULATE (
DISTINCTCOUNT[Customer ID],
DATESINPERIOD (
'Calendar'[Date],
ENDOFQUARTER ( 'Calendar'[Date] ),
-2,
QUARTER
)
)
第二种方法
customers_count 2Q =
VAR customers_count_1 =
DISTINCT ( FILTER ( VALUES ( Orders[Customer ID] ) ) )
VAR customers_count_2 =
CALCULATETABLE (
DISTINCT ( FILTER ( VALUES ( Orders[Customer ID] ) ) ),
DATEADD ( 'Calendar'[Date], -1, QUARTER )
)
RETURN
COUNTROWS ( INTERSECT ( customers_count_1, customers_count_2 ) )
上个季度的预期数量为2。
答案 0 :(得分:0)
您的第二种方法看起来很合理。在没有DISTINCT
和FILTER
的情况下进行尝试。
customers_count 2Q =
VAR customers_count_1 =
VALUES ( Orders[Customer ID] )
VAR customers_count_2 =
CALCULATETABLE (
VALUES ( Orders[Customer ID] ),
DATEADD ( 'Calendar'[Date], -1, QUARTER )
)
RETURN
COUNTROWS ( INTERSECT ( customers_count_1, customers_count_2 ) )
VALUES
函数返回其列参数在过滤器上下文内的不同值的列表。