
GoogleスプレッドシートのCOUNTIF関数で、特定の範囲から同じ文字の個数を数える方法や、離れた複数範囲から重複値の個数を数える方法をご紹介します。COUNTUNIQUE関数を使って、重複を除いた値の個数を数える方法についても解説しているので、ぜひ参考にしてみてください。
重複をカウントする方法
データ内の重複をカウントする主要な方法を解説します。基本的な単一列でのカウントから、複数列の組み合わせ、離れた範囲まで、状況に応じたカウント方法を分かりやすくご紹介します。
単一列で重複を数える

特定の列に同じ値がいくつあるかを知りたい場合、COUNTIF関数を使います。
COUNTIF関数は、指定した範囲の中で、条件と一致するセルの個数を返します。
例えば、A2:A6に値が入力されたリストで、それぞれの値の重複数を数えたい場合、数式は =COUNTIF($A$2:$A$6,A2)
となります。
このとき範囲($A$2:$A$6
)を絶対参照に、条件(A2
)は相対参照にするのがポイントです。これにより、常に一定の範囲からそれぞれの行の値を検索します。
COUNTIF関数の引数:(条件範囲, 条件)
複数列の組み合わせで重複を数える

複数列の組み合わせで重複するデータの行数を数えたい場合、ARRAYFORMULA関数とCOUNTIF関数を組み合わせます。
ポイントは、範囲同士 ($A$2:$A$6&$B$2:$B$6
) と 条件同士 (A2&B2
) を &
で結合することです。また、範囲は絶対参照 ($
) にすることで、数式をコピーしても常に同じ範囲を参照します。
例えば、A2:A6に産地、B2:B6セルに商品名が入力されたリストで、2列とも重複する行を数えたい場合、数式は=ArrayFormula(COUNTIF($A$2:$A$6&$B$2:$B$6,A2&B2))
となります。
COUNTIF関数の引数:(条件範囲, 条件)
離れた範囲の重複を数える

離れた複数列の重複をカウントする場合、まずUNIQUE関数で一意の検索値を抽出します。
UNIQUE関数に複数列を指定するためには、範囲をセミコロン(;
)で区切りながら、中括弧内に入力してください。複数行の場合、カンマ(,
)で区切ります。
例:=UNIQUE({A2:A6;C2:C6})
UNIQUE関数の引数:(範囲, [行で処理], [回数指定])

取得した一意のデータを検索値として、COUNTIF関数の条件に指定します。重複を検索する複数の範囲は、先ほどと同様に配列を使って縦に並べます。
例:=COUNTIF({$A$2:$A$6;$C$2:$C$6},E2)

オートフィルでコピーすると、複数列から値の重複数を取得できました。
重複をカウントしない方法
スプレッドシートで、重複しているデータを除いて、異なる値がいくつあるかを知りたい場合に便利なのが、COUNTUNIQUE関数 です。
単一列で重複を除いた個数を数える

重複を除いたデータをカウントするには、COUNTUNIQUE関数を使います。
COUNTUNIQUE関数は、指定したセル範囲や複数の値の中で、重複している値は一つとして数え、最終的にユニークな値の総数を返してくれます。
例えば、A2:A6に商品名が入力されたリストで、重複を除いた商品の種類 を数えたい場合、数式は =COUNTUNIQUE(A2:A6)
となります。
COUNTUNIQUE関数の引数:(値1, [値2, …])
複数列の組み合わせで重複しない個数を数える

複数の列の組み合わせで重複しないデータの行数を数えたい場合、ARRAYFORMULA関数とCOUNTUNIQUE関数を組み合わせます。
COUNTUNIQUE関数に指定する範囲を&
で結合し、Ctrl
+ Shift
+ Enter
で、先頭にARRAYFORMULA関数を追加します。
例えば、A2:A6に産地、B2:B6に商品名が入力されたリストで、2列とも重複するセルを除いた行 を数えたい場合、数式は =ARRAYFORMULA(COUNTUNIQUE(A2:A6&B2:B6))
となります。
COUNTUNIQUE関数の引数:(値1, [値2, …])