如何在 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/2012
和A2 = 3
=edate(A1; A2)
将计算 20/11/2012
PS:dd/mm/yyyy
格式在我的例子中
【讨论】:
edate 添加月份,而不是几天,support.google.com/drive/bin/… 哎呀......真的..抱歉错误..我在某些情况下使用了这个功能,我需要添加几个月并在这里回答而不关注它......感谢澄清【参考方案4】:您可以将数字添加到带有日期的单元格中。
所以如果 A1: 12/3/2012
和 A2: =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电子表格导出:如何从时间、日期中删除撇号[关闭]
使用 Apps 脚本在带有日期的 Google 电子表格中存档