通过 PowerQuery 替换 3 个月以上的日期

问题描述 投票:0回答:2

我正在尝试从

[Appt Date]
列中删除超过3个月的日期,并希望它能够滚动3个月,这样我就不必不断地进入代码并更新日期。下面是我用来替换 2023 年之前的值的代码,效果非常好。

= Table.ReplaceValue(#"Capitalized Each Word", each[Appt Date], each if Date.Year(Date.From([Appt Date])) < 2023 then null else [Appt Date], Replacer.ReplaceValue, {"Appt Date"})

我在网上做了一些搜索,并尝试调整一些解决方案来满足我的要求,但没有成功。

today=DateTime.LocalNow(),
yr = Date.Year(today),
mnth = Date.Month(today),
dy = Date.Day(today),
prev= #date(yr, mnth-3,dy),

= Table.ReplaceValue(#"Capitalized Each Word", each[Appt Date], each if Date.Year(Date.From([Appt Date])) < prev then null else [Appt Date], Replacer.ReplaceValue, {"Appt Date"})

此示例不会返回任何表达式错误或任何内容,但超过 3 个月的日期仍显示在

[Appt Date]
列中。

任何帮助/指导将不胜感激。

excel replace powerquery
2个回答
0
投票

以下场景可以分两步覆盖。第一步,您需要根据下面共享的当前日期代码找出差异。 覆盖 Number.Round(Number.From((DateTime.LocalNow() - [DateStarted])/( 365.25 / 12 )) ,0 )

使用顶部代码,如果周期为 3 或大于 3 个月,您将获得每月信息,您可以将 [日期] 列用作空白,否则保持相同的值


0
投票

删除 Date.Year 函数,因为您当前正在将年份数字与实际日期进行比较。 (我有点惊讶你实际上还剩下任何数据) – 罗里 11 月 30 日 9:36

© www.soinside.com 2019 - 2024. All rights reserved.