如何解决Power BI,发布最后一个工作日和最后两个工作日的总和
我对如何计算上一个工作日的总和有疑问。
这是我的数据集:
Date Name Amount
16/09/20 A 10
17/09/20 A 10
17/09/20 B 30
18/09/20 A 50
21/09/20 A 20
21/09/20 B 60
22/09/20 B 50
在仪表板上,我有一个过滤器来选择显示日期,然后看到今天的总和。前一个工作日和倒数第二个工作日。
因此,当我将自己的日期定为2020年9月17日时,应该看到以下内容:
- D的总和(17/09/2020)-> 40
- D-1的总和(16/09/2020)-> 10
- D-2的总和(15/09/2020)->空白
当我将自己放在2020年9月18日的日期时,应该看到以下内容:
- D的总和(18/09/2020)-> 50
- D-1的总和(17/09/2020)-> 40
- D-2的总和(16/09/2020)-> 10
当我将自己放在2020年9月21日的日期时,应该看到以下内容:
- D的总和(21/09/2020)-> 80
- D-1的总和(18/09/2020)-> 50
- D-2的总和(17/09/2020)-> 40
我没有找到使用计算或求和来求和前一天的方法,而就我而言,前一天没有帮助。
预先感谢您的帮助,
解决方法
我强烈建议您在模型中添加一个日期维度。这将使基于日期的分析更加容易。
这是我的第一次尝试。我只以星期六和星期日为假期。如果您需要考虑其他假期,则需要日期维度表。另请注意,我在ALL(Data)
中使用了CALCULATE
。这将删除应用于Data
表的所有过滤器。
Output =
VAR _selectedDate =
MAX ( 'Data'[Date] )
VAR _selectedDateDay =
WEEKDAY ( _selectedDate )
VAR _selectedDateminus2 =
SWITCH (
TRUE,_selectedDateDay = 2,_selectedDate - 4,_selectedDateDay = 3,_selectedDate - 5,_selectedDate - 2
)
RETURN
CALCULATE (
SUM ( 'Data'[Amount] ),FILTER (
ALL ( 'Data' ),'Data'[Date] <= _selectedDate
&& 'Data'[Date] >= _selectedDateminus2
)
)
,
创建以下3种措施-
Type de fichier de clés : JKS
Fournisseur de fichier de clés : SUN
Votre fichier de clés d'accès contient 1 entrée
***myalias***,16 mai 2018,PrivateKeyEntry,Empreinte du certificat (SHA1) : ************************************************************
D_0 =
CALCULATE(
SUM('your_table_name'[Amount]),FILTER(
ALL('your_table_name'),your_table_name[Date] = SELECTEDVALUE(your_table_name[Date])
)
)
D_1 =
CALCULATE(
SUM('your_table_name'[Amount]),your_table_name[Date] = SELECTEDVALUE(your_table_name[Date]) - 1
)
)
当您从切片器中选择日期“ 18/09/20”时,这是输出-
,我刚找到一个解决方案,在这里发布它:
对于D:
wd = SUM(data[Amount])
对于D-1:
lwd =
var ad = DATEADD(data[Date];0;DAY)
var lwd = IF(
WEEKDAY(ad) = 1; //sunday
ad - 2;
IF(
WEEKDAY(ad) = 2; //monday
ad - 3;
ad - 1 //others
)
)
var sumLWD = CALCULATE(SUM(data[Amount]);data[Date]=lwd)
return sumLWD
对于D-2:
l2wd =
var ad = DATEADD(data[Date];0;DAY)
var lwd2 = IF(
WEEKDAY(ad) = 2; //monday
ad - 4;
IF(
WEEKDAY(ad) = 3; //tuesday
ad - 4;
ad - 2 //others
)
)
var sumLWD2 = CALCULATE(SUM(data[Amount]);data[Date]=lwd2)
return sumLWD2
感谢大家的帮助和时间。 问候
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。