我是DAX新手,有一个关于过滤措施的问题。正如您在附件中所看到的,我希望仅过滤2018年的volume CY (当前年份)和volume LY这两个度量。
Volume LY Volume CY
2016 65.024.635
2017 65.024.635 63.602.450
2018 63.602.450 21.597.407我想将过滤与一个指示器(Counter)链接起来。此计数器的值范围为0-3。每一年都有学期,例如本年度有学期0和1,2017 -2和3,2016 -4和5。在这种情况下,我想为计数器选择1,它应该过滤2018年的semester <= 1:
Volume LY Volume CY
2018 63.602.450 21.597.407但是如果我用以下命令过滤度量volume CY:
FILTER(ALLSELECTED(Table);Table[Semester]<=MAX('Table2'[Counter]));然后,测量Volume LY会自动过滤semester <= 1,并且不会显示LY的值。我的问题是:我如何使用过滤函数来获取本年度这两个指标的值?
测量当前年度的数量:
Volume_CY:=CALCULATE(
[Volume];
'Scenario'[Scenario1]=1;
FILTER(Table;Table[Semester]<=MAX('Table2'[Counter])))测量音量LY:
Volume LY:= CALCULATE(
[Volume_CY];
FILTER(ALLSELECTED(Table);Table[Semester]<=MAX('Table2'[Counter]));
FILTER(ALL(Table[Year]))这是计数器1和场景1的这两个测量的结果:正如你所看到的,它没有显示LY值,它应该是63.602.450。
Scenario 1
Counter 1
Volume LY Volume CY
2018 21.597.407
Total 21.597.407现在我得到了这样的结果:
Volume CY Volume LY
20151 77.222.12 77.222.12
20152 88.868.719 88.868.719
20161 87.987.22 87.987.22
20162 92.906.793 92.906.793
20171 101.102.12 101.102.12
20172 105.029.725 105.029.725这就是我所期待的:
Volume CY Volume LY
20151 77.222.12
20152 88.868.719 49.123.12
20161 87.987.22 77.222.12
20162 92.906.793 88.868.719
20171 101.102.12 87.987.22
20172 105.029.725 92.906.793发布于 2017-04-12 14:53:23
编辑:
给定以下源数据:
year, Volume CY
20151, 77222.12
20152, 88868.719
20161, 87987.22
20162, 92906.793
20171, 101102.12
20172, 105029.725使用以下计算列即可获得预期结果:
Volume LY = CALCULATE(SUM(Table[Volume CY]),
ALL(Table1),
Table[year] = EARLIER(Table[year])-10)这会导致:
year, Volume CY, Volume LY
20151, 77222.12,
20152, 88868.719,
20161, 87987.22, 77222.12
20162, 92906.793, 88868.719
20171, 101102.12, 87987.22
20172, 105029.725, 92906.793它尊重"year“列上的过滤器。
(旧答案如下)
累计和:
year semester volume
2016 1 123
2017 3 1345
2018 5 3465
2016 2 3465
2017 4 3465
2018 6 634计算出的列:
VCY = CALCULATE(SUM(Table1[volume]),
ALL(Table1),
Table1[semester] <= EARLIER(Table1[semester]))
VLY = CALCULATE(SUM(Table1[volume]),
ALL(Table1),
Table1[semester] <= EARLIER(Table1[semester]) - 2)结果如下:
year, semester, volume, VCY, VLY
2016, 1, 123, 123,
2016, 2, 3465, 3588,
2017, 3, 1345, 4933, 123
2017, 4, 3465, 8398, 3588
2018, 5, 3465, 11863, 4933
2018, 6, 634, 12497, 8398每年滚动总和:
VCY =
VAR RowYear = Table1[year]
RETURN CALCULATE(SUM(Table1[volume]),
ALL(Table1),
table1[year] = RowYear,
Table1[semester] <= EARLIER(Table1[semester]))
VLY =
VAR RowYear = Table1[year]-1
RETURN
CALCULATE(SUM(Table1[volume]),
ALL(Table1),
table1[year] = RowYear,
Table1[semester] <= EARLIER(Table1[semester])-2)结果如下:
year, semester, volume, VCY, VLY
2016, 1, 123, 123,
2016, 2, 3465, 3588,
2017, 3, 1345, 1345, 123
2017, 4, 3465, 4810, 3588
2018, 5, 3465, 3465, 1345
2018, 6, 634, 4099, 4810发布于 2017-04-18 16:42:31
这就是结果:
Volume CY Volume LY
20151 77.222.12 77.222.12
20152 88.868.719 88.868.719
20161 87.987.22 87.987.22
20162 92.906.793 92.906.793
20171 101.102.12 101.102.12
20172 105.029.725 105.029.725这就是我所期待的:
Volume CY Volume LY
20151 77.222.12
20152 88.868.719 49.123.12
20161 87.987.22 77.222.12
20162 92.906.793 88.868.719
20171 101.102.12 87.987.22
20172 105.029.725 92.906.793如果我过滤一个特定的年份/半年,例如20162,它应该显示如下:
Volume CY Volume LY
20162 92.906.793 88.868.719这就是我要说的:`FILTER(ALL(Table);Table(Year)=MAX(Table(Year)-10)) --> 缺少CY卷的总计!
Volume CY Volume LY
20152 88.868.719 49.123.12
20162 92.906.793 88.868.719
20172 105.029.725 92.906.793
Grand Total 186.687.824https://stackoverflow.com/questions/43341689
复制相似问题