我想创建一个DAX公式来计算客户在不同时期的增加和减少。以下是我所拥有的数据示例
Year-Quarter|Customer|Credit-Limit
2019Q2|A|50
2019Q2|B|100
2019Q2|C|100
2019Q2|D|200
2019Q2|E|1000
2019Q2|F|200
2019Q3|A|50
2019Q3|B|200
2019Q3|C|100
2019Q3|D|50
2019Q3|E|500
2019Q3|F|300我希望创建一个按年-季度汇总显示客户的数量,有增加/减少/没有他们的信用额度。请注意,这只是一个示例,实际数据大于10M行。因此,即使我可以创建另一个表,我认为从计算的角度来看,度量会更有用
所需输出:
评论如下:“有2个客户在2019Q3增加了信用额度。”
到目前为止已经完成了:
Prev Quarter Credit Limit =
VAR CurrentYearQuarter = MAX(Sheet1[Year-Quarter])
VAR Quarter_Year =
LEFT (CurrentYearQuarter, 4)
VAR Quarter_period =
RIGHT (CurrentYearQuarter, 1 )
RETURN
IF (
Quarter_period = "1",
CALCULATE (
SUM ( Sheet1[Credit Limit] ),
Sheet1[Year-Quarter]
= ( Quarter_Year - 1 )
& "Q"
& ( Quarter_period + 3 )
),
CALCULATE (
SUM ( Sheet1[Credit Limit] ),
Sheet1[Year-Quarter]
= Quarter_Year
& "Q"
& Quarter_period - 1
)
)
Inc/Dec = IF(SUM(Sheet1[Credit Limit]) - [Prev Quarter Credit Limit] > 0,"Inc",
IF(SUM(Sheet1[Credit Limit]) - [Prev Quarter Credit Limit] < 0,"Dec","None"))
Commentary = "There are " &
CALCULATE(DISTINCTCOUNT(Sheet1[Customer]),
FILTER(Sheet1, [Inc/Dec] = "Inc" && Sheet1[Year-Quarter] = "2019Q3"))当前输出:
评论:“有4个”
我不确定为什么我会得到4,而这里的数字是2。如能给予帮助或指导,我们将不胜感激。
发布于 2019-10-25 14:41:23
出于实验目的,我稍微修改了输入数据,我添加了
2018Q3 | A | 200
2018Q4 | A | 50
2019Q1 | A | 50我添加了一个季度日历(这是一个使用VALUES(Sheet1[Year-Quarter])的计算表
然后向这个新表添加更多列,使用LEFT和RIGHT提取当前年份和季度,然后计算上一季度和上一年,并合并为Prevoius- year -Quarter列:

]
使用这个Q-Calendar,我在Year-Quarter和Year-Quarter之间创建了一个Sheet1表的1:*关系,然后在上一年-季度和Year-Quarter之间创建了第二个非活动的1:*关系,如下所示:

然后,我创建了两个度量,一个用于上一季度的信用总额,另一个用于当前季度的信用:
Current-Quater CL =
var currentQ = MAX('Q-Calendar'[Year-Quarter])
var tempTable =
FILTER(
ALL('Q-Calendar');
'Q-Calendar'[Year-Quarter] = currentQ
)
return
CALCULATE(
SUM('Sheet1'[Credit-Limit ]);
tempTable
)在前一个季度的CL度量中,我使用USERELATIONSHIP来激活我从Q-Calendar添加的被动关系。
Prev-Quater CL =
var currentQ = MAX('Q-Calendar'[Year-Quarter])
var tempTable =
FILTER(
ALL('Q-Calendar');
'Q-Calendar'[Year-Quarter] = currentQ
)
return
CALCULATE(
SUM('Sheet1'[Credit-Limit ]);
tempTable;
USERELATIONSHIP('Sheet1'[Year-Quarter]; 'Q-Calendar'[Previous-Year-Quarter])
)然后像这样创建Inc/Dec度量值:
Increase/Decrease =
var temp = [Current-Quater CL]-[Prev-Quater CL]
return
SWITCH(
TRUE();
temp > 0; "Increase";
temp < 0; "Decrease";
"No change"
)并最终创建了一个新的(实际上是3个新的)评论措施,如下所示:
Commentary_2 = "There are " &
var customers = VALUES(Sheet1[Customer])
return
SUMX(
customers;
CALCULATE(
IF(
[Current-Quater CL]-[Prev-Quater CL] > 0;
1;
0
)
)
)&" customers how have increased their credit"使用Q-calendar中的年份-季度列作为切片器,我可以获得当前状态,并可以选择上一个季度来查看当时的状态:


注:我的度量中的代码可以进行优化,我只是将它们保持得如此详细,以使其更容易理解。
https://stackoverflow.com/questions/58531549
复制相似问题