【问题标题】:Arrayformula not working for Google Spreadsheet settings having locale other than USArrayformula 不适用于具有美国以外区域设置的 Google 电子表格设置
【发布时间】:2021-06-01 09:08:08
【问题描述】:

我创建了一个 Google 电子表格,其中 Locale 设置为 BrazilTimezone 设置为 (GMT-03:00) Sau Paulo,其中 Date column 的日期采用区域格式,例如 01-jan.-2021, 23-fev.-2021 等。

我在此日期列旁边创建了一个 Month 列,并尝试使用 Arrayformula 填充月份:

=ARRAYFORMULA(IF(LEN(F2:F),MONTH(F2:F),))

如果我在 Arrayformula 函数中使用 IFLEN 似乎不起作用,但是,如果我只是这样做,似乎可以工作:

=ARRAYFORMULA(MONTH(F2:F))

这显然会填充所有行,包括空白日期单元格并添加更多行。

我注意到的另一件事是,如果我将电子表格设置更改为 Locale : United StatesTimezone : Eastern Time (GMT-04:00),则具有 IFLEN 函数的 Arrayformula 似乎可以工作!但是,它不适用于上述地区。

如果有人有其他解决方案可以让它发挥作用,请在此处分享!

【问题讨论】:

    标签: if-statement google-sheets formula locale array-formulas


    【解决方案1】:

    在 Google 电子表格中,任何给定函数中的参数都由小数点或小数点逗号分隔。适用的分隔符取决于电子表格区域设置(文件、电子表格设置、区域设置)和该国家/地区使用的 decimal separator

    • 如果区域设置是使用小数点 (.) 作为小数点分隔符的国家/地区,则函数参数通常使用逗号 (,) 分隔。

    • 如果语言环境是使用小数点逗号 (,) 作为小数分隔符的国家/地区,则函数参数通常使用分号 (;) 分隔。


    巴西使用小数逗号,因此 Google 表格参数用分号分隔。

    • =ARRAYFORMULA(IF(LEN(F2:F),MONTH(F2:F),))失败
    • =ARRAYFORMULA(IF(LEN(F2:F);MONTH(F2:F);)): 成功

    美国使用小数点),因此 Google 表格应以逗号分隔。

    • =ARRAYFORMULA(IF(LEN(F2:F),MONTH(F2:F),))成功
    • =ARRAYFORMULA(IF(LEN(F2:F),MONTH(F2:F),)): 失败

    下面的快照取自两个电子表格(#1 locale=Brazil,#2 Locale=USA),展示了逗号或分号作为参数分隔符的应用。


    巴西


    美国

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多