DAX/Power BI 中带过滤器的两个表的总和
Sum from two tables with filters in DAX/Power BI
我有两个 table。
第一个包含SKU、客户、订单日期、订单金额。
第二个包含 SKU、客户、促销 ID、促销开始日期、促销结束日期。
我需要计算每个客户促销 SKU 的订购量。
在 Excel 中我会有这样的东西:
SUMIFS(
TABLE1[ORDERED],
TABLE1[CLIENT], TABLE2[CLIENT],
TABLE1[ORDER DATE], ">="&TABLE2[ORDER START DATE],
TABLE1[ORDER DATE], "<="&TABLE2[ORDER END DATE],
TABLE1[SKU], TABLE2[SKU]
)
Table 1
Table 2
Excel formula. Cells K2 and K3
我已经想出如何按日期过滤第一个 table(订单和 PromoLib tables 之间的联系是 SKU,多对多):
ordered = CALCULATE(
SUM(ORDERS[order qty]),
KEEPFILTERS(DATESBETWEEN(ORDERS[Document Date], PromoLib[Order Start],
PromoLib[Order End])),
)
如何向此 DAX 公式添加过滤器,以便它按客户过滤订单 table?
最佳做法是拥有一个客户维度 table、一个日期维度 table、一个订单事实 table 和一个 PromoLib 事实 table。那么措施就会简单得多。也就是说,这里是 CALCULATE 函数的语法:
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
您可以根据需要添加任意数量的过滤器参数,因此您可以像这样为客户端过滤器添加另一个参数:
FILTER (Orders, Orders[Client] = PromoLib[Client])
我有两个 table。
第一个包含SKU、客户、订单日期、订单金额。
第二个包含 SKU、客户、促销 ID、促销开始日期、促销结束日期。
我需要计算每个客户促销 SKU 的订购量。
在 Excel 中我会有这样的东西:
SUMIFS(
TABLE1[ORDERED],
TABLE1[CLIENT], TABLE2[CLIENT],
TABLE1[ORDER DATE], ">="&TABLE2[ORDER START DATE],
TABLE1[ORDER DATE], "<="&TABLE2[ORDER END DATE],
TABLE1[SKU], TABLE2[SKU]
)
Table 1
Table 2
Excel formula. Cells K2 and K3
我已经想出如何按日期过滤第一个 table(订单和 PromoLib tables 之间的联系是 SKU,多对多):
ordered = CALCULATE(
SUM(ORDERS[order qty]),
KEEPFILTERS(DATESBETWEEN(ORDERS[Document Date], PromoLib[Order Start],
PromoLib[Order End])),
)
如何向此 DAX 公式添加过滤器,以便它按客户过滤订单 table?
最佳做法是拥有一个客户维度 table、一个日期维度 table、一个订单事实 table 和一个 PromoLib 事实 table。那么措施就会简单得多。也就是说,这里是 CALCULATE 函数的语法:
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
您可以根据需要添加任意数量的过滤器参数,因此您可以像这样为客户端过滤器添加另一个参数:
FILTER (Orders, Orders[Client] = PromoLib[Client])