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()
。但这也可能只是侥幸。