使用Google表格自动将日期文本转换为正确的日期格式

时间:2018-02-17 09:49:44

标签: date google-sheets formula

我试图从"文本转换日期"纠正格式。它已记录到Google Spreadsheets,我无法使用它来绘制图表。

这是文字格式:February 3, 2018, at 11:21 AM

时间不相关,我只需要转换日期:DD/MM/YYYY.

我发现了一个类似的问题,其中加里的学生回答了一个看起来像这个不同格式的公式:

=DATEVALUE(SUBSTITUTE(A1,MID(A1,FIND(" ",A1)-2,2),""))

link to that question

我如何使用上述公式(或类似的东西)以便将文本转换为日期?

提前致谢。

3 个答案:

答案 0 :(得分:2)

字符串的, at部分使Google表格无法将其识别为日期值。只需使用替换函数将其删除并包含日期值函数,如下所示:=DATEVALUE(SUBSTITUTE(A1,", at",""))

要格式化为DD/MM/YYYY,只需转到自定义格式并将其设置为如下所示: enter image description here

enter image description here

答案 1 :(得分:2)

另一种解决方案是创建自定义函数。

  1. 在菜单中打开toolsscript editor,以在新标签页中打开脚本编辑器
  2. 点击左上角的Untitled project并重命名
  3. 在顶部菜单中打开ResourcesLibraries
  4. 粘贴库密钥MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48,然后单击AddMoment库添加到脚本中
  5. 选择Moment版本9,然后单击Save
  6. 粘贴功能
function parseDate(dateString, format){
  return Moment.moment(dateString, format).toDate()
}

Code.gs并保存项目Ctrl+S

现在,您可以在工作表的任何单元格中使用函数了:

=parseDate(B2,"MMM D, YYYY, at HH:mm A")

有关格式的更多详细信息: https://momentjs.com/docs/#/parsing/string-formats/

您还可以创建功能以自定义格式显示日期:

function formatDate(date, format){
  return Moment.moment(date).format(format)
}

像这样在单元格中使用

=formatDate(B5,"DD/MM/YYYY")

=formatDate(parseDate(B2,"MMM D, YYYY, at HH:mm A"),"DD/MM/YYYY")

答案 2 :(得分:0)

=DATEVALUE(JOIN("/", LEFT(D5,2), {MID(D5,4,2), RIGHT(D5,4)}))

其中D5包含例如: 2019年6月25日

哪个脚本转换为datevalue: 43641

日期格式为“ dd.MM.YYYY”,转换为“ dd / MM / YYYY”,然后转换为日期值。

Google表格的文档有帮助:

DATEVALUEJOINLEFTMIDRIGHT

Datevalue对于按日期正确组织数据行很有用。

相关问题