Power BI:使用多个条件计算表格行数的DAX度量。

huangapple go评论106阅读模式
英文:

Power BI: DAX measure to count rows of a table based on multiple conditions

问题

我有一个包含所有常规任务、其类型和频率的表格:

表格 1

任务 任务类型 频率
任务 1 类型 1 月度
任务 2 类型 2 每周
我有另一个包含已完成任务历史记录的表格,如下所示:

表格 2

任务 状态 标签 完成日期
任务 1 已完成 标签1,标签2 2023年05月08日
任务 2 已晚完成 标签1 2023年08月10日
任务 2 已完成 2023年02月08日

如何在 Power BI 中为表格可视化添加列(根据**表格 2**中的记录基于度量计算),以便我可以获得以下信息:

1. 包含“标签1”的任务按时完成的任务百分比。
2. 不考虑标签的任务按时完成的任务百分比。

以下是示例输出:

表格 3

任务 总数已完成 按时完成, 标签1 总体按时完成
任务 1 1 100% 100%
任务 2 2 0% 50%

感谢任何指导。
英文:

I have a table containing a list of all regular tasks, their types and frequency:

**Table 1**
| Task   | Task Type | Frequency |
|--------|-----------|-----------|
| Task 1 | Type 1    | Monthly   |
| Task 2 | Type 2    | Weekly    |

I have another table that contains historical records of tasks completed, as follows:

**Table 2**
| Task   | Status         | Label     | Completed Date |
|--------|----------------|-----------|----------------|
| Task 1 | Completed      | Lbl1,Lbl2 | 05/08/2023     |
| Task 2 | Completed Late | Lbl1      | 10/08/2023     |
| Task 2 | Completed      |           | 02/08/2023     |

How can I add columns (calculated from a measure based on records in Table 2) to a table visualisation in Power BI which gives me:

  1. % of tasks which include "Lbl1" completed on time.
  2. % of tasks completed on time, regardless of labels.

Example output below.

**Table 3**
| Task   | Total completed | % on time, Lbl1 | % on time overall |
|--------|-----------------|-----------------|-------------------|
| Task 1 | 1               | 100%            | 100%              |
| Task 2 | 2               | 0%              | 50%               |

Appreciate any guidance.

答案1

得分: 1

%按时完成,Lbl1 =
VAR a = COUNTROWS('表格 2')
VAR b = CALCULATE(COUNTROWS('表格 2'), '表格 2'[状态] = "已完成", CONTAINSSTRING('表格 2'[标签], "Lbl1"))
RETURN DIVIDE(b, a, 0) + 0

%总体按时完成 =
VAR a = COUNTROWS('表格 2')
VAR b = CALCULATE(COUNTROWS('表格 2'), '表格 2'[状态] = "已完成")
RETURN DIVIDE(b, a, 0) + 0
英文:

Power BI:使用多个条件计算表格行数的DAX度量。

% on time, Lbl1 = 
VAR a = COUNTROWS('Table 2')
VAR b = CALCULATE(COUNTROWS('Table 2'), 'Table 2'[Status] = "Completed", CONTAINSSTRING('Table 2'[Label],"Lbl1"  ))
RETURN DIVIDE(b,a,0)+0


% on time overall = 
VAR a = COUNTROWS('Table 2')
VAR b = CALCULATE(COUNTROWS('Table 2'), 'Table 2'[Status] = "Completed")
RETURN DIVIDE(b,a,0)+0

huangapple
  • 本文由 发表于 2023年8月10日 14:44:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/76873185.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定