powerbi - FILTER DAX 函数在前一天的销售不可用的情况下缺少行
问题描述
我必须显示前一天的销售以及当前的销售。问题是没有前一天销售的那一天,该行被跳过。我正在使用以下 DAX 函数:
SumInRange =
var sel = selectedvalue('Table'[Date])
return
CALCULATE(SUMX(DISTINCT('Table'[Date]),CALCULATE(MAX('Table'[Sale]))),FILTER(all('Table'),'Table'[Date] = sel -1))
要复制场景,第一步是使用 -> 创建Dim Date表
Dim Date = GENERATESERIES(date(2019,01,01),date(2019,12,31),1)
第二步是创建DataTable ->
Table = DATATABLE("Date",DATETIME,"Flag1",STRING,"Flag2",STRING,"Sale",INTEGER,{
{"8/1/2019","True","True",200},
{"8/2/2019","False","True",80},
{"8/2/2019","False","True",80},
{"8/2/2019","False","True",80},
{"8/2/2019","False","True",80},
{"8/2/2019","False","True",80},
{"9/3/2019","False","True",60},
{"9/4/2019","False","True",10},
{"9/5/2019","False","True",100},
{"9/6/2019","False","True",30},
{"9/7/2019","False","True",60},
{"9/8/2019","False","False",150},
{"9/9/2019","False","False",80},
{"9/10/2019","False","False",90},
{"9/11/2019","False","False",30},
{"9/12/2019","False","False",20},
{"10/13/2019","False","True",50},
{"10/14/2019","False","True",60},
{"10/15/2019",BLANK(),BLANK(),BLANK()},
{"10/16/2019",BLANK(),BLANK(),BLANK()}
})
第三步 - 在日期列上创建这些表之间的关系
第 4 步 - 创建 Measure 使用 -
SumInRange =
var sel = selectedvalue('Table'[Date])
return
CALCULATE(SUMX(DISTINCT('Table'[Date]),CALCULATE(MAX('Table'[Sale]))),FILTER(all('Table'),'Table'[Date] = sel -1))
此输出作为屏幕截图附加。您会观察到没有前一天销售的日期被省略,例如 - 08/01/2019。此日期的行被跳过,因为它没有前一天的销售?如何让跳过的行再次返回上一个日期的 0 销售?
解决方案
推荐阅读
- couchbase - 将多节点 Couchbase 与 Springboot 集成
- azure - 创建 Azure Cloud Shell 存储时遇到问题
- r - 根据列中的最大值对列进行排序 - R 数据框排列
- javascript - 无法将数据从父组件传递到子组件
- regex - 处理条件多次捕获正则表达式?
- javascript - 在子进程的数据事件中使用 setTimeout 是否有理由导致任意长时间的延迟?
- ios - 生成的 IPA 太小,我无法在我的 mac 上打开它
- gradle - 如何解决 IntelliJ 中的“无法将 'String' 分配给 'Publication'”Gradle 错误?
- google-apps-script - Google Sheet 在单元格具有特定值时发送电子邮件
- javascript - SyntaxError:不能在模块外使用 import 语句:运行 Jest-expo 测试时