假设您有 3 个表:
Table Fact Seller : seller_code, seller_name, manager_code
Table Fact Manager : manager_code, manager_name
Table Fact Product : product_code, product_name, seller_code
键之间已经建立了关系。
我想计算两个方面:
1) 活跃卖家的数量。如果卖家在 Fact Product 中有任何(1 个或多个)产品,则该卖家是活跃的。
我想知道如何计算这个。会是这样的
=CALCULATE(DISTINCTCOUNT('事实卖家'[seller_code]);[此处过滤]))
在 [filter here]
中,我需要像 FILTER(COUNTROWS('Fact Product';'Fact Product'[manager_code])>=1)
这样的东西,以获得只有事实卖家中至少拥有一种产品的卖家。我想我需要使用关键字 VALUES()
但我没有找到正确的语法。
我想知道执行此操作的更好方法或模式。
2) 有经理的卖家数量。请注意,当检索数据时,如果卖家没有经理,则字段 manager_code 的值为“-1”。所以我可以这样做:
=CALCULATE(DISTINCTCOUNT('Fact Seller'[seller_code]);FILTER('Fact Seller';'Fact Seller'[manager_code]>=1))
所以这是表格内的过滤器。这行得通,但我想知道是否有更好的方法或模式。
你能帮忙吗?
亲切的问候
最佳答案
对于您的第一个问题,您可以创建一个 calculated column称为“主动”。这将确定该行的卖家是否活跃。
=IF(
CALCULATE(
COUNTROWS('Fact Product'),
ALL('Fact Product'),
'Fact Product'[seller_code]=EARLIER('Fact Seller'[seller_code])
)<1,FALSE(),TRUE()
)
现在您可以创建一个度量,使用这个新列来获取活跃卖家总数
ActiveSellers:=CALCULATE(
DISTINCTCOUNT('Fact Seller'[seller_code]),
'Fact Seller'[Active]=TRUE()
)
对于你的第二个问题,你的陈述可以缩短为
SellersWithManagers:=CALCULATE(
DISTINCTCOUNT('Fact Seller'[seller_code]),
'Fact Seller'[manager_code]<>-1
)
关于dax - 2个DAX问题(根据同一张表和另一张表的条件从一个表中添加行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28880596/