1.21 PowerBI数据准备-日期表按事实表最新日期增加当前年/月等相关列

加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,提问交流,有问必答。

日期表按照当前日期动态标记了当前年、当前财年、当前季、当前月、当前周、当前天,但是实际工作中,有可能交易数据并不是随着时间及时更新到当前的年/月/日,而是有一定的滞后性,比如从外部购买的市场数据、人工按月提报的数据等都会比当前月迟到1个月或几个月。报告展示这类数据的时候,如果使用按照当前日期标记和筛选当前年/月/日,就会返回空白。那么如何让报告页面展示到交易数据的最新月份呢?

解决方案

本质上还是在日期表中新增定位列,只是这次和日期表的年/月/日对比的不是当前的年/月/日了,而是交易数据中的最大日期,把对应最大交易日期的年/月标记为当前年和当前月,并定位为0以及基于此生成年和年月的定位序号。

举例

报告要展示最新销售日期的近6个月的数据,假设现在是2023年1月,最新销售数据更新到了2022年11月,因此报告应该展示2022年6月到11月的数据。

操作步骤

STEP 1 PowerQuery获取数据后,在销售表上点击鼠标右键选择引用,生成一个新的销售表。

STEP 2 在新的销售表中,选中日期列,点击菜单栏转换下的日期,选择最新,并命名为MaxDateofFact_Sales,生成了一个随事实表变化的动态最新日期参数。

STEP 3 在日期表中添加自定义列,输入代码,生成当前年和当前月的标记列以及年和年月的定位序号列。

Year_CY_Mark_按最新销售:

if [Year]=

Date.Year(MaxDateofFact_Sales)

then "当年"

else [Year]

YearMonth_CM_Mark_按最新销售:

if [YearMonth]= Date.Year(MaxDateofFact_Sales)*100+Date.Month(MaxDateofFact_Sales)

then "当月"

else [YearMonth]

Year_Offset_按最新销售:

[Year]-Date.Year(MaxDateofFact_Sales)

MonthOrder(辅助列,用于生成YearMont_Offset):

[Month]+12*([Year]-List.Min(Source

[Year]))

YearMonth_Offset_按最新销售:

[MonthOrder] -

(Date.Month(MaxDateofFact_Sales)+12*(Date.Year(MaxDateofFact_Sales)-List.Min(Source

[Year])))

生成的标记列,如下:

把YearMonth_Offset_按最新销售字段放入视觉对象筛选器,使用高级筛选,选择大于等于-5且小于等于0,报告就会动态显示基于最新销售日期的近6个月的数据了。

版权声明:
作者:倾城
链接:https://www.techfm.club/p/197295.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>