【问题标题】:How to get the day of every Monday in a month for a given date如何获取给定日期一个月中每个星期一的日期
【发布时间】:2015-05-31 02:48:36
【问题描述】:

让我从下面的例子开始:

A1 =DATE(2015, 6, 1)
A2 =A1 + 7

结果

6/8/2015 
6/15/2015
6/22/2015
6/29/2015
7/6/2015
7/13/2015
7/20/2015

效果不错,但我想获得更多格式化序列,例如:

A1 =TEXT(DAY(DATE(2015, 6, 1)), "dd")
A2 =TEXT(DAY(A1 + 7), "dd")

预期:

01 08 15 22 29 06 13 20

结果:

31 05 10 15 20 25 30 04

为什么以及如何解决它?

PS:我使用的是 Google 样式表

【问题讨论】:

  • 您在问题中添加了标签“excel”标签:您能否澄清一下 - 您在寻找 Excel 工作表解决方案吗?最好的问候,

标签: excel google-sheets excel-formula google-docs


【解决方案1】:

您遇到了一个常见的错误。您当前的 A1 公式获取 2015 年 6 月 1 日这一天。现在这是一个整数,而不是日期;特别是1。它不应该使用 dd 格式掩码。要么丢弃 DAY 函数,要么使用 00 作为格式掩码。

=TEXT(DAY(DATE(2015, 6, 1)), "00")
=TEXT(DATE(2015, 6, 1), "dd")

您的=TEXT(DAY(A1 + 7), "dd") 类似地将日期与表示当月日期的整数混淆。虽然这将在一个月内有效(由于与 1900 年 1 月相似,纯属巧合),但下个月会出现问题;例如2015 年 6 月有 30 天,1900 年 1 月有 31 天。

最好在 A1 中开始一个日期,然后根据您填写的行数展开该日期。

=TEXT(DATE(2015, 6, 1+(ROW(1:1)-1)*7), "dd")

顺便说一句,Excel 认为 01-Jun-2015 是 42,156,而不是 1。

【讨论】:

  • 多谢!你能告诉我怎么做水平填充吗?
  • =TEXT(DATE(2015, 6, 1 + (COLUMN(A1:B1) - 1) * 7), "dd") 谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-03-08
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2020-12-18
相关资源
最近更新 更多