【问题标题】:Detecting Duplicates in a Google Sheet with ARRAYFORMULA使用 ARRAYFORMULA 检测 Google 表格中的重复项
【发布时间】:2020-08-14 04:43:33
【问题描述】:

我正在尝试构建一个如下所示的 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

到目前为止,我尝试在ARRAYFORMULA 中使用VLOOKUPINDIRECT 来完成此操作。如果我可以让它成功返回一个值,那么我可以围绕它构建IF 以返回我想要的字符串。但是,这不起作用。

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

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

我真的很感谢您对我所缺少的内容的一些见解。我在想ARRAYFORMULA 错了吗? INDIRECT 不是像我想的那样工作吗?

【问题讨论】:

    标签: arrays google-sheets google-sheets-formula array-formulas counting


    【解决方案1】:

    尝试:

    =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"), ))
    

    【讨论】:

    • 这真的很酷!你能解释一下它是如何工作的,以及你为什么选择这个方向而不是使用INDIRECT
    • 第一个 countifs 处理“以前的”重复项,第二个 countif 检查任何重复项。然后将这两个县相乘(因为数组公式中不支持 AND 公式)。不确定间接背后的想法是什么
    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 2021-04-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    相关资源
    最近更新 更多