メインコンテンツへスキップ
見出し画像

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でさらに便利な関数を教えて頂いたので記事にしました。併せてどうぞ。

     
     
    72年東京生まれ。主に備忘録としてnoteを使用。2026年6月30日技術評論社より「Googleスプレッドシート完全攻略 最高効率の武器になる」刊行。