Arrayformula 不适用于具有美国以外区域设置的 Google 电子表格设置

问题描述 投票:0回答:2

我创建了一个 Google 电子表格,其中

Locale
设置为
Brazil
Timezone
设置为
(GMT-03:00) Sau Paulo
,其中
Date column
的日期采用区域格式,如
01-jan.-2021, 23-fev.-2021
等。

我在此日期列旁边创建了一个

Month
列,并尝试使用 Arrayformula 填充月份:

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

如果我在 Arrayformula 函数中使用

IF
LEN
似乎不起作用,但是,如果我简单地这样做,似乎可以工作:

=ARRAYFORMULA(MONTH(F2:F))

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

我注意到的另一件事是,如果我将电子表格设置更改为

Locale : United States
Timezone : Eastern Time (GMT-04:00)
,则具有
IF
LEN
函数的数组公式似乎都可以工作!但是,它不适用于上述区域。

如果有人有替代解决方案使其发挥作用,请在此处分享!

if-statement google-sheets formula locale array-formulas
2个回答
1
投票

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

  • 如果区域设置是使用小数点 (

    .

    ) 作为小数点分隔符的国家/地区,则函数参数通常使用逗号 (
    ,
    ) 分隔。

  • 如果区域设置是使用小数逗号 (

    ,

    ) 作为小数点分隔符的国家/地区,则函数参数通常使用分号 (
    ;
    ) 分隔。


巴西使用小数逗号,因此 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 区域设置=巴西,#2 区域设置=美国),并演示了逗号或分号作为参数分隔符的应用。


巴西


美国


0
投票
还有一种情况,使用大括号 {...} 来处理数组

需要同时使用两者;或者,英文。分号用于创建一维数组,逗号用于创建更多列的数组。

在这种情况下,您需要

使用反斜杠而不是其他语言环境中的逗号。 (在我的示例中使用斯洛伐克语言环境)

    一维数组 US
  • ={A1:A10; C1:C10}
    
    
  • 多维阵列 US
  • ={A1:A10, C1:C10}
    
    
  • 一维数组 SK
  • ={A1:A10, C1:C10}
    
    
  • 多维数组SK
  • ={A1:A10\ C1:C10}
    
    
© www.soinside.com 2019 - 2024. All rights reserved.