【问题标题】:Google Sheets - DATE format not working on imported Date in TEXT formatGoogle 表格 - DATE 格式不适用于以 TEXT 格式导入的日期
【发布时间】:2022-01-25 15:52:45
【问题描述】:
我是基于文本的 .csv 文件,其中包含分号分隔的数据集,其中包含如下所示的日期值
22.07.2020
22.07.2020
17.07.2020
09.07.2020
30.06.2020
当我转到 Format>number> 时,我看到 Google 表格设置了 自动。
在这种状态下,我无法对这些数据使用公式。
我转到 Format>number> 并将其设置为 date 但公式仍然看不到实际的日期值并继续显示错误
有人可以分享我如何快速激活此数组的值,以便公式对它们起作用吗?
我会非常感谢
【问题讨论】:
标签:
date
google-sheets
format
google-sheets-formula
【解决方案1】:
如果日期在 A 列中,从单元格 A1 开始,此公式将转换为 DATE 作为数字,之后您将格式应用于短日期样式。
=ARRAYFORMULA(IF(A1:A="",,DATE(RIGHT(A1:A,4),MID(A1:A,4,2),LEFT(A1:A,2))))
【解决方案2】:
希望(!)日期保留为文本,否则 Google 表格有时会检测到 MM/dd/yyyy 而不是 dd/MM/yyyy,并且您将无法在示例中区分 7 月 9 日和 9 月 7 日.
解决方案 #1
如果您的语言环境是例如 FR,那么您可以申请
=arrayformula(if(A1:A="";;value(A1:A)))
解决方案#2
你可以尝试/适应
function importCsvFromIdv1() {
var id = 'the id of the csv file';
var csv = DriveApp.getFileById(id).getBlob().getDataAsString();
var csvData = Utilities.parseCsv(csv);
csvData.forEach(function(row){
date = row[0]
row[0] = date.substring(6,10)+'-'+date.substring(3,5)+'-'+date.substring(0,2)
})
var f = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
f.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
【解决方案3】:
首先感谢那些提出修复建议的人。我不是真正的程序员,当我看到建议运行脚本来解决简单问题时,我会冒冷汗。对不起各位。
因此(非程序员)使用日期的解决方案是执行查找/替换 (CTRL + H) 并用 (/) 斜杠替换所有 (.) 点,然后确保将列格式化为日期,然后谷歌终于把它理解为一个日期。
对于会计值,我必须执行相同的查找/替换以删除数千之间的所有 ',然后谷歌醒来并将它们理解为数字。
我对 Google 的这一点印象深刻。他们变得太胖太懒了。他们需要一些竞争。