用于计算交叉类别订单的 DAX 代码
DAX code to count orders with crossed categories
我有一份商店出售的商品清单。每行描述日期、订单号、单位数和类别(本例中为 A 和 B)。
我如何仅使用数据透视表中的 DAX 度量 table,知道每天有多少订单同时属于 A 类和 B 类?我试过以多种方式使用 CALCULATE,但找不到正确的方法...
在此link中,我向您展示了示例的屏幕截图table1
枢轴 table 应显示:
25/05/2016 3 (orders 100, 104 and 105 have units from categories A and B)
26/05/2016 1 (order 200 has units from categories A and B)
谢谢
创建一个计算不同 OrderNo 的度量。只需创建您的枢轴 table 并使用该度量。您可以使用两个表达式进行度量。
Excel 2010:
=COUNTROWS(DISTINCT(TableName[OrderNo]))
Excel 2013+
=DISTINCTCOUNT(TableName[OrderNo])
使用模型中创建的度量创建一个枢轴 table。将 Date
字段拖放到行,将 Category
字段拖放到列,将创建的度量拖放到 Values
.
你会得到这样的东西:
忽略放置在枢轴 table 上的标签 excel,我的 OS 语言设置是西班牙语。
更新:根据您的评论,您需要具有类别 A 和 B 的不同订单号。
使用以下表达式:
=CALCULATE (
COUNTA (TablaName[OrderNo]),
CALCULATETABLE ( VALUES ( TablaName[OrderNo] ), TablaName[Category] = "A" ),
TablaName[Category] = "B"
)
我正在考虑使用 Excel 2010 中不支持的相交函数,但这是获得预期结果的一般方法。
这是从中生成的枢轴table。
希望这就是您要找的,如果有帮助请告诉我。
使用以下公式创建计算列:
= if(
CALCULATE(DISTINCTCOUNT(mytable[Category]),filter(all(mytable),mytable[Date]=EARLIER(mytable[Date])&&mytable[OrderNo]=EARLIER(mytable[OrderNo])),or(mytable[Category]="A",mytable[Category]="B"))
=2,true(),false())
The earlier function compares rows with same date and orderNo.
The extra or filter, only takes into account the category A and B.
这将 return true/false 用于类别 A 和 B 的订单。
由于您不能进行常规计数,因为您有多行
为了订单。您需要一个 distinctcount。
新措施:
=CALCULATE(DISTINCTCOUNT(mytable[OrderNo]),mytable[CalcColumn01]=true())
我有一份商店出售的商品清单。每行描述日期、订单号、单位数和类别(本例中为 A 和 B)。
我如何仅使用数据透视表中的 DAX 度量 table,知道每天有多少订单同时属于 A 类和 B 类?我试过以多种方式使用 CALCULATE,但找不到正确的方法...
在此link中,我向您展示了示例的屏幕截图table1
枢轴 table 应显示:
25/05/2016 3 (orders 100, 104 and 105 have units from categories A and B)
26/05/2016 1 (order 200 has units from categories A and B)
谢谢
创建一个计算不同 OrderNo 的度量。只需创建您的枢轴 table 并使用该度量。您可以使用两个表达式进行度量。
Excel 2010:
=COUNTROWS(DISTINCT(TableName[OrderNo]))
Excel 2013+
=DISTINCTCOUNT(TableName[OrderNo])
使用模型中创建的度量创建一个枢轴 table。将 Date
字段拖放到行,将 Category
字段拖放到列,将创建的度量拖放到 Values
.
你会得到这样的东西:
忽略放置在枢轴 table 上的标签 excel,我的 OS 语言设置是西班牙语。
更新:根据您的评论,您需要具有类别 A 和 B 的不同订单号。
使用以下表达式:
=CALCULATE (
COUNTA (TablaName[OrderNo]),
CALCULATETABLE ( VALUES ( TablaName[OrderNo] ), TablaName[Category] = "A" ),
TablaName[Category] = "B"
)
我正在考虑使用 Excel 2010 中不支持的相交函数,但这是获得预期结果的一般方法。
这是从中生成的枢轴table。
希望这就是您要找的,如果有帮助请告诉我。
使用以下公式创建计算列:
= if( CALCULATE(DISTINCTCOUNT(mytable[Category]),filter(all(mytable),mytable[Date]=EARLIER(mytable[Date])&&mytable[OrderNo]=EARLIER(mytable[OrderNo])),or(mytable[Category]="A",mytable[Category]="B")) =2,true(),false()) The earlier function compares rows with same date and orderNo. The extra or filter, only takes into account the category A and B.
这将 return true/false 用于类别 A 和 B 的订单。 由于您不能进行常规计数,因为您有多行 为了订单。您需要一个 distinctcount。
新措施:
=CALCULATE(DISTINCTCOUNT(mytable[OrderNo]),mytable[CalcColumn01]=true())