Excel 转换if&;vlookup组合公式到阵列公式-谷歌表格

Excel 转换if&;vlookup组合公式到阵列公式-谷歌表格,excel,google-sheets,Excel,Google Sheets,我有一个公式在谷歌表单中工作: =if(B3="",0,IF(ISERROR(VLOOKUP(E3,E4:E,1,FALSE)),1,0)) 逻辑相当直截了当: 如果B3不为空,并且范围E4:E中没有E3的副本,则写入1,否则写入0 我尝试将其转换为ARRAYFORMULA,因为当行数增加时(通过表单提交),它应应用于E中的所有列,方法如下: =ARRAYFORMULA(if(B3="",0,IF(ISERROR(VLOOKUP(E3:E,E4:E,1,FALSE)),1,0))) 但是,它

我有一个公式在谷歌表单中工作:

=if(B3="",0,IF(ISERROR(VLOOKUP(E3,E4:E,1,FALSE)),1,0))
逻辑相当直截了当: 如果B3不为空,并且范围E4:E中没有E3的副本,则写入1,否则写入0

我尝试将其转换为ARRAYFORMULA,因为当行数增加时(通过表单提交),它应应用于E中的所有列,方法如下:

=ARRAYFORMULA(if(B3="",0,IF(ISERROR(VLOOKUP(E3:E,E4:E,1,FALSE)),1,0)))
但是,它对E的所有列都写入了0

这里的原因是,VLOOKUP应该在E列范围内查找,不包括当前行。我不知道如何才能做到这一点

这是你的电话号码


有人能帮我修改一下表格吗?谢谢。

您不能偏移
数组公式
中使用的范围,因此无法将原始公式转换为
数组公式
,并保留结果。但您可以使用以下解决方法:

=ArrayFormula(IFERROR(--(VLOOKUP)(偏移量(E3,,,,COUNTA(A3:A)),查询({行(间接(“A1:A”)和COUNTA(A3:A))),偏移量(E3,,,,COUNTA(A3:A)),“选择Col2,最大(Col1),其中Col2''按Col2标签Col2'',最大(Col1')”分组),2,0)=行(间接(“A1:A”&COUNTA(A3:A)),0))

我在这个公式中使用了
row
函数,当某个值出现时,将其与最大行进行比较


哇!这是意料之中的事。然而,我不理解所使用的逻辑。。非常感谢Max,你让我开心了:D