DAX 中用于 Power BI 卡的 COUNTIF
COUNTIF in DAX for Power BI Card
这是我的示例 table(对于此报告,我只使用了一个 table,因此没有 table-relationship-links 可以抗衡):
成本中心
项目
发票审批人
123
AB
第一个人
123
AB
第二个人
123
ZZ
第一个人
456
TB
第三个人
我已经写了一个度量 Approver = COUNT('Table'[Invoice Approver])
。在上面的示例中,Approver = 4
.
我创建了一个新的 table 显示 只有 那些有 1 个批准者的组合。 table 显示 123|ZZ 和 456|TB(注意:对于此 table,不需要显示批准人,只需显示唯一成本 centre/project 组合)。
我的下一步是制作一张卡片,显示过滤器的净数量:2。但是我在编写 DAX 度量方面需要帮助。
我尝试了以下 DAX 公式:
代码
结果
1InvApp = COUNTROWS(FILTER('Table',[Approver]="1"))
“DAX 比较操作不支持将 Integer 类型的值与 Text 类型的值进行比较。”
1InvApp = COUNTROWS(FILTER('Table',[Approver]=1))
空白(文本)
1InvApp = CALCULATE(COUNTROWS('Table'),[Approver]="1")
“函数 'CALCULATE' 已在用作 table 过滤器表达式的 True/False 表达式中使用。”
1InvApp = CALCULATE(COUNTROWS('Table'),[Approver]=1)
“函数 'CALCULATE' 已在用作 table 过滤器表达式的 True/False 表达式中使用。”
1InvApp = COUNTX('Table',[Approver]="1")
“DAX 比较操作不支持将 Integer 类型的值与 Text 类型的值进行比较。”
1InvApp = COUNTX('Table',[Approver]=1)
“函数 COUNTX 不能使用布尔类型的值。”
1InvApp = COUNTAX(FILTER('Table',[Approver]=1),'Table'[Approver])
空白(文本)
1InvApp = COUNTAX(FILTER('Table',[Approver]="1"),'Table'[Approver])
“DAX 比较操作不支持将 Integer 类型的值与 Text 类型的值进行比较。”
1InvApp = COUNTROWS(FILTER(ALL('Table'),[Approver]=1))
(建议)
空白(文字)
问题:显示所需总结果 2 的正确 DAX 语法是什么?
提前致谢。
您可以分两步完成此操作:
第一:
Measure = CALCULATE(COUNT('Table'[Invoiced]), FILTER(ALL('Table'), SELECTEDVALUE('Table'[Cost Centre]) = 'Table'[Cost Centre] && 'Table'[Project] = SELECTEDVALUE('Table'[Project])))
第二个:
OnlyOne = CALCULATE(COUNTROWS(CALCULATETABLE('Table', FILTER('Table', var __xx = [Measure] return [Measure] = 1))))
这是我的示例 table(对于此报告,我只使用了一个 table,因此没有 table-relationship-links 可以抗衡):
成本中心 | 项目 | 发票审批人 |
---|---|---|
123 | AB | 第一个人 |
123 | AB | 第二个人 |
123 | ZZ | 第一个人 |
456 | TB | 第三个人 |
我已经写了一个度量 Approver = COUNT('Table'[Invoice Approver])
。在上面的示例中,Approver = 4
.
我创建了一个新的 table 显示 只有 那些有 1 个批准者的组合。 table 显示 123|ZZ 和 456|TB(注意:对于此 table,不需要显示批准人,只需显示唯一成本 centre/project 组合)。
我的下一步是制作一张卡片,显示过滤器的净数量:2。但是我在编写 DAX 度量方面需要帮助。
我尝试了以下 DAX 公式:
代码 | 结果 |
---|---|
1InvApp = COUNTROWS(FILTER('Table',[Approver]="1")) |
“DAX 比较操作不支持将 Integer 类型的值与 Text 类型的值进行比较。” |
1InvApp = COUNTROWS(FILTER('Table',[Approver]=1)) |
空白(文本) |
1InvApp = CALCULATE(COUNTROWS('Table'),[Approver]="1") |
“函数 'CALCULATE' 已在用作 table 过滤器表达式的 True/False 表达式中使用。” |
1InvApp = CALCULATE(COUNTROWS('Table'),[Approver]=1) |
“函数 'CALCULATE' 已在用作 table 过滤器表达式的 True/False 表达式中使用。” |
1InvApp = COUNTX('Table',[Approver]="1") |
“DAX 比较操作不支持将 Integer 类型的值与 Text 类型的值进行比较。” |
1InvApp = COUNTX('Table',[Approver]=1) |
“函数 COUNTX 不能使用布尔类型的值。” |
1InvApp = COUNTAX(FILTER('Table',[Approver]=1),'Table'[Approver]) |
空白(文本) |
1InvApp = COUNTAX(FILTER('Table',[Approver]="1"),'Table'[Approver]) |
“DAX 比较操作不支持将 Integer 类型的值与 Text 类型的值进行比较。” |
1InvApp = COUNTROWS(FILTER(ALL('Table'),[Approver]=1)) (建议 |
空白(文字) |
问题:显示所需总结果 2 的正确 DAX 语法是什么?
提前致谢。
您可以分两步完成此操作: 第一:
Measure = CALCULATE(COUNT('Table'[Invoiced]), FILTER(ALL('Table'), SELECTEDVALUE('Table'[Cost Centre]) = 'Table'[Cost Centre] && 'Table'[Project] = SELECTEDVALUE('Table'[Project])))
第二个:
OnlyOne = CALCULATE(COUNTROWS(CALCULATETABLE('Table', FILTER('Table', var __xx = [Measure] return [Measure] = 1))))