Microstrategy:如何用AddDays函数处理数据集日期列计算上周日期?
解决AddDays函数逐行计算上周日期的问题
嘿,我明白你的困扰了——你想给数据集中每一行的delivery_date都减去7天得到上周的对应日期,但发现AddDays好像只能用度量当参数?其实问题出在你用错了计算方式,不是度量,而是要创建计算列来实现逐行处理!
具体操作步骤很简单(以Power BI为例,其他DAX环境比如SSAS Tabular逻辑一致):
- 切换到数据视图,找到你的数据集表
- 点击顶部「建模」选项卡的「新建列」
- 输入下面的DAX表达式,把
你的表名替换成你实际的表名称:上周日期 = ADDDAYS('你的表名'[delivery_date], -7)
这样一来,每一行的delivery_date都会被单独传入AddDays函数,自动减去7天生成对应的上周日期。比如当delivery_date是3/21/2018时,这个计算列就会返回3/14/2018,完全符合你的需求。
为什么之前会觉得AddDays只接受度量?大概率是你在度量里直接引用列的时候,DAX会自动对列做聚合(比如取最大值或者求和),导致不是逐行计算。而计算列本身就是针对每行数据执行的,所以可以直接把日期列作为AddDays的第一个参数来用。
内容的提问来源于stack exchange,提问作者Abhilash
相关产品推荐
相关产品推荐

