我试图通过表格上的过滤器获得不同的计数。 Scenaria就像下面一样。
ID ¦ProductName ¦ color
----------¦ ------------------ ¦------
1 ¦Crankarm ¦ NA
2 ¦Bearing Ball ¦ Black
1 ¦Bearing Ball ¦ Black
3 ¦Bearing Ball ¦ Black
4 ¦Blade ¦ Black
2 ¦Crankarm ¦ Black
5 ¦Bearing Ball ¦ Black
6 ¦Bearing Ball ¦ Black
6 ¦Blade ¦ Black
7 ¦Blade ¦ Black
7 ¦Blade ¦ Black
3 ¦Blade ¦ Black
5 ¦Crankarm ¦ Black
9 ¦Decal ¦ NA
我希望获得3种不同的“ID”特色。过滤器如下所示:
1. ProductName ='Bearing Ball' and Color = 'Black' >(ID=2,1,3,5,6 > Distinct count:5)
2. ProductName ='Blade' and Color = 'Black' >(ID=4,6,7,7,3 > Distinct count:4)
3. ProductName ='Crankarm' and Color = 'Black' >(ID=2,5 > Distinct count:2)
并将总结所有3个不同的计数。我的衡量标准的最终结果将是:5 + 4 + 2 = 11。
我通过以下代码计算了所有3种产品的测量值。并且在另一个度量中有3个度量的SUM结果。(FinalResult:= [BB] + [BL] + [CR])但它不起作用。
BB:= CALCULATE (
DISTINCTCOUNT ( Product[ID] ),
FILTER (
VALUES (Product ),
Product[ProductName] = "Bearing Ball" && Product[Color] = "Black" )
)
BL:= CALCULATE (
DISTINCTCOUNT ( Product[ID] ),
FILTER (
VALUES (Product ),
Product[ProductName] = "Blade" && Product[Color] = "Black" )
)
CR:= CALCULATE (
DISTINCTCOUNT ( Product[ID] ),
FILTER (
VALUES (Product ),
Product[ProductName] = "Crankarm" && Product[Color] = "Black" )
)
通过添加OR,我无法在同一查询中获得不同的计数,因为不同的ProductName可以具有相同的ID。如果在相同的查询中使用,我将丢失它们。
答案 0 :(得分:0)
一种简单的方法是创建一个计算列,如下所示:
IDNameColor = [ID] &"-"& [ProductName] & "-" & [Color]
然后在这样的度量中使用该计算列来获得产品数量:
Total Count :=
CALCULATE (
DISTINCTCOUNT ( 'Product'[IDNameColor] ),
FILTER (
ALL ( 'Product' ),
( [Color] = "Black"
&& [ProductName] = "Bearing Ball" )
|| ( [Color] = "Black"
&& [ProductName] = "Blade" )
|| ( [ProductName] = "Crankarm"
&& [Color] = "Black" )
)
)
如果您希望它受到过滤器的影响,可以删除ALL('Product')
功能。
或者,如果您不想创建计算列,则度量可以是这样的:
Total Count :=
COUNTAX (
FILTER (
DISTINCT ( 'Product' ),
( [Color] = "Black"
&& [ProductName] = "Bearing Ball" )
|| ( [Color] = "Black"
&& [ProductName] = "Blade" )
|| ( [ProductName] = "Crankarm"
&& [Color] = "Black" )
),
[ID] & [ProductName]
& [Color]
)
如果有帮助,请告诉我。