Filter DAX-使用多表列上的过滤器计算计数
我试图通过表格上的过滤器获得不同的计数。Scenaria如下图所示Filter DAX-使用多表列上的过滤器计算计数,filter,dax,tabular,Filter,Dax,Tabular,我试图通过表格上的过滤器获得不同的计数。Scenaria如下图所示 ID△ProductName△color ----------¦ ------------------ ¦------ 1°曲柄臂△NA 2?轴承球?黑色 1¦轴承球¦黑色 3°轴承球?黑色 4°刀片黑色 2°曲臂?黑色 5?轴承球?黑色 6?轴承球?黑色 6°刀片黑色 7°刀片黑色 7°刀片黑色 3°刀片黑色 5°曲臂?黑色 9°贴花a 我想得到3个不同的“ID”计数。过滤器如下所示: 1.ProductName='B
ID△ProductName△color
----------¦ ------------------ ¦------
1°曲柄臂△NA
2?轴承球?黑色
1¦轴承球¦黑色
3°轴承球?黑色
4°刀片黑色
2°曲臂?黑色
5?轴承球?黑色
6?轴承球?黑色
6°刀片黑色
7°刀片黑色
7°刀片黑色
3°刀片黑色
5°曲臂?黑色
9°贴花a
我想得到3个不同的“ID”计数。过滤器如下所示:
1.ProductName='Bearing Ball'和Color='Black'>(ID=2,1,3,5,6>不同计数:5)
2.ProductName='Blade'和Color='Black'>(ID=4,6,7,7,3>不同计数:4)
3.ProductName='Crankarm'和Color='Black'>(ID=2,5>不同计数:2)
并将所有3个不同的计数相加。我测量的最终结果是:5+4+2=11
我分别按照以下代码计算了所有3种产品的测量值。在另一个度量中求三个度量的和结果(最终结果:=[BB]+[BL]+[CR]),但它不起作用
BB:=计算(
DISTINCTCOUNT(产品[ID]),
滤器(
价值(产品),
产品[ProductName]=“轴承球”和产品[Color]=“黑色”)
)
BL:=计算(
DISTINCTCOUNT(产品[ID]),
滤器(
价值(产品),
产品[ProductName]=“刀片”和产品[Color]=“黑色”)
)
CR:=计算(
DISTINCTCOUNT(产品[ID]),
滤器(
价值(产品),
产品[ProductName]=“曲柄臂”和产品[Color]=“黑色”)
)
通过添加或,我无法在同一查询中获得不同的计数,因为不同的产品名称可以具有相同的ID。如果在同一查询中使用,我将丢失它们。一种简单的方法是创建一个计算列,如下所示:
IDNameColor = [ID] &"-"& [ProductName] & "-" & [Color]
Total Count :=
COUNTAX (
FILTER (
DISTINCT ( 'Product' ),
( [Color] = "Black"
&& [ProductName] = "Bearing Ball" )
|| ( [Color] = "Black"
&& [ProductName] = "Blade" )
|| ( [ProductName] = "Crankarm"
&& [Color] = "Black" )
),
[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')
函数
a或者,如果不想创建计算列,则度量可以如下所示:
IDNameColor = [ID] &"-"& [ProductName] & "-" & [Color]
Total Count :=
COUNTAX (
FILTER (
DISTINCT ( 'Product' ),
( [Color] = "Black"
&& [ProductName] = "Bearing Ball" )
|| ( [Color] = "Black"
&& [ProductName] = "Blade" )
|| ( [ProductName] = "Crankarm"
&& [Color] = "Black" )
),
[ID] & [ProductName]
& [Color]
)
如果有帮助,请告诉我。第一个代码工作正常。第二个没有。谢谢。