見出し画像

COUNTA・UNIQUE・FILTER関数を用いて条件に合ったデータ数を数える[Googleスプレッドシート]

複数の関数を用いて、条件に合ったデータ数を数えます。

以下のダミーデータを用います。

受注案件のデータベースです。
案件名には通し番号が付与されます。
1つの課のみで担当する案件もあれば、複数の課で担当する案件もあります。
このデータから、「複数の課で担当している案件の数」を数えたいとします。

以下の関数式で実現できました。

=COUNTA(UNIQUE(FILTER(B4:B,E4:E<>100)))

今回のお題は自分では解決できず、所属しているコミュニティのSlackにて質問したところ、上記の関数式を教えて頂きました。ありがとうございます!

今後の習得のために記事化して理解を深めようと思います。


今回の関数式では3つの関数が用いられています。
ひとつずつ分解して理解していきます。

【1】FILTER関数

まず、FILTER関数で「列E「案分率」が100ではない案件名」を抽出します。

【1】
=FILTER(B4:B,E4:E<>100)

関数がどう作用しているかを可視化したく、セルG5に上記関数式を入力したのが以下のスクショです。
G5以降に抽出された案件名が返されました。
ただし元データの構造の通り、案件名は重複しています。

【2】UNIQUE関数

次にUNIQUE関数を用いて、一意の値のみ抽出します。
UNIQUE関数は指定した範囲の中で一意の値の一覧を返す関数です。

【2】
=UNIQUE(FILTER(B4:B,E4:E<>100))

【3】COUNTA関数

最後にCOUNTA関数でくくると、案件数をカウントすることができます。

【3】
=COUNTA(UNIQUE(FILTER(B4:B,E4:E<>100)))


[参考メモ]COUNT系の関数の違い

COUNT系の関数は「COUNT」「COUNTA」「COUNTBLANK」と幾つもあり、さらに「COUNTIF」「COUNTIFS」なども含めると混乱しがちです。

ここでは「COUNT」「COUNTA」「COUNTBLANK」の違いを簡単にメモします。

「COUNT」=数値が入力されているセルの個数を数える
「COUNTA」=文字列含めすべての値が入力されているセルの個数を数える
「COUNTBLANK」=空白セルの個数を数える

※なお「COUNTA」では「スペース」もカウントする仕様になっていますのでその点留意しましょう。


(追記)
本記事公開後、Xでさらに便利な関数を教えて頂いたので記事にしました。併せてどうぞ。

この記事が気に入ったらサポートをしてみませんか?