DAX COUNT/COUNTA 函数
DAX COUNT/COUNTA functions
我看了很多关于 COUNT
和 COUNTA
的帖子,但我似乎无法弄清楚如何正确使用它。
我是 DAX 的新手,正在学习。我试图查找它,并且已经找到了一些方法可以到达我需要去的地方,但不完全是。我想我对如何应用过滤器感到困惑。
情况如下:
用于生成报告中数据的四个独立查询;但只需要为 DAX 函数使用两个(Products
和 Display
)。
我有三列需要过滤,如下:
- 客户(
Display
或 Products
查询;两者均可)
- 品牌(
Products
查询)
- 位置(
Display
查询)
我想根据数据是否唯一来计算列数。
这是一个例子:
- 客户:大量购买;
- 项目: 乐高积木;
- 品牌:乐高;
- 位置:玩具;
中断
- 客户: 大量购买;
- 项目:乐高星球大战;
- 品牌:乐高;
- 位置:玩具;
中断
- 客户: 大量购买;
- 项目: Surface Pro;
- 品牌:微软;
- 地点:电子;
中断
- 顾客:街角小店;
- 项目:红色自行车;
- 品牌:迷航;
- 位置: 机架;
在这个例子中,不管物品是否不同,我们只想查看客户、品牌和位置。我们在前两条记录中看到,客户是"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")
我看了很多关于 COUNT
和 COUNTA
的帖子,但我似乎无法弄清楚如何正确使用它。
我是 DAX 的新手,正在学习。我试图查找它,并且已经找到了一些方法可以到达我需要去的地方,但不完全是。我想我对如何应用过滤器感到困惑。
情况如下:
用于生成报告中数据的四个独立查询;但只需要为 DAX 函数使用两个(Products
和 Display
)。
我有三列需要过滤,如下:
- 客户(
Display
或Products
查询;两者均可) - 品牌(
Products
查询) - 位置(
Display
查询)
我想根据数据是否唯一来计算列数。 这是一个例子:
- 客户:大量购买;
- 项目: 乐高积木;
- 品牌:乐高;
- 位置:玩具;
中断
- 客户: 大量购买;
- 项目:乐高星球大战;
- 品牌:乐高;
- 位置:玩具;
中断
- 客户: 大量购买;
- 项目: Surface Pro;
- 品牌:微软;
- 地点:电子;
中断
- 顾客:街角小店;
- 项目:红色自行车;
- 品牌:迷航;
- 位置: 机架;
在这个例子中,不管物品是否不同,我们只想查看客户、品牌和位置。我们在前两条记录中看到,客户是"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")