计算重新设定的系列
Calculate a rebased series
在 Power BI 中,我正在尝试创建一个框,显示随时间变化的多个股权指数的折线图,重新设定基数以便原始值为 1。我正在使用切片器。
这个想法是,用户将 select 一个日期范围并查看各个市场的表现,所有这些都从统一开始。
我是 DAX 用户的新手。
以下 returns 个垃圾值约为 500K
Rebased =
VAR
__FirstValue = CALCULATE(SUM('Equity Markets (2)'[Value]),FIRSTDATE('Equity Markets (2)'[Date]))
VAR
__CurrentValue = SUM('Equity Markets (2)'[Value])
RETURN
CALCULATE(DIVIDE(__CurrentValue,__FirstValue))
请求的数据样本:
Date S&P/ASX 300 - PRICE INDEX S&P 500 COMPOSITE - PRICE INDEX DAX 30 PERFORMANCE - PRICE INDEX
15/05/2009 3768.03 882.88 4737.5
18/05/2009 3729.82 909.71 4851.96
19/05/2009 3810.01 908.13 4959.62
20/05/2009 3817.48 903.47 5038.94
21/05/2009 3807.67 888.33 4900.67
22/05/2009 3756.13 887 4918.75
25/05/2009 3732.7 887 4918.45
26/05/2009 3782.56 910.33 4985.6
27/05/2009 3796.1 893.06 5000.77
28/05/2009 3751.3 906.83 4932.88
29/05/2009 3813.64 919.14 4940.82
1/06/2009 3890.79 942.87 5142.56
2/06/2009 3950.74 944.74 5144.06
3/06/2009 4012.13 931.76 5054.53
4/06/2009 3930.65 942.46 5064.8
5/06/2009 3967.33 940.09 5077.03
8/06/2009 3967.33 939.14 5004.72
9/06/2009 3931.38 942.43 4997.86
10/06/2009 4019.95 939.15 5051.18
11/06/2009 4042.7 944.89 5107.26
12/06/2009 4057.8 946.21 5069.24
15/06/2009 4027.6 923.72 4889.94
16/06/2009 3957.63 911.97 4890.72
17/06/2009 3899.72 910.71 4799.98
18/06/2009 3887.58 918.37 4837.48
19/06/2009 3895 921.23 4839.46
22/06/2009 3913.1 893.04 4693.4
23/06/2009 3791.74 895.1 4707.15
24/06/2009 3801.79 900.94 4836.01
25/06/2009 3850.9 920.26 4800.56
26/06/2009 3899.44 918.9 4776.47
29/06/2009 3882.2 927.23 4885.09
30/06/2009 3948.68 919.32 4808.64
1/07/2009 3869.44 923.33 4905.44
2/07/2009 3873.62 896.42 4718.49
3/07/2009 3824.65 896.42 4708.21
6/07/2009 3780.2 898.72 4651.82
7/07/2009 3763 881.03 4598.19
8/07/2009 3762.98 879.56 4572.65
9/07/2009 3758.1 882.68 4630.07
10/07/2009 3788.6 879.13 4576.31
13/07/2009 3732.7 901.05 4722.34
14/07/2009 3861.41 905.84 4781.69
15/07/2009 3918.72 932.68 4928.44
16/07/2009 3989.7 940.74 4957.19
17/07/2009 3994.3 940.38 4978.4
20/07/2009 4043.6 951.13 5030.15
21/07/2009 4044.6 954.58 5093.97
22/07/2009 4062.5 954.07 5121.56
23/07/2009 4059.6 976.29 5247.28
24/07/2009 4084.79 979.26 5229.36
27/07/2009 4133.98 982.18 5251.55
28/07/2009 4162.7 979.62 5174.74
29/07/2009 4136.3 975.15 5270.32
30/07/2009 4183.6 986.75 5360.66
31/07/2009 4238.24 987.48 5332.14
3/08/2009 4259.2 1002.63 5426.85
4/08/2009 4304.21 1005.65 5417.02
5/08/2009 4259.54 1002.72 5353.01
6/08/2009 4320.41 997.08 5369.98
7/08/2009 4294.21 1010.48 5458.96
10/08/2009 4300.06 1007.1 5418.12
11/08/2009 4327.46 994.35 5285.81
12/08/2009 4338.93 1005.81 5350.09
13/08/2009 4432.42 1012.73 5401.11
14/08/2009 4458.59 1004.09 5309.11
17/08/2009 4385.47 979.73 5201.61
18/08/2009 4377.34 989.67 5250.74
19/08/2009 4371.38 996.46 5231.98
20/08/2009 4374.91 1007.37 5311.06
21/08/2009 4288.36 1026.13 5462.74
24/08/2009 4422.93 1025.57 5519.75
25/08/2009 4403.84 1028 5557.09
26/08/2009 4452.72 1028.12 5521.97
27/08/2009 4448.66 1030.98 5470.33
28/08/2009 4487.13 1028.93 5517.35
31/08/2009 4476.71 1020.62 5464.61
1/09/2009 4511.22 998.04 5327.29
2/09/2009 4435.57 994.75 5319.84
3/09/2009 4429.02 1003.24 5301.42
4/09/2009 4435.48 1016.4 5384.43
7/09/2009 4454.61 1016.4 5463.51
8/09/2009 4524.33 1025.39 5481.73
9/09/2009 4523.49 1033.37 5574.26
10/09/2009 4571.37 1044.14 5594.77
11/09/2009 4596.2 1042.73 5624.02
14/09/2009 4532.22 1049.34 5620.24
15/09/2009 4541.84 1052.63 5628.98
16/09/2009 4650.89 1068.76 5700.26
17/09/2009 4715.33 1065.49 5731.14
18/09/2009 4694.99 1068.3 5703.83
21/09/2009 4678.74 1064.66 5668.65
22/09/2009 4665.72 1071.66 5709.38
23/09/2009 4736.2 1060.87 5702.05
24/09/2009 4703.11 1050.78 5605.21
25/09/2009 4714.38 1044.38 5581.41
28/09/2009 4677.71 1062.98 5736.31
29/09/2009 4752.17 1060.61 5713.52
30/09/2009 4742.05 1057.08 5675.16
1/10/2009 4700.57 1029.85 5554.55
2/10/2009 4600.96 1025.21 5467.9
5/10/2009 4572.45 1040.46 5508.85
6/10/2009 4591.55 1054.72 5657.64
7/10/2009 4695.04 1057.58 5640.75
8/10/2009 4767.6 1065.48 5716.54
9/10/2009 4753.45 1071.49 5711.88
12/10/2009 4740.73 1076.19 5783.23
13/10/2009 4786.47 1073.19 5714.31
14/10/2009 4832.16 1092.02 5854.14
15/10/2009 4860.43 1096.56 5830.77
16/10/2009 4837.58 1087.68 5743.39
19/10/2009 4794.56 1097.91 5852.56
20/10/2009 4847.45 1091.06 5811.77
21/10/2009 4839.81 1081.4 5833.49
22/10/2009 4813.5 1092.91 5762.93
23/10/2009 4859.37 1079.6 5740.25
26/10/2009 4830.48 1066.95 5642.16
27/10/2009 4753.23 1063.41 5635.02
28/10/2009 4683.99 1042.63 5496.27
29/10/2009 4572.36 1066.11 5587.45
30/10/2009 4642.06 1036.19 5414.96
2/11/2009 4539.4 1042.88 5430.82
3/11/2009 4531.22 1045.41 5353.35
4/11/2009 4539.91 1046.5 5444.23
5/11/2009 4508.57 1066.63 5480.92
6/11/2009 4594.77 1069.3 5488.25
9/11/2009 4675.28 1093.08 5619.72
10/11/2009 4733.95 1093.01 5613.2
11/11/2009 4757.52 1098.51 5668.35
12/11/2009 4748.47 1087.24 5663.96
13/11/2009 4707.82 1093.48 5686.83
16/11/2009 4756.15 1109.3 5804.82
17/11/2009 4730.34 1110.32 5778.43
18/11/2009 4739.75 1109.8 5787.61
19/11/2009 4749.77 1094.9 5702.18
20/11/2009 4686.86 1091.38 5663.15
23/11/2009 4717.98 1106.24 5801.48
24/11/2009 4686.43 1105.65 5769.31
25/11/2009 4722.86 1110.63 5803.02
26/11/2009 4709.95 1110.63 5614.17
27/11/2009 4574.22 1091.49 5685.61
30/11/2009 4701.52 1095.63 5625.95
1/12/2009 4719.43 1108.86 5776.61
2/12/2009 4763.35 1109.24 5781.68
3/12/2009 4775.77 1099.92 5770.35
4/12/2009 4704.64 1105.98 5817.65
7/12/2009 4678.3 1103.25 5784.75
8/12/2009 4672.33 1091.94 5688.58
9/12/2009 4638.93 1095.95 5647.84
10/12/2009 4607.37 1102.35 5709.02
11/12/2009 4635.65 1106.41 5756.29
14/12/2009 4654 1114.11 5802.26
15/12/2009 4673.67 1107.93 5811.34
16/12/2009 4661.6 1109.18 5903.43
17/12/2009 4670.1 1096.08 5844.44
18/12/2009 4649.39 1102.47 5831.21
21/12/2009 4634.18 1114.05 5930.53
22/12/2009 4702.52 1118.02 5945.69
23/12/2009 4736.92 1120.59 5957.44
24/12/2009 4788.06 1126.48 5957.44
25/12/2009 4788.06 1126.48 5957.44
28/12/2009 4788.06 1127.78 6002.92
29/12/2009 4842.85 1126.2 6011.55
30/12/2009 4831.36 1126.42 5957.43
31/12/2009 4868.2 1115.1 5957.43
1/01/2010 4868.2 1115.1 5957.43
4/01/2010 4874.29 1132.99 6048.3
5/01/2010 4922.6 1136.52 6031.86
6/01/2010 4920.72 1137.14 6034.33
7/01/2010 4899.66 1141.69 6019.36
8/01/2010 4912.02 1144.98 6037.61
11/01/2010 4950.25 1146.98 6040.5
12/01/2010 4899.7 1136.22 5943
13/01/2010 4868.47 1145.68 5963.14
14/01/2010 4897.71 1148.46 5988.88
15/01/2010 4899.16 1136.03 5875.97
18/01/2010 4910.02 1136.03 5918.55
19/01/2010 4860.68 1150.23 5976.48
20/01/2010 4866.92 1138.04 5851.53
21/01/2010 4825.16 1116.48 5746.97
22/01/2010 4748.51 1091.76 5695.32
25/01/2010 4716.07 1096.78 5631.37
26/01/2010 4716.07 1092.17 5668.93
27/01/2010 4643.07 1097.5 5643.2
28/01/2010 4671.51 1084.53 5540.33
29/01/2010 4567.85 1073.87 5608.79
1/02/2010 4519.78 1089.19 5654.48
2/02/2010 4601.64 1103.32 5709.66
3/02/2010 4643.84 1097.28 5672.09
4/02/2010 4616.86 1063.11 5533.24
5/02/2010 4508.74 1066.19 5434.34
8/02/2010 4516.03 1056.74 5484.85
9/02/2010 4498.78 1070.52 5498.26
10/02/2010 4507.42 1068.13 5536.37
11/02/2010 4549.47 1078.47 5503.93
12/02/2010 4558.41 1075.51 5500.39
15/02/2010 4540.85 1075.51 5511.1
16/02/2010 4562.72 1094.87 5592.12
17/02/2010 4662.13 1099.51 5648.34
18/02/2010 4649.19 1106.75 5680.41
19/02/2010 4629.54 1109.17 5722.05
22/02/2010 4711.28 1108.01 5688.44
23/02/2010 4711.93 1094.6 5604.07
24/02/2010 4642.88 1105.24 5615.51
25/02/2010 4588.5 1102.94 5532.33
26/02/2010 4631.09 1104.49 5598.46
1/03/2010 4679.14 1115.71 5713.51
2/03/2010 4694.54 1118.31 5776.56
3/03/2010 4727.61 1118.79 5817.88
4/03/2010 4742.7 1122.97 5795.32
5/03/2010 4759.05 1138.7 5877.36
8/03/2010 4800.57 1138.5 5875.91
9/03/2010 4812.82 1140.45 5885.89
10/03/2010 4812.98 1145.61 5936.72
11/03/2010 4807.29 1150.24 5928.63
12/03/2010 4811.54 1149.99 5945.11
15/03/2010 4777.87 1150.51 5903.56
16/03/2010 4790.56 1159.46 5970.99
17/03/2010 4846.04 1166.21 6024.28
18/03/2010 4856.06 1165.83 6012.31
19/03/2010 4865.63 1159.9 5982.43
22/03/2010 4823.58 1165.81 5987.5
23/03/2010 4867.47 1174.17 6017.27
24/03/2010 4883.89 1167.72 6039
25/03/2010 4877.32 1165.73 6132.95
26/03/2010 4888.05 1166.59 6120.05
29/03/2010 4888.62 1173.22 6156.85
30/03/2010 4907.95 1173.27 6142.45
31/03/2010 4868.4 1169.43 6153.55
1/04/2010 4900.4 1178.1 6235.56
2/04/2010 4900.4 1178.1 6235.56
5/04/2010 4900.4 1187.44 6235.56
6/04/2010 4946.4 1189.44 6252.21
7/04/2010 4953.66 1182.45 6222.41
8/04/2010 4930.79 1186.44 6171.83
9/04/2010 4941.06 1194.37 6249.7
12/04/2010 4977.79 1196.48 6250.69
13/04/2010 4945.51 1197.3 6230.83
14/04/2010 4987.79 1210.65 6278.4
15/04/2010 4995.04 1211.67 6291.45
16/04/2010 4978.26 1192.13 6180.9
19/04/2010 4909.63 1197.52 6162.44
20/04/2010 4919.88 1207.17 6264.23
21/04/2010 4948.84 1205.94 6230.38
22/04/2010 4902.88 1208.67 6168.72
23/04/2010 4877.21 1217.28 6259.53
26/04/2010 4877.21 1212.05 6332.1
27/04/2010 4875.89 1183.71 6159.51
28/04/2010 4818.41 1191.36 6084.34
29/04/2010 4781.06 1206.78 6144.91
30/04/2010 4801.96 1186.69 6135.7
3/05/2010 4779.39 1202.26 6166.92
4/05/2010 4730 1173.6 6006.86
5/05/2010 4666.66 1165.9 5958.45
6/05/2010 4567.05 1128.15 5908.26
7/05/2010 4474.56 1110.88 5715.09
10/05/2010 4592.91 1159.73 6017.91
11/05/2010 4542.12 1155.79 6037.71
12/05/2010 4567.28 1171.67 6183.49
13/05/2010 4646.71 1157.44 6251.97
14/05/2010 4605.86 1135.68 6056.71
当前代码:
Rebase3 =
VAR BASELINE_VALUE = CALCULATE ( SUM ('Equity Markets
(2)'[Value]),
FIRSTDATE ( ALLSELECTED ('Equity Markets (2)'[Date]) ) )
VAR VALUE_TO_COMPARE = SUM ('Equity Markets (2)'[Value])
RETURN
DIVIDE(VALUE_TO_COMPARE, BASELINE_VALUE)
感谢您提到您是新手,您在这里犯了一些众所周知的新手错误。
第一个是VAR的使用。这个很重要,也是counter-intuitive。一旦定义了 VAR,它实际上就是一个常量,它不会因用户的选择而改变!。这样做的原因是您丢失了上下文(DAX 中的所有查询都存在于 context 中)。解决方案是定义一个 MEASURE。一旦你这样做了,你就可以解决问题。这就是为什么你会得到垃圾结果。
和
https://www.sqlbi.com/articles/variables-in-dax/
好消息是,一旦您设法理解了这一点,您就几乎解决了 DAX 中最困难的障碍。
我简化了您的名字,并且仅使用 S&P500(第二个索引)列作为示例 - 其他人将以同样的方式工作。
创建度量:
Rebased S&P500 =
VAR
Original_Value =
CALCULATE ( SUM ( Data[SP500] ), FIRSTDATE ( ALLSELECTED ( Data[Date] ) ) )
VAR
Current_Value = SUM ( Data[SP500] )
RETURN
DIVIDE ( Current_Value, Original_Value )
结果(我使用了 Power Pivot table,但 Power BI 中的图表将以相同的方式工作):
工作原理:
- 首先,它必须是一个措施。如评论中所述,计算列本质上是静态数据,它们无法响应用户操作。
- 其次,要计算原始值,您必须知道所选日期范围内的第一个日期。这是通过使用 ALLSELECTED 来完成的,它提供了所有选定日期的列表以运行 FIRSTDATE。
- 最后,我们将当前值除以原始值。无需在此处使用 CALCULATE。
在 Power BI 中,我正在尝试创建一个框,显示随时间变化的多个股权指数的折线图,重新设定基数以便原始值为 1。我正在使用切片器。
这个想法是,用户将 select 一个日期范围并查看各个市场的表现,所有这些都从统一开始。
我是 DAX 用户的新手。
以下 returns 个垃圾值约为 500K
Rebased =
VAR
__FirstValue = CALCULATE(SUM('Equity Markets (2)'[Value]),FIRSTDATE('Equity Markets (2)'[Date]))
VAR
__CurrentValue = SUM('Equity Markets (2)'[Value])
RETURN
CALCULATE(DIVIDE(__CurrentValue,__FirstValue))
请求的数据样本:
Date S&P/ASX 300 - PRICE INDEX S&P 500 COMPOSITE - PRICE INDEX DAX 30 PERFORMANCE - PRICE INDEX
15/05/2009 3768.03 882.88 4737.5
18/05/2009 3729.82 909.71 4851.96
19/05/2009 3810.01 908.13 4959.62
20/05/2009 3817.48 903.47 5038.94
21/05/2009 3807.67 888.33 4900.67
22/05/2009 3756.13 887 4918.75
25/05/2009 3732.7 887 4918.45
26/05/2009 3782.56 910.33 4985.6
27/05/2009 3796.1 893.06 5000.77
28/05/2009 3751.3 906.83 4932.88
29/05/2009 3813.64 919.14 4940.82
1/06/2009 3890.79 942.87 5142.56
2/06/2009 3950.74 944.74 5144.06
3/06/2009 4012.13 931.76 5054.53
4/06/2009 3930.65 942.46 5064.8
5/06/2009 3967.33 940.09 5077.03
8/06/2009 3967.33 939.14 5004.72
9/06/2009 3931.38 942.43 4997.86
10/06/2009 4019.95 939.15 5051.18
11/06/2009 4042.7 944.89 5107.26
12/06/2009 4057.8 946.21 5069.24
15/06/2009 4027.6 923.72 4889.94
16/06/2009 3957.63 911.97 4890.72
17/06/2009 3899.72 910.71 4799.98
18/06/2009 3887.58 918.37 4837.48
19/06/2009 3895 921.23 4839.46
22/06/2009 3913.1 893.04 4693.4
23/06/2009 3791.74 895.1 4707.15
24/06/2009 3801.79 900.94 4836.01
25/06/2009 3850.9 920.26 4800.56
26/06/2009 3899.44 918.9 4776.47
29/06/2009 3882.2 927.23 4885.09
30/06/2009 3948.68 919.32 4808.64
1/07/2009 3869.44 923.33 4905.44
2/07/2009 3873.62 896.42 4718.49
3/07/2009 3824.65 896.42 4708.21
6/07/2009 3780.2 898.72 4651.82
7/07/2009 3763 881.03 4598.19
8/07/2009 3762.98 879.56 4572.65
9/07/2009 3758.1 882.68 4630.07
10/07/2009 3788.6 879.13 4576.31
13/07/2009 3732.7 901.05 4722.34
14/07/2009 3861.41 905.84 4781.69
15/07/2009 3918.72 932.68 4928.44
16/07/2009 3989.7 940.74 4957.19
17/07/2009 3994.3 940.38 4978.4
20/07/2009 4043.6 951.13 5030.15
21/07/2009 4044.6 954.58 5093.97
22/07/2009 4062.5 954.07 5121.56
23/07/2009 4059.6 976.29 5247.28
24/07/2009 4084.79 979.26 5229.36
27/07/2009 4133.98 982.18 5251.55
28/07/2009 4162.7 979.62 5174.74
29/07/2009 4136.3 975.15 5270.32
30/07/2009 4183.6 986.75 5360.66
31/07/2009 4238.24 987.48 5332.14
3/08/2009 4259.2 1002.63 5426.85
4/08/2009 4304.21 1005.65 5417.02
5/08/2009 4259.54 1002.72 5353.01
6/08/2009 4320.41 997.08 5369.98
7/08/2009 4294.21 1010.48 5458.96
10/08/2009 4300.06 1007.1 5418.12
11/08/2009 4327.46 994.35 5285.81
12/08/2009 4338.93 1005.81 5350.09
13/08/2009 4432.42 1012.73 5401.11
14/08/2009 4458.59 1004.09 5309.11
17/08/2009 4385.47 979.73 5201.61
18/08/2009 4377.34 989.67 5250.74
19/08/2009 4371.38 996.46 5231.98
20/08/2009 4374.91 1007.37 5311.06
21/08/2009 4288.36 1026.13 5462.74
24/08/2009 4422.93 1025.57 5519.75
25/08/2009 4403.84 1028 5557.09
26/08/2009 4452.72 1028.12 5521.97
27/08/2009 4448.66 1030.98 5470.33
28/08/2009 4487.13 1028.93 5517.35
31/08/2009 4476.71 1020.62 5464.61
1/09/2009 4511.22 998.04 5327.29
2/09/2009 4435.57 994.75 5319.84
3/09/2009 4429.02 1003.24 5301.42
4/09/2009 4435.48 1016.4 5384.43
7/09/2009 4454.61 1016.4 5463.51
8/09/2009 4524.33 1025.39 5481.73
9/09/2009 4523.49 1033.37 5574.26
10/09/2009 4571.37 1044.14 5594.77
11/09/2009 4596.2 1042.73 5624.02
14/09/2009 4532.22 1049.34 5620.24
15/09/2009 4541.84 1052.63 5628.98
16/09/2009 4650.89 1068.76 5700.26
17/09/2009 4715.33 1065.49 5731.14
18/09/2009 4694.99 1068.3 5703.83
21/09/2009 4678.74 1064.66 5668.65
22/09/2009 4665.72 1071.66 5709.38
23/09/2009 4736.2 1060.87 5702.05
24/09/2009 4703.11 1050.78 5605.21
25/09/2009 4714.38 1044.38 5581.41
28/09/2009 4677.71 1062.98 5736.31
29/09/2009 4752.17 1060.61 5713.52
30/09/2009 4742.05 1057.08 5675.16
1/10/2009 4700.57 1029.85 5554.55
2/10/2009 4600.96 1025.21 5467.9
5/10/2009 4572.45 1040.46 5508.85
6/10/2009 4591.55 1054.72 5657.64
7/10/2009 4695.04 1057.58 5640.75
8/10/2009 4767.6 1065.48 5716.54
9/10/2009 4753.45 1071.49 5711.88
12/10/2009 4740.73 1076.19 5783.23
13/10/2009 4786.47 1073.19 5714.31
14/10/2009 4832.16 1092.02 5854.14
15/10/2009 4860.43 1096.56 5830.77
16/10/2009 4837.58 1087.68 5743.39
19/10/2009 4794.56 1097.91 5852.56
20/10/2009 4847.45 1091.06 5811.77
21/10/2009 4839.81 1081.4 5833.49
22/10/2009 4813.5 1092.91 5762.93
23/10/2009 4859.37 1079.6 5740.25
26/10/2009 4830.48 1066.95 5642.16
27/10/2009 4753.23 1063.41 5635.02
28/10/2009 4683.99 1042.63 5496.27
29/10/2009 4572.36 1066.11 5587.45
30/10/2009 4642.06 1036.19 5414.96
2/11/2009 4539.4 1042.88 5430.82
3/11/2009 4531.22 1045.41 5353.35
4/11/2009 4539.91 1046.5 5444.23
5/11/2009 4508.57 1066.63 5480.92
6/11/2009 4594.77 1069.3 5488.25
9/11/2009 4675.28 1093.08 5619.72
10/11/2009 4733.95 1093.01 5613.2
11/11/2009 4757.52 1098.51 5668.35
12/11/2009 4748.47 1087.24 5663.96
13/11/2009 4707.82 1093.48 5686.83
16/11/2009 4756.15 1109.3 5804.82
17/11/2009 4730.34 1110.32 5778.43
18/11/2009 4739.75 1109.8 5787.61
19/11/2009 4749.77 1094.9 5702.18
20/11/2009 4686.86 1091.38 5663.15
23/11/2009 4717.98 1106.24 5801.48
24/11/2009 4686.43 1105.65 5769.31
25/11/2009 4722.86 1110.63 5803.02
26/11/2009 4709.95 1110.63 5614.17
27/11/2009 4574.22 1091.49 5685.61
30/11/2009 4701.52 1095.63 5625.95
1/12/2009 4719.43 1108.86 5776.61
2/12/2009 4763.35 1109.24 5781.68
3/12/2009 4775.77 1099.92 5770.35
4/12/2009 4704.64 1105.98 5817.65
7/12/2009 4678.3 1103.25 5784.75
8/12/2009 4672.33 1091.94 5688.58
9/12/2009 4638.93 1095.95 5647.84
10/12/2009 4607.37 1102.35 5709.02
11/12/2009 4635.65 1106.41 5756.29
14/12/2009 4654 1114.11 5802.26
15/12/2009 4673.67 1107.93 5811.34
16/12/2009 4661.6 1109.18 5903.43
17/12/2009 4670.1 1096.08 5844.44
18/12/2009 4649.39 1102.47 5831.21
21/12/2009 4634.18 1114.05 5930.53
22/12/2009 4702.52 1118.02 5945.69
23/12/2009 4736.92 1120.59 5957.44
24/12/2009 4788.06 1126.48 5957.44
25/12/2009 4788.06 1126.48 5957.44
28/12/2009 4788.06 1127.78 6002.92
29/12/2009 4842.85 1126.2 6011.55
30/12/2009 4831.36 1126.42 5957.43
31/12/2009 4868.2 1115.1 5957.43
1/01/2010 4868.2 1115.1 5957.43
4/01/2010 4874.29 1132.99 6048.3
5/01/2010 4922.6 1136.52 6031.86
6/01/2010 4920.72 1137.14 6034.33
7/01/2010 4899.66 1141.69 6019.36
8/01/2010 4912.02 1144.98 6037.61
11/01/2010 4950.25 1146.98 6040.5
12/01/2010 4899.7 1136.22 5943
13/01/2010 4868.47 1145.68 5963.14
14/01/2010 4897.71 1148.46 5988.88
15/01/2010 4899.16 1136.03 5875.97
18/01/2010 4910.02 1136.03 5918.55
19/01/2010 4860.68 1150.23 5976.48
20/01/2010 4866.92 1138.04 5851.53
21/01/2010 4825.16 1116.48 5746.97
22/01/2010 4748.51 1091.76 5695.32
25/01/2010 4716.07 1096.78 5631.37
26/01/2010 4716.07 1092.17 5668.93
27/01/2010 4643.07 1097.5 5643.2
28/01/2010 4671.51 1084.53 5540.33
29/01/2010 4567.85 1073.87 5608.79
1/02/2010 4519.78 1089.19 5654.48
2/02/2010 4601.64 1103.32 5709.66
3/02/2010 4643.84 1097.28 5672.09
4/02/2010 4616.86 1063.11 5533.24
5/02/2010 4508.74 1066.19 5434.34
8/02/2010 4516.03 1056.74 5484.85
9/02/2010 4498.78 1070.52 5498.26
10/02/2010 4507.42 1068.13 5536.37
11/02/2010 4549.47 1078.47 5503.93
12/02/2010 4558.41 1075.51 5500.39
15/02/2010 4540.85 1075.51 5511.1
16/02/2010 4562.72 1094.87 5592.12
17/02/2010 4662.13 1099.51 5648.34
18/02/2010 4649.19 1106.75 5680.41
19/02/2010 4629.54 1109.17 5722.05
22/02/2010 4711.28 1108.01 5688.44
23/02/2010 4711.93 1094.6 5604.07
24/02/2010 4642.88 1105.24 5615.51
25/02/2010 4588.5 1102.94 5532.33
26/02/2010 4631.09 1104.49 5598.46
1/03/2010 4679.14 1115.71 5713.51
2/03/2010 4694.54 1118.31 5776.56
3/03/2010 4727.61 1118.79 5817.88
4/03/2010 4742.7 1122.97 5795.32
5/03/2010 4759.05 1138.7 5877.36
8/03/2010 4800.57 1138.5 5875.91
9/03/2010 4812.82 1140.45 5885.89
10/03/2010 4812.98 1145.61 5936.72
11/03/2010 4807.29 1150.24 5928.63
12/03/2010 4811.54 1149.99 5945.11
15/03/2010 4777.87 1150.51 5903.56
16/03/2010 4790.56 1159.46 5970.99
17/03/2010 4846.04 1166.21 6024.28
18/03/2010 4856.06 1165.83 6012.31
19/03/2010 4865.63 1159.9 5982.43
22/03/2010 4823.58 1165.81 5987.5
23/03/2010 4867.47 1174.17 6017.27
24/03/2010 4883.89 1167.72 6039
25/03/2010 4877.32 1165.73 6132.95
26/03/2010 4888.05 1166.59 6120.05
29/03/2010 4888.62 1173.22 6156.85
30/03/2010 4907.95 1173.27 6142.45
31/03/2010 4868.4 1169.43 6153.55
1/04/2010 4900.4 1178.1 6235.56
2/04/2010 4900.4 1178.1 6235.56
5/04/2010 4900.4 1187.44 6235.56
6/04/2010 4946.4 1189.44 6252.21
7/04/2010 4953.66 1182.45 6222.41
8/04/2010 4930.79 1186.44 6171.83
9/04/2010 4941.06 1194.37 6249.7
12/04/2010 4977.79 1196.48 6250.69
13/04/2010 4945.51 1197.3 6230.83
14/04/2010 4987.79 1210.65 6278.4
15/04/2010 4995.04 1211.67 6291.45
16/04/2010 4978.26 1192.13 6180.9
19/04/2010 4909.63 1197.52 6162.44
20/04/2010 4919.88 1207.17 6264.23
21/04/2010 4948.84 1205.94 6230.38
22/04/2010 4902.88 1208.67 6168.72
23/04/2010 4877.21 1217.28 6259.53
26/04/2010 4877.21 1212.05 6332.1
27/04/2010 4875.89 1183.71 6159.51
28/04/2010 4818.41 1191.36 6084.34
29/04/2010 4781.06 1206.78 6144.91
30/04/2010 4801.96 1186.69 6135.7
3/05/2010 4779.39 1202.26 6166.92
4/05/2010 4730 1173.6 6006.86
5/05/2010 4666.66 1165.9 5958.45
6/05/2010 4567.05 1128.15 5908.26
7/05/2010 4474.56 1110.88 5715.09
10/05/2010 4592.91 1159.73 6017.91
11/05/2010 4542.12 1155.79 6037.71
12/05/2010 4567.28 1171.67 6183.49
13/05/2010 4646.71 1157.44 6251.97
14/05/2010 4605.86 1135.68 6056.71
当前代码:
Rebase3 =
VAR BASELINE_VALUE = CALCULATE ( SUM ('Equity Markets (2)'[Value]), FIRSTDATE ( ALLSELECTED ('Equity Markets (2)'[Date]) ) )VAR VALUE_TO_COMPARE = SUM ('Equity Markets (2)'[Value])
RETURN
DIVIDE(VALUE_TO_COMPARE, BASELINE_VALUE)
感谢您提到您是新手,您在这里犯了一些众所周知的新手错误。
第一个是VAR的使用。这个很重要,也是counter-intuitive。一旦定义了 VAR,它实际上就是一个常量,它不会因用户的选择而改变!。这样做的原因是您丢失了上下文(DAX 中的所有查询都存在于 context 中)。解决方案是定义一个 MEASURE。一旦你这样做了,你就可以解决问题。这就是为什么你会得到垃圾结果。
和
https://www.sqlbi.com/articles/variables-in-dax/
好消息是,一旦您设法理解了这一点,您就几乎解决了 DAX 中最困难的障碍。
我简化了您的名字,并且仅使用 S&P500(第二个索引)列作为示例 - 其他人将以同样的方式工作。
创建度量:
Rebased S&P500 =
VAR
Original_Value =
CALCULATE ( SUM ( Data[SP500] ), FIRSTDATE ( ALLSELECTED ( Data[Date] ) ) )
VAR
Current_Value = SUM ( Data[SP500] )
RETURN
DIVIDE ( Current_Value, Original_Value )
结果(我使用了 Power Pivot table,但 Power BI 中的图表将以相同的方式工作):
工作原理:
- 首先,它必须是一个措施。如评论中所述,计算列本质上是静态数据,它们无法响应用户操作。
- 其次,要计算原始值,您必须知道所选日期范围内的第一个日期。这是通过使用 ALLSELECTED 来完成的,它提供了所有选定日期的列表以运行 FIRSTDATE。
- 最后,我们将当前值除以原始值。无需在此处使用 CALCULATE。