【问题标题】:How to utilize date add function in Google spreadsheet?如何在 Google 电子表格中使用日期添加功能?
【发布时间】:2012-01-27 09:53:12
【问题描述】:

我相信我现在遇到的问题在 MS Excel 中应该会容易得多。但是,由于我的公司使用 Google 电子表格,所以我必须想办法。

基本上,我有一个单元格包含像“12/19/11”这样的日期值,而另一个单元格包含一个像“DT 30”这样的值。分配给我的任务是将值 30(days) 添加到日期,因此结果应该是“1/19/2012”。

我在 Google 电子表格中做了一些尝试,我有两个问题。第一个是如何从字符串“DT 30”中提取数值“30”,第二个问题是,Google Docs似乎没有内置日期添加功能。

有没有专家可以提供一些建议?

【问题讨论】:

  • 12/19/11 加上 30 天是 1/18/2012。

标签: google-sheets formula


【解决方案1】:
  1. 要从字符串中提取数值,您可以使用这 2 个函数(假设您的值在单元格“A1”中):

    =VALUE(REGEXEXTRACT(A1, "\d+"))

    这将为您提供一个数值。

  2. 我在文档中没有找到日期添加功能,但您可以将日期转换为内部日期数字,然后添加天数(如果您的值在单元格“A2”中):

    =DATEVALUE(A2) + 30

我希望这会有所帮助。

【讨论】:

  • 值得注意的是,单元格的格式必须是某种“日期”。如果它设置为数字,您将得不到任何有意义的信息。
【解决方案2】:

使用与 Burnash 几乎相同的方法,对于最终结果,您可以使用 ...

=regexextract(A1,"[0-9]+")+A2

其中 A1 包含带有文本和数字的字符串 A2 代表感兴趣的日期

【讨论】:

    【解决方案3】:

    直接使用EDATE(Start_date, months) 完成ADDDate 的工作。 示例:

    考虑A1 = 20/08/2012A2 = 3

    =edate(A1; A2)
    

    将计算 20/11/2012

    PS:dd/mm/yyyy 格式在我的例子中

    【讨论】:

    • edate 添加月份,而不是几天,support.google.com/drive/bin/…
    • 哎呀......真的..抱歉错误..我在某些情况下使用了这个功能,我需要添加几个月并在这里回答而不关注它......感谢澄清
    【解决方案4】:

    您可以将数字添加到带有日期的单元格中。

    所以如果 A1: 12/3/2012A2: =A1+7 则 A2 将显示 12/10/2012

    【讨论】:

    • 这只是给出一个错误:“函数 ADD 参数 1 需要数字值。但 '05.09.2019' 是文本,不能强制转换为数字。”我尝试将其格式化为 Date 和 DateTime。
    【解决方案5】:

    您可以使用 DATE(Year;Month;Day) 对日期进行操作:

    示例:

    =DATE(2013;3;8 + 30) give the result...  7 april 2013 !
    =DATE(2013;3 + 15; 8) give the result... 8 june 2014 !
    

    这很令人惊讶,但它确实有效......

    【讨论】:

    • 不可靠的解决方案。要添加 X 个月至今,请使用 =EDATE(cell; months),例如=EDATE(A1; 2).
    • 为什么说它是一个不可靠的解决方案? support.google.com/docs/answer/3092969 的解释:DATE 将默默地重新计算超出有效月份或日期范围的数字日期。例如,指定非法月份 13 的 DATE(1969,13,1) 将创建 1970 年 1 月 1 日的日期。同样,指定不存在的 1 月 32 日的 DATE(1969,1,32) 将创建 1969 年 2 月 1 日的日期。
    【解决方案6】:

    我喜欢保持简单。如果 A1 保存日期,B1 保存要添加的月数,那么

    =date(year(A1),month(A1)+B1,day(A1))
    

    将计算所需的结果。同样的方式可以使用几天或几年

    【讨论】:

    • 聪明的方法。这是我见过的唯一允许您将月份添加到日期的解决方案
    • 这不是 OP 所要求的。 OP 显然需要 30 天,而不是 1 个月,它可以是 28 到 31 天之间的任何时间。然后,这个解决方案是不可靠的,并且在 12 月的一个月内都不起作用。要添加 X 个月至今,请使用 =EDATE(cell; months),例如=EDATE(A1; 2).
    • @Nowaker 你的 EDATE 答案是我想要的,即使 OP 没有。谢谢!
    【解决方案7】:

    与@kidbrax 的回答一样,您可以使用+ 添加天数。为了让它工作,我必须明确地将我的单元格数据声明为日期:

    A1: =DATE(2014, 03, 28)
    
    A2: =A1+1
    

    A2 的价值现在是 2014 年 3 月 29 日

    【讨论】:

      【解决方案8】:

      简单的添加和转换有什么问题?

      如果 A1 是日期字段,并且 A2 保存要添加的天数: =TO_DATE((DATEVALUE(A1)+A2)

      【讨论】:

        【解决方案9】:

        =TO_DATE(TO_PURE_NUMBER(Insert Date cell, i.e. AM4)+[数字加多少天,例如3天])

        在实践中看起来像:

        =TO_DATE(TO_PURE_NUMBER(AM4)+3)
        

        本质上,您是将日期转换为纯数字并再次转换回日期。

        【讨论】:

          【解决方案10】:

          在新的电子表格(美国语言环境)中,A1 中包含 12/19/11,B1 中包含 DT 30,然后:

          =A1+right(B1,2)
          

          说C1返回1/18/12

          作为字符串函数,RIGHT 返回文本,但在添加时可以强制转换为数字。在日期中添加数字时,统一被视为一天。在(非常宽的)范围内,月份甚至年份都会自动调整。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-10
            • 1970-01-01
            • 2014-12-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多