![見出し画像](https://assets.st-note.com/production/uploads/images/136857200/rectangle_large_type_2_7539fe34d7a1ae4d5f7ada91781b3101.jpeg?width=1200)
COUNTA・UNIQUE・FILTER関数を用いて条件に合ったデータ数を数える[Googleスプレッドシート]
複数の関数を用いて、条件に合ったデータ数を数えます。
以下のダミーデータを用います。
![](https://assets.st-note.com/img/1712737204260-Q3W3ze0ioL.png)
受注案件のデータベースです。
案件名には通し番号が付与されます。
1つの課のみで担当する案件もあれば、複数の課で担当する案件もあります。
このデータから、「複数の課で担当している案件の数」を数えたいとします。
以下の関数式で実現できました。
=COUNTA(UNIQUE(FILTER(B4:B,E4:E<>100)))
![](https://assets.st-note.com/img/1712737406559-w0ZlcHFOUP.png?width=1200)
今回のお題は自分では解決できず、所属しているコミュニティのSlackにて質問したところ、上記の関数式を教えて頂きました。ありがとうございます!
今後の習得のために記事化して理解を深めようと思います。
今回の関数式では3つの関数が用いられています。
ひとつずつ分解して理解していきます。
【1】FILTER関数
まず、FILTER関数で「列E「案分率」が100ではない案件名」を抽出します。
【1】
=FILTER(B4:B,E4:E<>100)
関数がどう作用しているかを可視化したく、セルG5に上記関数式を入力したのが以下のスクショです。
G5以降に抽出された案件名が返されました。
ただし元データの構造の通り、案件名は重複しています。
![](https://assets.st-note.com/img/1712741145067-xlCB3drcsY.png?width=1200)
【2】UNIQUE関数
次にUNIQUE関数を用いて、一意の値のみ抽出します。
UNIQUE関数は指定した範囲の中で一意の値の一覧を返す関数です。
【2】
=UNIQUE(FILTER(B4:B,E4:E<>100))
![](https://assets.st-note.com/img/1712741907449-YN586qHRW7.png?width=1200)
【3】COUNTA関数
最後にCOUNTA関数でくくると、案件数をカウントすることができます。
【3】
=COUNTA(UNIQUE(FILTER(B4:B,E4:E<>100)))
![](https://assets.st-note.com/img/1712742459995-KVfAUBbJni.png?width=1200)
[参考メモ]COUNT系の関数の違い
COUNT系の関数は「COUNT」「COUNTA」「COUNTBLANK」と幾つもあり、さらに「COUNTIF」「COUNTIFS」なども含めると混乱しがちです。
ここでは「COUNT」「COUNTA」「COUNTBLANK」の違いを簡単にメモします。
「COUNT」=数値が入力されているセルの個数を数える
「COUNTA」=文字列含めすべての値が入力されているセルの個数を数える
「COUNTBLANK」=空白セルの個数を数える
※なお「COUNTA」では「スペース」もカウントする仕様になっていますのでその点留意しましょう。
(追記)
本記事公開後、Xでさらに便利な関数を教えて頂いたので記事にしました。併せてどうぞ。
この記事が気に入ったらサポートをしてみませんか?