DAX 从矩阵中的年份或季度中减去固定值
DAX Subtract Fixed Values from Year or Quarter in a Matrix
需要从克莱斯勒的 Matrix 视觉对象中的年度和季度聚合中减去设定值。数据按月计算多年,需要对克莱斯勒进行固定调整,每季度为5,为15每年 总数不低于零。
预期结果:
日期
阿斯顿·马丁
宝马
克莱斯勒
总计
2020
0
27.36
26.22
53.58
第一季度
0
0
7.99
7.99
第二季度
0
17.34
9.15
26.49
第三季度
0
10.02
0
10.02
第四季度
0
0
7.53
7.53
2021
10.05
51.51
7.32
68.88
第一季度
0
18.45
0
18.45
第二季度
0
13.77
0
13.77
第三季度
10.05
4.44
12.51
27
第四季度
0
14.85
0
14.85
2022
18.14
53.52
4.08
75.74
第一季度
18.14
17.64
0
35.78
第二季度
0
21.77
0
21.77
第三季度
0
7.44
3.73
11.17
第四季度
0
6.67
1.08
7.75
总计
28.19
132.39
37.62
198.2
数据:
id
组
日期
价值
3
克莱斯勒
2021 年 7 月 30 日
8.88
9
克莱斯勒
9/16/2021
3.16
18
宝马
5/26/2022
5.76
69
克莱斯勒
2020 年 1 月 9 日
6.14
75
宝马
2021 年 3 月 20 日
4.33
84
宝马
2020 年 6 月 20 日
8.97
104
宝马
10/22/2021
4.91
113
阿斯顿·马丁
2022 年 3 月 5 日
5.61
119
克莱斯勒
10/22/2022
6.08
139
宝马
9/13/2020
8.33
140
克莱斯勒
2020 年 8 月 11 日
1.55
169
宝马
2021 年 3 月 2 日
6.97
206
宝马
2021 年 5 月 13 日
4.34
244
克莱斯勒
11/10/2020
8.45
247
克莱斯勒
12/18/2020
2.38
284
宝马
2/4/2022
0.73
289
宝马
10/26/2022
2.24
383
阿斯顿·马丁
2022 年 2 月 21 日
7.61
400
克莱斯勒
2020 年 4 月 5 日
9.34
402
克莱斯勒
9/11/2022
1.63
403
宝马
2020 年 5 月 27 日
8.37
414
克莱斯勒
2021 年 8 月 11 日
4.93
441
宝马
2022 年 2 月 21 日
9.5
533
克莱斯勒
9/18/2022
7.1
538
宝马
1/28/2021
7.15
556
宝马
2022 年 6 月 30 日
4.61
586
宝马
2022 年 5 月 2 日
1.44
672
宝马
10/16/2022
2.21
734
宝马
2022 年 2 月 15 日
6.74
736
克莱斯勒
2020 年 6 月 16 日
4.81
740
宝马
12/5/2022
2.22
755
宝马
9/14/2021
4.44
766
宝马
2021 年 4 月 14 日
9.43
781
阿斯顿·马丁
2021 年 8 月 14 日
6.46
784
克莱斯勒
12/30/2021
4.81
788
宝马
2022 年 5 月 17 日
4.4
815
阿斯顿·马丁
2021 年 8 月 29 日
3.59
816
阿斯顿·马丁
2022 年 3 月 17 日
4.92
831
宝马
2022 年 3 月 24 日
0.67
835
宝马
11/28/2021
9.94
844
克莱斯勒
2021 年 8 月 17 日
0.54
849
宝马
2022 年 8 月 26 日
7.43
861
宝马
2020 年 7 月 24 日
1.69
885
克莱斯勒
1/11/2022
4.27
911
宝马
2022 年 7 月 1 日
0.01
942
克莱斯勒
12/26/2020
1.7
946
宝马
2022 年 6 月 9 日
5.56
948
克莱斯勒
2020 年 3 月 13 日
6.85
假设:您有一个带有 YearQuarter 列的日期 table(不一定标记为日期 table),一个带有每个组键的组 table,以及Table table.
中的 SumValue 之类的简单度量
(Measure on Table table)
SumValue := SUM('Table'[Value])
(Measure on Table table)
CustomChrysler :=
VAR YearQuarterGroup =
CROSSJOIN(
VALUES( Dates[YearQuarter] ),VALUES( Groups[Group] )
)
VAR Result =
SUMX(
YearQuarterGroup,
VAR SumVal = [SumValue]
VAR Amount = IF( Groups[Group] = "Chrysler", SumVal - 5, SumVal )
VAR AmountGreaterThanZero = IF( Amount < 0, 0, Amount )
RETURN
AmountGreaterThanZero
)
RETURN Result
更新:
哪一个?
CustomChrysler2 :=
VAR YearQuarterGroup =
CROSSJOIN(
VALUES( Dates[YearQuarter] ),VALUES( Groups[Group] )
)
VAR YearGroup =
CROSSJOIN(
VALUES( Dates[Year] ),VALUES( Groups[Group] )
)
VAR ResulYearQuarter =
SUMX(
YearQuarterGroup,
VAR SumVal = [SumValue]
VAR Amount = IF( Groups[Group] = "Chrysler", SumVal - 5, SumVal )
VAR AmountGreaterthanZero = IF( Amount >= 0, Amount) //BLANK
//VAR AmountGreaterThanZero = IF( Amount < 0, 0, Amount ) //Zero
RETURN
AmountGreaterThanZero
)
VAR ResultYear =
SUMX(
YearGroup,
VAR SumVal = [SumValue]
VAR Amount = IF( Groups[Group] = "Chrysler", SumVal - 15, SumVal )
VAR AmountGreaterthanZero = IF( Amount >= 0, Amount) //BLANK
//VAR AmountGreaterThanZero = IF( Amount < 0, 0, Amount ) //Zero
RETURN
AmountGreaterThanZero
)
RETURN
SWITCH(
TRUE(),
ISINSCOPE(Dates[Quarter]), ResulYearQuarter,
ResultYear //ISINSCOPE(Dates[Year]) and Grand Total
)
需要从克莱斯勒的 Matrix 视觉对象中的年度和季度聚合中减去设定值。数据按月计算多年,需要对克莱斯勒进行固定调整,每季度为5,为15每年 总数不低于零。
预期结果:
日期 | 阿斯顿·马丁 | 宝马 | 克莱斯勒 | 总计 |
---|---|---|---|---|
2020 | 0 | 27.36 | 26.22 | 53.58 |
第一季度 | 0 | 0 | 7.99 | 7.99 |
第二季度 | 0 | 17.34 | 9.15 | 26.49 |
第三季度 | 0 | 10.02 | 0 | 10.02 |
第四季度 | 0 | 0 | 7.53 | 7.53 |
2021 | 10.05 | 51.51 | 7.32 | 68.88 |
第一季度 | 0 | 18.45 | 0 | 18.45 |
第二季度 | 0 | 13.77 | 0 | 13.77 |
第三季度 | 10.05 | 4.44 | 12.51 | 27 |
第四季度 | 0 | 14.85 | 0 | 14.85 |
2022 | 18.14 | 53.52 | 4.08 | 75.74 |
第一季度 | 18.14 | 17.64 | 0 | 35.78 |
第二季度 | 0 | 21.77 | 0 | 21.77 |
第三季度 | 0 | 7.44 | 3.73 | 11.17 |
第四季度 | 0 | 6.67 | 1.08 | 7.75 |
总计 | 28.19 | 132.39 | 37.62 | 198.2 |
数据:
id | 组 | 日期 | 价值 |
---|---|---|---|
3 | 克莱斯勒 | 2021 年 7 月 30 日 | 8.88 |
9 | 克莱斯勒 | 9/16/2021 | 3.16 |
18 | 宝马 | 5/26/2022 | 5.76 |
69 | 克莱斯勒 | 2020 年 1 月 9 日 | 6.14 |
75 | 宝马 | 2021 年 3 月 20 日 | 4.33 |
84 | 宝马 | 2020 年 6 月 20 日 | 8.97 |
104 | 宝马 | 10/22/2021 | 4.91 |
113 | 阿斯顿·马丁 | 2022 年 3 月 5 日 | 5.61 |
119 | 克莱斯勒 | 10/22/2022 | 6.08 |
139 | 宝马 | 9/13/2020 | 8.33 |
140 | 克莱斯勒 | 2020 年 8 月 11 日 | 1.55 |
169 | 宝马 | 2021 年 3 月 2 日 | 6.97 |
206 | 宝马 | 2021 年 5 月 13 日 | 4.34 |
244 | 克莱斯勒 | 11/10/2020 | 8.45 |
247 | 克莱斯勒 | 12/18/2020 | 2.38 |
284 | 宝马 | 2/4/2022 | 0.73 |
289 | 宝马 | 10/26/2022 | 2.24 |
383 | 阿斯顿·马丁 | 2022 年 2 月 21 日 | 7.61 |
400 | 克莱斯勒 | 2020 年 4 月 5 日 | 9.34 |
402 | 克莱斯勒 | 9/11/2022 | 1.63 |
403 | 宝马 | 2020 年 5 月 27 日 | 8.37 |
414 | 克莱斯勒 | 2021 年 8 月 11 日 | 4.93 |
441 | 宝马 | 2022 年 2 月 21 日 | 9.5 |
533 | 克莱斯勒 | 9/18/2022 | 7.1 |
538 | 宝马 | 1/28/2021 | 7.15 |
556 | 宝马 | 2022 年 6 月 30 日 | 4.61 |
586 | 宝马 | 2022 年 5 月 2 日 | 1.44 |
672 | 宝马 | 10/16/2022 | 2.21 |
734 | 宝马 | 2022 年 2 月 15 日 | 6.74 |
736 | 克莱斯勒 | 2020 年 6 月 16 日 | 4.81 |
740 | 宝马 | 12/5/2022 | 2.22 |
755 | 宝马 | 9/14/2021 | 4.44 |
766 | 宝马 | 2021 年 4 月 14 日 | 9.43 |
781 | 阿斯顿·马丁 | 2021 年 8 月 14 日 | 6.46 |
784 | 克莱斯勒 | 12/30/2021 | 4.81 |
788 | 宝马 | 2022 年 5 月 17 日 | 4.4 |
815 | 阿斯顿·马丁 | 2021 年 8 月 29 日 | 3.59 |
816 | 阿斯顿·马丁 | 2022 年 3 月 17 日 | 4.92 |
831 | 宝马 | 2022 年 3 月 24 日 | 0.67 |
835 | 宝马 | 11/28/2021 | 9.94 |
844 | 克莱斯勒 | 2021 年 8 月 17 日 | 0.54 |
849 | 宝马 | 2022 年 8 月 26 日 | 7.43 |
861 | 宝马 | 2020 年 7 月 24 日 | 1.69 |
885 | 克莱斯勒 | 1/11/2022 | 4.27 |
911 | 宝马 | 2022 年 7 月 1 日 | 0.01 |
942 | 克莱斯勒 | 12/26/2020 | 1.7 |
946 | 宝马 | 2022 年 6 月 9 日 | 5.56 |
948 | 克莱斯勒 | 2020 年 3 月 13 日 | 6.85 |
假设:您有一个带有 YearQuarter 列的日期 table(不一定标记为日期 table),一个带有每个组键的组 table,以及Table table.
中的 SumValue 之类的简单度量(Measure on Table table)
SumValue := SUM('Table'[Value])
(Measure on Table table)
CustomChrysler :=
VAR YearQuarterGroup =
CROSSJOIN(
VALUES( Dates[YearQuarter] ),VALUES( Groups[Group] )
)
VAR Result =
SUMX(
YearQuarterGroup,
VAR SumVal = [SumValue]
VAR Amount = IF( Groups[Group] = "Chrysler", SumVal - 5, SumVal )
VAR AmountGreaterThanZero = IF( Amount < 0, 0, Amount )
RETURN
AmountGreaterThanZero
)
RETURN Result
更新: 哪一个?
CustomChrysler2 :=
VAR YearQuarterGroup =
CROSSJOIN(
VALUES( Dates[YearQuarter] ),VALUES( Groups[Group] )
)
VAR YearGroup =
CROSSJOIN(
VALUES( Dates[Year] ),VALUES( Groups[Group] )
)
VAR ResulYearQuarter =
SUMX(
YearQuarterGroup,
VAR SumVal = [SumValue]
VAR Amount = IF( Groups[Group] = "Chrysler", SumVal - 5, SumVal )
VAR AmountGreaterthanZero = IF( Amount >= 0, Amount) //BLANK
//VAR AmountGreaterThanZero = IF( Amount < 0, 0, Amount ) //Zero
RETURN
AmountGreaterThanZero
)
VAR ResultYear =
SUMX(
YearGroup,
VAR SumVal = [SumValue]
VAR Amount = IF( Groups[Group] = "Chrysler", SumVal - 15, SumVal )
VAR AmountGreaterthanZero = IF( Amount >= 0, Amount) //BLANK
//VAR AmountGreaterThanZero = IF( Amount < 0, 0, Amount ) //Zero
RETURN
AmountGreaterThanZero
)
RETURN
SWITCH(
TRUE(),
ISINSCOPE(Dates[Quarter]), ResulYearQuarter,
ResultYear //ISINSCOPE(Dates[Year]) and Grand Total
)