如何将Arrayformula与在Google表格中使用动态范围的匹配功能一起使用?

时间:2017-07-27 13:22:14

标签: google-sheets array-formulas

col A中的

我有一个电子邮件地址列表 在col B中我想要捕获重复项,因此如果在B中获得触发器之前出现A中的电子邮件地址。 我正在使用这个效果很好的公式: =if(isna(match(a3,$A$2:A2,0)),"New","Duplicate")

请注意,当我拖动此公式时,$A$2会保持此范围的增长(例如,对于单元格B51,范围将来自$A$2:A50

我的问题是,由于列A会自动更新(例如添加了新的电子邮件地址),我希望列B也会自动更新。我尝试使用Arrayformula但无法搞清楚:( 我试过两个: =arrayformula(if(isna(match(A3:A,$A$2:A2,0)),"New","Duplicate"))=arrayformula(if(isna(match(A3:A,$A$2:A2:A,0)),"New","Duplicate"))  但他们不起作用。

这是一个带有示例的电子表格,我的(失败)尝试解决它 https://docs.google.com/spreadsheets/d/1N3pFPnT452FmWa9w8EkYpIq-ZnivjoCzt5ORrNEKgLQ/edit#gid=0

3 个答案:

答案 0 :(得分:2)

你可以使用Match来查看当前电子邮件地址的第一个匹配项是否在数组的当前行之前

=arrayformula(if(match(A2:index(A2:A,COUNTA(A2:A)),A2:index(A2:A,COUNTA(A2:A)),0)<row(A2:index(A2:A,COUNTA(A2:A)))-1,"Duplicate","New"))

enter image description here

答案 1 :(得分:2)

请尝试:

=ArrayFormula(IFERROR(if(VLOOKUP(A2:A,{A2:A,ROW(A2:A)},2,)=ROW(A2:A), "New", "Duplicate")))

如果匹配row =当前行→“新建”,否则→“复制”。

我使用vlookup,因为它可能与ArrayFormula

一起使用

答案 2 :(得分:0)

您还可以执行一个查看当前行上方所有内容的countif:

=IF(countif($A$1:A2,A2)>1,"DUPLICATE","NEW")

enter image description here