【问题标题】:How can I change the range of countif() inside an arrayformula()?如何更改 arrayformula() 中 countif() 的范围?
【发布时间】:2020-05-17 12:13:46
【问题描述】:

我想查找在当前行之后发生的重复项。我可以使用此公式找到在任何地方发生的重复项,但我不想将特定值的最后一次出现标记为重复项。

=arrayformula(if(row(B:B) = 1, "Duplicate", if(not(isblank(A:A)), if(countif(A:A, A:A) > 1, "Yes", "No"), "")))

如果我在查找范围内静态指定一个起始单元格,它只会在该位置之后找到重复项。但是我需要根据我所在的行来改变起点。

=arrayformula(if(row(B:B) = 1, "Duplicate", if(not(isblank(A:A)), if(countif(A5:A, A:A) > 1, "Yes", "No"), "")))

我尝试使用间接()和行(),但它似乎没有为每一行更新。

=arrayformula(if(row(B:B) = 1, "Duplicate", if(not(isblank(A:A)), if(countif(indirect("A"&row(B:B)&":A"), A:A) > 1, "Yes", "No"), "")))

【问题讨论】:

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


    【解决方案1】:

    尝试:

    ={"Duplicate"; ARRAYFORMULA(IF(INDIRECT("A"&ROW()+1&":A")<>"", 
     IF(COUNTIF(INDIRECT("A"&ROW()+1&":A"), INDIRECT("A"&ROW()+1&":A")) > 1, "Yes", "No"), ))}
    


    更新:

    ={"Duplicate"; 
     ARRAYFORMULA(IF(A2:A="",,
     IF(COUNTIFS(A2:A, A2:A, ROW(A2:A), ">="&ROW(A2:A))>1, "Yes", "No")))}
    

    【讨论】:

    • 我得到#REF!结果未自动展开,请插入更多行
    • 它停止填充整张纸但计算不正确,我正在玩它,看看我是否可以让它工作。是 +1 是因为一切都通过将标题放在数组大括号中的第一个来移动?
    • @Mike yes for +1
    • 最后三个不应该被列为重复,但前三个应该是。重复可能是错误的词,我试图排除(标记为重复)除了给定值的最新实例之外的所有内容。
    • 您能否在工作表中提供所需输出的示例?
    猜你喜欢
    • 2019-12-10
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2019-09-22
    • 2021-03-29
    • 2010-11-06
    • 2018-06-07
    • 2020-08-15
    相关资源
    最近更新 更多