首页 > 解决方案 > 使用 ARRAYFORMULA 检测 Google 表格中的重复项

问题描述

我正在尝试构建一个如下所示的 Google 表格:

+-------------------+-----------+
|Email              |Duplicate? |
+-------------------+-----------+
|banana@example.com |No         |
|orange@example.com |No         |
|peach@example.com  |No         |
|banana@example.com |Yes        |
|banana@example.com |Yes        |
|apple@example.com  |No         |
|peach@example.com  |Yes        |
+-------------------+-----------+

在我的示例中,第一列是用一些电子邮件地址手动填写的。第二列应该是一个公式,如果该值先前在该列中Yes重复,则返回该值,如果没有重复。No

到目前为止,我一直在尝试使用VLOOKUPand INDIRECTinside ofARRAYFORMULA来实现这一点。如果我可以让它成功返回一个值,那么我可以IF围绕它构建它以返回我想要的字符串。但是,这不起作用。

=ARRAYFORMULA(VLOOKUP(B2:B, INDIRECT("B1:B" & ROW(B2:B) - 1), 1, FALSE))

我也尝试过使用COUNTIF,但这似乎也不适合ARRAYFORMULA

我真的很感激这里对我所缺少的东西的一些见解。我想ARRAYFORMULA错了吗?INDIRECT不像我想的那样工作?

标签: arraysgoogle-sheetsgoogle-sheets-formulaarray-formulascounting

解决方案


尝试:

=ARRAYFORMULA(IF(A1:A<>"", IF(
 (COUNTIFS(A1:A, A1:A, ROW(A1:A), "<="&ROW(A1:A))>1)*
 (COUNTIF( A1:A, A1:A)>1), "yes", "no"), ))

在此处输入图像描述


推荐阅读