如何将日、周、年合并为一个日期

如何将日、周、年合并为一个日期

我有一个包含三个日期列的大型数据集:年(例如 2020 年)、月(例如 8 表示 8 月)和周(1、2、3 或 4)。我很难找到一种方法将它们合并为 Excel 中的一个日期。我只能找到合并其他日期形式(例如年、月、日)的选项。

答案1

如果您需要对这些日期进行排序并比较大于/小于/等于,则可以采用 Mobus 的建议。用零填充月份和星期,并连接年份、月份和星期:

=CONCATENATE(TEXT(year,"0000"), TEXT(month,"00"), TEXT(week,"00"))

会将 20200801 作为示例中日期的文本值。您可以以有意义的方式对它们进行排序,并比较它们是否相等、小于或大于。如果您需要数值,您可以将整个内容包装在 Excel 的value函数中以将文本重新转换为数字。

不能对这些数字进行算术运算。例如,您不能减去 30 来得到代表 30 天前的日期的值。

您说过,第 1 周从每月的第一天开始,第 4 周在最后一天结束,因此 8 月份的周数为 7.75 天。更可能的是,您会有三个 8 天周和一个 7 天周。您可以确定第一天。如果您假设第 4 周为 7 天,则可以计算出第 4 周的开始时间。然后,您可以进行一些复杂的插值,以尝试找出第二周和第三周的日期(您可以在非闰年的 2 月准确地找到它们),但任何算术的精度都会在 7 天左右。所以,我希望您不需要进行算术。如果您需要,请询问,我会查看。

答案2

要以 Excel 日期序列号格式构造日期,请使用例如

=DATE(2022, 8, 1)

这将返回 2022/08/01(取决于您的默认日期格式)。如果将格式更改为“长日期”,您将得到“2022 年 8 月 1 日,星期一”。如果将其简单地更改为数字格式,您将得到 44774(即自 1900 年 1 月 0 日以来的天数)。

要获取单个日期,您需要将周数转换为天数。最简单的方法是减去 1 并乘以 7,因此第 1 周始终指 1 日,第 2 周指 8 日,第 3 周指 15 日,第 4 周指 22 日。这也意味着第 4 周的长度在 7 到 10 天之间。

=DATE(2022, 8, (A1-1)*7 + 1)

使用日期序列号格式意味着您可以将数学公式应用于日期(例如,减去两个日期以获得天数差,或跳过一年=EDATE(A4, 12),或提取星期几=WEEKDAY(A4)

另外,如果您只需要单个列中的所有值,只需将数据视为文本并将其与&符号运算符连接起来,例如

="year " & A3 & "/month " & A2 & "/week " & A1

例如它将返回“2022 年/第 8 个月/第 1 周”。

相关内容