If statement Arrayformula不适用于语言环境不是我们的Google电子表格设置

If statement Arrayformula不适用于语言环境不是我们的Google电子表格设置,if-statement,google-sheets,formula,locale,array-formulas,If Statement,Google Sheets,Formula,Locale,Array Formulas,我创建了一个谷歌电子表格,其中地区设置为巴西,时区设置为(GMT-03:00)圣保罗,有一个日期列,日期以地区格式显示,如2021年1月1日,2021年2月23日等 我已在此日期列旁边创建了一个Month列,并尝试使用Arrayformula填充月份: =ARRAYFORMULA(IF(LEN(F2:F),MONTH(F2:F),)) 如果我在Arrayformula函数中使用if或LEN,它似乎不起作用,但是,如果我只是这样做,它似乎起作用: =ARRAYFORMULA(MONTH(F2:F

我创建了一个谷歌电子表格,其中
地区设置为
巴西
时区设置为
(GMT-03:00)圣保罗
,有一个
日期列
,日期以地区格式显示,如
2021年1月1日,2021年2月23日

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

=ARRAYFORMULA(IF(LEN(F2:F),MONTH(F2:F),))
如果我在Arrayformula函数中使用
if
LEN
,它似乎不起作用,但是,如果我只是这样做,它似乎起作用:

=ARRAYFORMULA(MONTH(F2:F))
这显然会填充包括空白日期单元格在内的所有行,并添加更多行

我注意到的另一件事是,如果我将电子表格设置更改为
地区:美国
时区:东部时间(GMT-04:00)
,则带有
if
LEN
函数的数组公式似乎可以工作!但是,它不适用于上述区域


如果有人有其他解决方案,请在这里分享

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

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

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


巴西使用一个小数点逗号,因此Google工作表参数之间用分号分隔

  • =数组公式(如果(LEN(F2:F),MONTH(F2:F),)
    失败
  • =数组公式(如果(LEN(F2:F);MONTH(F2:F);)
    成功

美国使用小数点),所以谷歌表格应该用逗号分隔

  • =数组公式(如果(长(F2:F),月(F2:F),)
    成功
  • =数组公式(如果(LEN(F2:F),MONTH(F2:F),)
    失败
下面的快照取自两个电子表格(#1 locale=Brazil,#2 locale=USA),并演示了逗号或分号作为参数分隔符的应用


巴西


美国