运行 Sum # 和 运行 Sum % 基于状态 Power BI (DAX)
Running Sum # and Running Sum % based on status Power BI (DAX)
我正在努力根据 table 中的两个状态创建 运行 价值总和。问题是我没有日期,只有文本和数值。
我什至创建了索引 table 但这无济于事。请看看我的数据:
我需要计算 运行 另一个列中列分布的总和,但要分别计算状态“收益”和“总值”。因此,运行 总和是针对“收益”计算的,然后再次针对“总值”计算。
然后我需要用它来创建总百分比 - 也分别用于“收益”和“总值”。我查看了许多论坛、教程,但找不到任何适合我的数据的内容。
你能帮帮我吗?
数据样本:
Score Range
tier
Distribution
Status
General Index
1-100
Tier III
38
Gains
1
100-125
Tier III
33
Gains
2
125-150
Tier III
49
Gains
3
150-175
Tier III
46
Gains
4
175-200
Tier III
76
Gains
5
200-225
Tier II
135
Gains
6
225-250
Tier I
348
Gains
7
250-275
Tier I
417
Gains
8
275-300
Tier I
541
Gains
9
300-325
Tier I
682
Gains
10
325-350
Tier I
910
Gains
11
350-375
Tier I
781
Gains
12
375-400
Tier I
754
Gains
13
400-425
Tier I
551
Gains
14
425-450
Tier I
396
Gains
15
450-475
Tier I
214
Gains
16
475-500
Tier I
50
Gains
17
500 +
Tier I
2
Gains
18
No Score
Tier I
176
Gains
19
1-100
Tier III
350
Gross
1
100-125
Tier III
270
Gross
2
125-150
Tier III
404
Gross
3
150-175
Tier III
463
Gross
4
175-200
Tier III
465
Gross
5
200-225
Tier II
512
Gross
6
225-250
Tier I
599
Gross
7
250-275
Tier I
700
Gross
8
275-300
Tier I
897
Gross
9
300-325
Tier I
1089
Gross
10
325-350
Tier I
1415
Gross
11
350-375
Tier I
1183
Gross
12
375-400
Tier I
1104
Gross
13
400-425
Tier I
725
Gross
14
425-450
Tier I
535
Gross
15
450-475
Tier I
282
Gross
16
475-500
Tier I
67
Gross
17
500 +
Tier I
2
Gross
18
No Score
Tier I
624
Gross
19
我正在尝试按照以下屏幕进行计算:
谢谢,
我稍微缩短了列的名称以使结果 table 保留在答案中
我将示例数据命名为 table“Status”
对于运行总和,我们迭代过滤当前行的状态和小于或等于当前行的索引
Running Sum =
VAR CurrentRowStatus = Scores[Status]
VAR CurrentIndex = Scores[General Index]
VAR Result =
SUMX(
FILTER(
Scores,
Scores[Status] = CurrentRowStatus
&& Scores[General Index] <= CurrentIndex
),
Scores[Distribution]
)
RETURN
Result
对于百分比计算列,我们需要计算总数,因此我们使用 MAXX 而不是使用当前行状态
筛选的状态 table
percent =
VAR CurrentRowStatus = Scores[Status]
VAR Total =
MAXX(
FILTER( Scores, Scores[Status] = CurrentRowStatus ),
Scores[Running Sum]
)
VAR Result =
DIVIDE( Scores[Distribution], Total )
RETURN
Result
累积百分比计算列类似,它只是使用 运行 总和计算列而不是分布
cumulative percent =
VAR CurrentRowStatus = Scores[Status]
VAR Total =
MAXX(
FILTER( Scores, Scores[Status] = CurrentRowStatus ),
Scores[Running Sum]
)
VAR Result =
DIVIDE( Scores[Running Sum], Total )
RETURN
Result
这是结果table
Score Range
tier
Distribution
Status
General Index
Running Sum
percent
cumulative percent
1-100
Tier III
38
Gains
1
38
0.6%
0.6%
100-125
Tier III
33
Gains
2
71
0.5%
1.1%
125-150
Tier III
49
Gains
3
120
0.8%
1.9%
150-175
Tier III
46
Gains
4
166
0.7%
2.7%
175-200
Tier III
76
Gains
5
242
1.2%
3.9%
200-225
Tier II
135
Gains
6
377
2.2%
6.1%
225-250
Tier I
348
Gains
7
725
5.6%
11.7%
250-275
Tier I
417
Gains
8
1142
6.7%
18.4%
275-300
Tier I
541
Gains
9
1683
8.7%
27.1%
300-325
Tier I
682
Gains
10
2365
11.0%
38.2%
325-350
Tier I
910
Gains
11
3275
14.7%
52.8%
350-375
Tier I
781
Gains
12
4056
12.6%
65.4%
375-400
Tier I
754
Gains
13
4810
12.2%
77.6%
400-425
Tier I
551
Gains
14
5361
8.9%
86.5%
425-450
Tier I
396
Gains
15
5757
6.4%
92.9%
450-475
Tier I
214
Gains
16
5971
3.5%
96.3%
475-500
Tier I
50
Gains
17
6021
0.8%
97.1%
500 +
Tier I
2
Gains
18
6023
0.0%
97.2%
No Score
Tier I
176
Gains
19
6199
2.8%
100.0%
1-100
Tier III
350
Gross
1
350
3.0%
3.0%
100-125
Tier III
270
Gross
2
620
2.3%
5.3%
125-150
Tier III
404
Gross
3
1024
3.5%
8.8%
150-175
Tier III
463
Gross
4
1487
4.0%
12.7%
175-200
Tier III
465
Gross
5
1952
4.0%
16.7%
200-225
Tier II
512
Gross
6
2464
4.4%
21.1%
225-250
Tier I
599
Gross
7
3063
5.1%
26.2%
250-275
Tier I
700
Gross
8
3763
6.0%
32.2%
275-300
Tier I
897
Gross
9
4660
7.7%
39.9%
300-325
Tier I
1089
Gross
10
5749
9.3%
49.2%
325-350
Tier I
1415
Gross
11
7164
12.1%
61.3%
350-375
Tier I
1183
Gross
12
8347
10.1%
71.4%
375-400
Tier I
1104
Gross
13
9451
9.4%
80.9%
400-425
Tier I
725
Gross
14
10176
6.2%
87.1%
425-450
Tier I
535
Gross
15
10711
4.6%
91.7%
450-475
Tier I
282
Gross
16
10993
2.4%
94.1%
475-500
Tier I
67
Gross
17
11060
0.6%
94.6%
500 +
Tier I
2
Gross
18
11062
0.0%
94.7%
No Score
Tier I
624
Gross
19
11686
5.3%
100.0%
我正在努力根据 table 中的两个状态创建 运行 价值总和。问题是我没有日期,只有文本和数值。
我什至创建了索引 table 但这无济于事。请看看我的数据:
我需要计算 运行 另一个列中列分布的总和,但要分别计算状态“收益”和“总值”。因此,运行 总和是针对“收益”计算的,然后再次针对“总值”计算。
然后我需要用它来创建总百分比 - 也分别用于“收益”和“总值”。我查看了许多论坛、教程,但找不到任何适合我的数据的内容。
你能帮帮我吗?
数据样本:
Score Range | tier | Distribution | Status | General Index |
---|---|---|---|---|
1-100 | Tier III | 38 | Gains | 1 |
100-125 | Tier III | 33 | Gains | 2 |
125-150 | Tier III | 49 | Gains | 3 |
150-175 | Tier III | 46 | Gains | 4 |
175-200 | Tier III | 76 | Gains | 5 |
200-225 | Tier II | 135 | Gains | 6 |
225-250 | Tier I | 348 | Gains | 7 |
250-275 | Tier I | 417 | Gains | 8 |
275-300 | Tier I | 541 | Gains | 9 |
300-325 | Tier I | 682 | Gains | 10 |
325-350 | Tier I | 910 | Gains | 11 |
350-375 | Tier I | 781 | Gains | 12 |
375-400 | Tier I | 754 | Gains | 13 |
400-425 | Tier I | 551 | Gains | 14 |
425-450 | Tier I | 396 | Gains | 15 |
450-475 | Tier I | 214 | Gains | 16 |
475-500 | Tier I | 50 | Gains | 17 |
500 + | Tier I | 2 | Gains | 18 |
No Score | Tier I | 176 | Gains | 19 |
1-100 | Tier III | 350 | Gross | 1 |
100-125 | Tier III | 270 | Gross | 2 |
125-150 | Tier III | 404 | Gross | 3 |
150-175 | Tier III | 463 | Gross | 4 |
175-200 | Tier III | 465 | Gross | 5 |
200-225 | Tier II | 512 | Gross | 6 |
225-250 | Tier I | 599 | Gross | 7 |
250-275 | Tier I | 700 | Gross | 8 |
275-300 | Tier I | 897 | Gross | 9 |
300-325 | Tier I | 1089 | Gross | 10 |
325-350 | Tier I | 1415 | Gross | 11 |
350-375 | Tier I | 1183 | Gross | 12 |
375-400 | Tier I | 1104 | Gross | 13 |
400-425 | Tier I | 725 | Gross | 14 |
425-450 | Tier I | 535 | Gross | 15 |
450-475 | Tier I | 282 | Gross | 16 |
475-500 | Tier I | 67 | Gross | 17 |
500 + | Tier I | 2 | Gross | 18 |
No Score | Tier I | 624 | Gross | 19 |
我正在尝试按照以下屏幕进行计算:
谢谢,
我稍微缩短了列的名称以使结果 table 保留在答案中 我将示例数据命名为 table“Status”
对于运行总和,我们迭代过滤当前行的状态和小于或等于当前行的索引
Running Sum =
VAR CurrentRowStatus = Scores[Status]
VAR CurrentIndex = Scores[General Index]
VAR Result =
SUMX(
FILTER(
Scores,
Scores[Status] = CurrentRowStatus
&& Scores[General Index] <= CurrentIndex
),
Scores[Distribution]
)
RETURN
Result
对于百分比计算列,我们需要计算总数,因此我们使用 MAXX 而不是使用当前行状态
筛选的状态 tablepercent =
VAR CurrentRowStatus = Scores[Status]
VAR Total =
MAXX(
FILTER( Scores, Scores[Status] = CurrentRowStatus ),
Scores[Running Sum]
)
VAR Result =
DIVIDE( Scores[Distribution], Total )
RETURN
Result
累积百分比计算列类似,它只是使用 运行 总和计算列而不是分布
cumulative percent =
VAR CurrentRowStatus = Scores[Status]
VAR Total =
MAXX(
FILTER( Scores, Scores[Status] = CurrentRowStatus ),
Scores[Running Sum]
)
VAR Result =
DIVIDE( Scores[Running Sum], Total )
RETURN
Result
这是结果table
Score Range | tier | Distribution | Status | General Index | Running Sum | percent | cumulative percent |
---|---|---|---|---|---|---|---|
1-100 | Tier III | 38 | Gains | 1 | 38 | 0.6% | 0.6% |
100-125 | Tier III | 33 | Gains | 2 | 71 | 0.5% | 1.1% |
125-150 | Tier III | 49 | Gains | 3 | 120 | 0.8% | 1.9% |
150-175 | Tier III | 46 | Gains | 4 | 166 | 0.7% | 2.7% |
175-200 | Tier III | 76 | Gains | 5 | 242 | 1.2% | 3.9% |
200-225 | Tier II | 135 | Gains | 6 | 377 | 2.2% | 6.1% |
225-250 | Tier I | 348 | Gains | 7 | 725 | 5.6% | 11.7% |
250-275 | Tier I | 417 | Gains | 8 | 1142 | 6.7% | 18.4% |
275-300 | Tier I | 541 | Gains | 9 | 1683 | 8.7% | 27.1% |
300-325 | Tier I | 682 | Gains | 10 | 2365 | 11.0% | 38.2% |
325-350 | Tier I | 910 | Gains | 11 | 3275 | 14.7% | 52.8% |
350-375 | Tier I | 781 | Gains | 12 | 4056 | 12.6% | 65.4% |
375-400 | Tier I | 754 | Gains | 13 | 4810 | 12.2% | 77.6% |
400-425 | Tier I | 551 | Gains | 14 | 5361 | 8.9% | 86.5% |
425-450 | Tier I | 396 | Gains | 15 | 5757 | 6.4% | 92.9% |
450-475 | Tier I | 214 | Gains | 16 | 5971 | 3.5% | 96.3% |
475-500 | Tier I | 50 | Gains | 17 | 6021 | 0.8% | 97.1% |
500 + | Tier I | 2 | Gains | 18 | 6023 | 0.0% | 97.2% |
No Score | Tier I | 176 | Gains | 19 | 6199 | 2.8% | 100.0% |
1-100 | Tier III | 350 | Gross | 1 | 350 | 3.0% | 3.0% |
100-125 | Tier III | 270 | Gross | 2 | 620 | 2.3% | 5.3% |
125-150 | Tier III | 404 | Gross | 3 | 1024 | 3.5% | 8.8% |
150-175 | Tier III | 463 | Gross | 4 | 1487 | 4.0% | 12.7% |
175-200 | Tier III | 465 | Gross | 5 | 1952 | 4.0% | 16.7% |
200-225 | Tier II | 512 | Gross | 6 | 2464 | 4.4% | 21.1% |
225-250 | Tier I | 599 | Gross | 7 | 3063 | 5.1% | 26.2% |
250-275 | Tier I | 700 | Gross | 8 | 3763 | 6.0% | 32.2% |
275-300 | Tier I | 897 | Gross | 9 | 4660 | 7.7% | 39.9% |
300-325 | Tier I | 1089 | Gross | 10 | 5749 | 9.3% | 49.2% |
325-350 | Tier I | 1415 | Gross | 11 | 7164 | 12.1% | 61.3% |
350-375 | Tier I | 1183 | Gross | 12 | 8347 | 10.1% | 71.4% |
375-400 | Tier I | 1104 | Gross | 13 | 9451 | 9.4% | 80.9% |
400-425 | Tier I | 725 | Gross | 14 | 10176 | 6.2% | 87.1% |
425-450 | Tier I | 535 | Gross | 15 | 10711 | 4.6% | 91.7% |
450-475 | Tier I | 282 | Gross | 16 | 10993 | 2.4% | 94.1% |
475-500 | Tier I | 67 | Gross | 17 | 11060 | 0.6% | 94.6% |
500 + | Tier I | 2 | Gross | 18 | 11062 | 0.0% | 94.7% |
No Score | Tier I | 624 | Gross | 19 | 11686 | 5.3% | 100.0% |