【问题标题】: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);
    }
    

    【讨论】:

    • 我试过了,但它不适合我
    • 你的语言环境是什么?
    • 通过脚本尝试解决方案#2
    【解决方案3】:

    首先感谢那些提出修复建议的人。我不是真正的程序员,当我看到建议运行脚本来解决简单问题时,我会冒冷汗。对不起各位。

    因此(非程序员)使用日期的解决方案是执行查找/替换 (CTRL + H) 并用 (/) 斜杠替换所有 (.) 点,然后确保将列格式化为日期,然后谷歌终于把它理解为一个日期。

    对于会计值,我必须执行相同的查找/替换以删除数千之间的所有 ',然后谷歌醒来并将它们理解为数字。

    我对 Google 的这一点印象深刻。他们变得太胖太懒了。他们需要一些竞争。

    【讨论】:

      猜你喜欢
      • 2023-01-03
      • 2019-06-12
      • 2014-10-08
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多