想象你有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('Fact Seller'[seller_code]);[filter here]))
在[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))
所以这是表格内的过滤器。这有效,但我想知道是否有更好的方法或模式。
你帮帮忙吗?亲切的问候
答案 0 :(得分:1)
对于第一个问题,您可以创建名为" Active"的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
)