Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 公式的ARRAYFORMULA版本生成的结果与常规公式不同_Google Sheets - Fatal编程技术网

Google sheets 公式的ARRAYFORMULA版本生成的结果与常规公式不同

Google sheets 公式的ARRAYFORMULA版本生成的结果与常规公式不同,google-sheets,Google Sheets,我在下面的电子表格列E中包含了一个指向谷歌表单的链接,其中的公式如下: =选择(iError(匹配($A2,{“已取消”,“已关闭”,“待审批”,“已开票”},0),5),“已关闭”,“已提取”,“已输入”,“已提取”,如果($B2=“是”,如果($C2=“-None-”,“处理”,“准备就绪”),“已批准”) 评估一些订单统计数据,结果与预期一致D列具有相同公式的阵列公式版本: =array\u约束(arrayformula(选择(错误(匹配($A$2:$A,{“已取消”、“已关闭”、“待审批

我在下面的电子表格
列E
中包含了一个指向谷歌表单的链接,其中的公式如下:

=选择(iError(匹配($A2,{“已取消”,“已关闭”,“待审批”,“已开票”},0),5),“已关闭”,“已提取”,“已输入”,“已提取”,如果($B2=“是”,如果($C2=“-None-”,“处理”,“准备就绪”),“已批准”)

评估一些订单统计数据,结果与预期一致<代码>D列具有相同公式的阵列公式版本:

=array\u约束(arrayformula(选择(错误(匹配($A$2:$A,{“已取消”、“已关闭”、“待审批”、“已开票”},0),5),“已关闭”、“已提取”、“已输入”、“已提取”、如果($B$2:$B=”是“、如果($C$2:$C=“-None-”、“正在处理”、“准备就绪”)、“已批准”))))、counta($A$2:$A),1)

arrayformula
版本中,IF语句始终返回
'false'
,并计算为
“Ready”

我想使用arrayformula使结果动态化,因为订单数据经常更新,行数也会更改

虽然我怀疑有一个bug,但直到最近,这个公式才正常运行,有人能帮助实现预期的效果吗

参考文献


这看起来确实有点奇怪。首先尝试处理“待定履行”案例:

=arrayformula( 
  if( 
    A2:A = "Pending Fulfillment", 
    if( 
      B2:B = "Yes", 
      if(regexmatch(C2:C, "None"), "Processing", "Ready"), 
      "Approved" 
    ), 
    choose( 
      iferror( 
        match( 
          A2:A, 
          { "Cancelled", "Closed", "Pending Approval", "Billed" }, 
          0 
        ), 
        5 
      ), 
      "Closed", "Picked Up", "Entered", "Picked Up", iferror(1/0) 
    ) 
  ) 
)

为了简单和易于维护,您可能希望使用帮助表中的查找表使用
vlookup()
执行这类操作。

在数组公式中,文本值
-NONE-
包含多余的空格-换行符和两个空格。它将与C列中的值不匹配。fixed(试图使其更易于阅读),相同的结果。Thank@DoubleOne,首先处理“Pending Fulfillment”案例不会产生预期的结果。订单是否重要?我有其他使用ARRAYFORMULA的公式工作正常,最近开始产生意外结果,我认为使用ARRAYFORMULA可能存在一些问题。我怀疑这个问题与Google最近对函数的更改有关,如
switch()
isbetween()
unique()
。但这也可能只是侥幸。