[Power Query]:自动提取自定义一周的数据

本文介绍了解决PowerQuery默认的西方周报周期问题的方法,提供了两种调整为中国式周一至周日报表周期的解决方案,包括使用Excel辅助表和直接利用PQ公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:power query中的Date.IsInCurrentWeek提取的是本周日-本周六(西方人的一周),但是中国人的一周往往是本周一-本周日;另外有时候做报表的时候并不是自然周,有可能是自定义的,而pq中缺少相关自定义的选项。
解决思路:有两个解决办法,第一个是选择先在excel中新建一个辅助表,用excel公式获得起始日和起始月,结束日和结束月。再在pq的高级编辑器中,以日期辅助表[起始月]{0}来代替pq公式中的数字;第二个办法是通过PQ的一些好用公式,直接做出相关参数。
两种方法都可以,方法二更简单一些,不用构建辅助表了

方法一:
1、Excel辅助表:
在这里插入图片描述
从左至右的公式是:
1)=TODAY()
2)=WEEKDAY(TODAY())
3)=IF(B2=2,7,IF(B2=3,1,IF(B2=4,2,IF(B2=5,3,IF(B2=6,4,IF(B2=7,5,6))))))
4)=TODAY()-C2
5)=MONTH([@统计起始日期])
6)=DAY([@统计起始日期])
7)=TODAY()-1
8)=MONTH([@统计结束日期])
9)=DAY([@统计结束日期])

2、把这张表上传到PQ,并改名为“日期辅助表”

3、在需要提取日期的表中,“更改的类型”这一列后新增四列(也可以不加,不过这样计算速度会快一点):
1)startmonth = 日期辅助表[起始月]{0},
2)startday = 日期辅助表[起始日]{0},
3)endmonth = 日期辅助表[结束月]{0},
4)endday = 日期辅助表[结束日]{0},
注:这里需确认格式都是数值,否则会报错!

4、在日期提取中,有个公式为:
筛选的行 = Table.SelectRows(更改的类型, each [统计日期] >= #datetime(2019, 2,11, 0, 0, 0) and [统计日期] <= #datetime(2019, 2, 14, 0, 0, 0)),
改成
筛选的行 = Table.SelectRows(更改的类型, each [统计日期] >= #datetime(2019, startmonth, startday, 0, 0, 0) and [统计日期] <= #datetime(2019, endmonth, endday, 0, 0, 0)),
如果上述辅助行不加的话,就改成
筛选的行 = Table.SelectRows(更改的类型, each [统计日期] >= #datetime(2019, 日期辅助表[起始月]{0}, 日期辅助表[起始日]{0}, 0, 0, 0) and [统计日期] <= #datetime(2019, 日期辅助表[结束月]{0}, 日期辅助表[结束日]{0}, 0, 0, 0)),
在这里插入图片描述
方法二:(把下述代码放入高级编辑器筛选清单步骤的上面,然后和方法一最后一步一样)
weekday = Date.DayOfWeek(DateTime.LocalNow()),
天数 = if weekday = 1 then 7 else if weekday = 0 then 6 else weekday - 1,
startofdate = Date.From(Number.RoundDown(Number.From(DateTime.LocalNow()) - 天数)),
endofdate = Date.From(Number.RoundDown(Number.From(DateTime.LocalNow()) - 1)),
startday = Date.Day(startofdate),
startmonth = Date.Month(startofdate),
endday = Date.Day(endofdate),
endmonth = Date.Month(endofdate),

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值