セット内の結果に一致する一意のセルの数を数える

セット内の結果に一致する一意のセルの数を数える

Excel に次のようなコード化されたデータの列が 1 つあります。

a
b
ab
bc
ad
b
ac

「a」を含むすべてのセルのインスタンスを で見つけることができることはわかっています=COUNTIF(A1:A7,"*a*")。その場合、4 になります。また、「b」も数えることができ、=COUNTIF(A1:A7,"*b*")結果は 4 になります。

しかし、私が必要としているのは「a」または「b」を含むセルを数えることですが、二重カウントしない両方を含むセル。=COUNTIF(A1:A7,"*a*")+COUNTIF(A1:A7,"*b*")= 8 ですが、「ab」を二重にカウントせずに 7 をカウントする OR 条件が必要です。

これが正規表現であれば、次のようにすることができます=COUNTIF(A1:A7,"[ab]")が、できません...


更新: 前述の通りコメントこれは単純化された例です。データセットには AM があり、2 つ、3 つ、または 7 つの異なる値の組み合わせをカウントする必要がある場合があるため、拡張可能なソリューションが必要です。

答え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最後には、少なくとも 1 つの に一致するセルがFINDカウントされることを指定します。SUMPRODUCTは、すべてを合計して最終的な答えを生成します。

大文字と小文字を区別しない一致の場合は、FIND関数を に置き換えることができますSEARCH

関連情報