英文:
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:
- % of tasks which include "Lbl1" completed on time.
- % 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
英文:
% 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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论