gpt4 book ai didi

excel - 如何获得当月的一周 (1 :6)

转载 作者:行者123 更新时间:2023-12-04 22:15:18 25 4
gpt4 key购买 nike

我们可以找到不同的方法来确定一个月的星期几,尽管 1:4 和/或 1:5 的页面很多,但 1:6 的方法很少。
因此,为了给您一些背景信息,我正在使用 Excel 中的数据透视表,它从 Power Query 源获取其值。
在 Power Query 中有一个函数 Date.WeekOfMonth 它接受日期并返回 1 到 6 之间的数字。
在这个定义中,周从星期日开始,到星期六结束。
因此,例如,2021 年 10 月的前两天 - 即周五和周六在 10 月的第一周,而 2021 年 10 月的第 3 天从第二周开始,然后是 2021 年 10 月的最后一天,即10 月 31 日,是第 6 周中唯一的一天。
我手头有一个自动化任务,我需要从 Power Query 生成的数据透视表中提取数据,所以我必须在 VBA 中实现一段代码,它的计算时间是相同的。
不幸的是,我找不到任何准备好的片段,所以在实现之后我认为它可能值得分享。
(任何意见和建议表示赞赏)

最佳答案

DatePart功能非常适合这个。使用 DatePart将间隔设置为“周”,您可以找到给定日期的周。然后减去该月第一天之前的周数(将第一天设置为周 = 1)。

Function WeekNumOfDate(D As Date) As Integer
WeekNumOfDate = DatePart("ww", D) - DatePart("ww", DateSerial(Year(D), Month(D), 1)) + 1
End Function
这是该函数的第二个版本,它能够设置 FirstDayOfWeek争论:
Function WeekNumOfDate(D As Date, Optional FirstDayOfWeek As VbDayOfWeek = vbSunday) As Integer
WeekNumOfDate = DatePart("ww", D, FirstDayOfWeek) - DatePart("ww", DateSerial(Year(D), Month(D), 1), FirstDayOfWeek) + 1
End Function
作为使用 FirstDayOfWeek 的示例: 与 FirstDayOfWeek设置为 vbThursday ,日期“2021 年 11 月 5 日”将返回为第 2 周,而默认情况下将计为第 1 周。2021 年 11 月 1 日至 3 日为第 1 周,然后 4 日至 10 日为第 2 周。

关于excel - 如何获得当月的一周 (1 :6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70188001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com