Arrayformula 不适用于 Google 非美国地区的电子表格设置

Arrayformula not working for Google Spreadsheet settings having locale other than US

我创建了一个 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 似乎可以工作!但是,它不适用于上述区域。

如果有人有其他解决方案,请在此处分享!

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

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

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


巴西使用十进制逗号,因此 Google Sheet 个参数用分号分隔。

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

美国使用小数点),所以Google Sheet之间要用逗号隔开

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

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


巴西


美国