DAX COUNT/COUNTA 函数

DAX COUNT/COUNTA functions

我看了很多关于 COUNTCOUNTA 的帖子,但我似乎无法弄清楚如何正确使用它。

我是 DAX 的新手,正在学习。我试图查找它,并且已经找到了一些方法可以到达我需要去的地方,但不完全是。我想我对如何应用过滤器感到困惑。

情况如下: 用于生成报告中数据的四个独立查询;但只需要为 DAX 函数使用两个(ProductsDisplay)。 我有三列需要过滤,如下:

我想根据数据是否唯一来计算列数。 这是一个例子:

中断

中断

中断

在这个例子中,不管物品是否不同,我们只想查看客户、品牌和位置。我们在前两条记录中看到,客户是"Big Box Buy",品牌是"Lego",位置是"Toys"。这出现了两次,但我想把它算作“1”。下一个 "Big Box Buy" 商店的品牌是 "Microsoft",位置是 "Electronics"。它只出现一次,因此不同的计数无论如何都是“1”。这意味着 "Big Box Buy" 有两个单独的条目,两者的计数均为 1。最后是 "Little Shop on the Corner",它只出现一次,也只计算一次。

我所拥有的代码的 "skeleton" 基本上只是为了看看我是否可以得到一个计数来工作,我可以。根据我读过的其他线程判断,我认为 FILTER 是问题所在(在下面的示例中未使用)。

TotalDisplays = CALCULATE(COUNTA(products[Brand]))

显然,我不能只计算品牌出现的次数,因为那样会重复出现。如果满足以下条件,我需要它是唯一的: 客户必须相同 品牌必须相同 位置必须相同

如果是这样,我们明确地把它算作一个。

我知道我咆哮了一点,似乎在兜圈子,但我在想办法解释。如果我需要编辑此 post 或 post 说明,请告诉我。

非常感谢我使用 DAX 的旅程!

我相信我有答案。我在 DAX 中使用了 NATURALINNERJOIN 来创建一个新的合并的 table,因为我需要在同一个查询中引用所有值(否则我不知道该怎么做)。我还创建了一个 "unique identity" 计算列,该列组合了来自多行的数据,但隐藏在幕后(实际上并未显示在报告中),因此我可以通过这种方式衡量唯一值。

TotalDisplays = COUNTROWS(DISTINCT('GD-DP-Merge'[DisplayCountCalcCol]))

我的计算列如下:

DisplayCountCalcCol = 'GD-DP-Merge'[CustID] & 'GD-DP-Merge'[Brand] & 'GD-DP-Merge'[Location] & 'GD-DP-Merge'[Order#]

因此,度量 TotalDisplays 现在根据客户 ID、品牌和商品位置的唯一值报告不同的行数。为了以防万一,我还输入了订单号。

谢谢!

我是 DAX 的半新手,一直在为 Count 和 CountA 公式苦苦挣扎,您 post 帮助我找到了答案。我想添加我为我的查询获得的解决方案:正确时间开始的所需计数已实现因此,如果有人正在寻找下面使用的这种答案,过滤器将选择 table 并添加你想要的字符串至

RTSA:=计算(COUNTA([RTS]),VEO_Daily_Services[RTS]="RTSA")