如何在 Google 电子表格中使用日期添加功能?

Posted

技术标签:

【中文标题】如何在 Google 电子表格中使用日期添加功能?【英文标题】:How to utilize date add function in Google spreadsheet? 【发布时间】: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。 【参考方案1】:

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

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

    这将为您提供一个数值。

    我在文档中没有找到日期添加功能,但您可以将日期转换为内部日期数字,然后添加天数(如果您的值在单元格“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 返回文本,但在添加时可以强制转换为数字。在日期中添加数字时,统一被视为一天。在(非常宽的)范围内,月份甚至年份都会自动调整。

【讨论】:

以上是关于如何在 Google 电子表格中使用日期添加功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?

google docs电子表格导出:如何从时间、日期中删除撇号[关闭]

如何保护 Google 电子表格中的 Apps 脚本代码?

使用 Apps 脚本在带有日期的 Google 电子表格中存档

如何让Google电子表格显示所有日期为MM / DD而不是MM / D?

是否可以使用 Google 电子表格 API 在单元格中添加评论?