导语:PQ中最关键也是最难的知识点,就是关于each _和类(x)变量的理解和应用,没有之一。而这,需要经过大量案例反复练习和体会,本文案例相对简单且典型,非常适合练手。
【文末留言赠书】
问题很简单:对有标注是否上班的日期表新建一列,提取假期(是否上班为0)后的第一个工作日(是否上班为1)。
比如,1月1日和1月2日均为假期,它后面的第一个工作日为1月3日,所以1月1日和1月2日后面都填1月3日。
在Power Query中解决这个问题也不复杂。将数据加载到PQ后,添加自定义列:
这个公式的核心思路是:对整个表(这里基于上一步骤“更改的类型”的结果)筛选(Table.SelectRows)出“日期”(更改的类型步骤里的日期)大于“当前行日期”,且“是否上班”为1的内容并取“日期”列结果,然后通过List.First函数取其中第1个日期。
if [是否上班]= 0
then List.First(
Table.SelectRows(
更改的类型,
(x)=>x[日期]>=[日期] and x[是否上班]=1
)[日期]
)
else null
其中最难的点在于:存在函数嵌套的情况下,如何区分不同层级里名称相同的列的内容?
关于这个问题,前期的文章《为啥只有each,没有_?还有冲突? | PQ重难点突破》里有详细论述,建议不太熟练的朋友,多仔细看并动手练习,再加上本文的案例进行巩固。
函数的嵌套以及each _、(x)=>的用法,是Power Query里最难也是最重要的知识点,没有之一!
本文分享自 Excel到PowerBI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!