計算集合中匹配結果的唯一單元格

計算集合中匹配結果的唯一單元格

我在 Excel 中有一列編碼數據,如下所示:

a
b
ab
bc
ad
b
ac

我知道我可以找到包含“a”的所有單元格的實例=COUNTIF(A1:A7,"*a*")。這將給我 4 =COUNTIF(A1:A7,"*b*")

但是,我需要的是計算包含“a”或“b”的單元格,但是不會重複計算含有兩者的細胞。=COUNTIF(A1:A7,"*a*")+COUNTIF(A1:A7,"*b*")= 8,但我想要一個 OR 條件,透過不重複計算「ab」來計算 7。

如果這是正規表達式,我可以做類似的事情=COUNTIF(A1:A7,"[ab]"),但我不能...


更新:如中所述一則評論,這是一個簡化的範例。我的資料集中有 AM,可能需要計算兩個、三個甚至七個不同值的組合,因此我需要一個可擴展的解決方案。

答案1

該解決方案應該作為可擴展的實現,可以輕鬆擴展為其他字串。

=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))>0))

新增另一個字串的範例:

=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))+ISNUMBER(FIND("c",A1:A7))>0))

FIND其工作原理是在範圍內的每個單元格上運行函數,並使用它ISNUMBER來確定是否找到匹配項。將每個單元格的結果相加,然後>0末尾的 指定應對至少與其中一個FINDs 匹配的任何單元格進行計數。將SUMPRODUCT所有內容相加得出最終答案。

對於不區分大小寫的匹配,您可以將該FIND函數替換為SEARCH

相關內容