在powerbi中进行分组和过滤时遇到一些麻烦。我想弄清楚这个问题,因此,我的目标是使所有内容都在DAX上完成,而不使用报告中的过滤器。我这样做是因为我将创建与此表相关的其他表。
所以,假设我有一张这样的桌子叫做sales:
Order Customer Product Date Amount Type
A001 John TV 01/02/2019 200,00 ok
A002 Mark Chair 10/02/2019 150,00 ok
A003 John Bed 15/02/2019 50,00 Cancelled
A004 Mark TV 17/02/2019 75,00 ok
A004 Susan Table 19/02/2019 20,00 ok
A005 John Pillow 21/02/2019 50,00 ok
我想得到另一个这样的表:
Customer Orders Last Order First Order Amount Type
John 2 21/02/2019 01/02/2019 250,00 ok
John 1 15/02/2019 15/02/2019 50,00 Cancelled
Mark 2 17/02/2019 10/02/2019 225,00 ok
Susan 1 19/02/2019 19/02/2019 20,00 ok
因此,如果我不考虑产品是否被取消,那么创建另一个表的公式将是:
GROUPBY = (Sales;
'sales'[Customer]
"orders"; countx(currentgroup();'sales'[order]);
"last_order";MAXX(currentgroup();'sales'[Date]);
"first_order";MINX(currentgroup();'sales'[Date]);
"Amount";SUMX(currentgroup();'sales'[Amount]))
问题是,如何对类型进行分组并了解订单是否被取消?
tks
答案 0 :(得分:1)
就个人情况而言,我比较喜欢SUMMARIZECOLUMNS
而不是GROUP BY
,因为它不太冗长。
Summary =
SUMMARIZECOLUMNS (
Sales[Customer],
Sales[Type],
"orders", COUNT ( Sales[Order] ),
"last_order", MAX ( Sales[Date] ),
"first_order", MIN ( Sales[Date] ),
"Amount", SUM ( Sales[Amount] )
)
答案 1 :(得分:0)
您可以简单地将“类型”添加为分组字段:
Summarized Sales =
GROUPBY (
'sales',
'sales'[Customer],
'sales'[Type],
"orders", COUNTX ( CURRENTGROUP (), 'sales'[order] ),
"last_order", MAXX ( CURRENTGROUP (), 'sales'[Date] ),
"first_order", MINX ( CURRENTGROUP (), 'sales'[Date] ),
"amount", SUMX ( CURRENTGROUP (), 'sales'[Amount] )
)
结果: