【スプレッドシート】FILTER関数で案件管理を劇的に効率化!ステータス別リストを自動で作成する方法

マスターシートから自分の担当案件を探し出すのが大変…

FILTER関数を試してみたけど、一つのステータスしか抽出できない…

「自分の担当案件を、さらにステータス別に分けたい…」でもFILTER関数が上手く機能しないと、イライラしますよね。

実は、FILTER関数を少しだけ応用することで、その両方の悩みを一気に解決できるんです。

この記事で紹介する方法を使えば、たった一つの数式で、

「アポ」「検討中」「承諾」

といった複数のステータスを、見出し付きの一覧リストとして自動で作成できます

具体的なイメージはこちらです。

マスターシートの状態
個別シートにステータスごとに区切ったリストを表示

一度設定すれば、あとは元データ(マスターシート)を更新するだけ。

もう手作業で案件を探したり、複数のFILTER関数を管理したりする必要はありません

さっそくその方法を見ていきましょう!

自動化出来る作業をまだ手作業でこなしていませんか?

私はGoogleが提供するプログラミングツールである、GAS(Google App Script)と生成AIを活用してお客様の業務を自動化や効率化するサービスを提供しています

もし今の業務の中で

  • 毎回の手作業に手間を感じる
  • もっと業務を効率化したい
  • ルーティン業務を自動化したい

このような不満を抱えてらっしゃるなら是非一度ご連絡ください。

「こんなことできる?」くらい軽めのご相談でも大歓迎です!

目次

【コピペでOK】FILTER関数を使ったステータス別リストの作り方

早速FILTER関数を使ってステータス別リストを作る数式をご紹介します。

(※こちらをコピペして貼り付けてください)

={
{"--- アポ ---","",""};
IFERROR(FILTER('マスターシート'!A:C, 'マスターシート'!B:B="MASA", 'マスターシート'!C:C="アポ"),{"","",""});
{"--- 検討中 ---","",""};
IFERROR(FILTER('マスターシート'!A:C, 'マスターシート'!B:B="MASA", 'マスターシート'!C:C="検討中"), {"","",""});
{"--- 承諾 ---","",""};
IFERROR(FILTER('マスターシート'!A:C, 'マスターシート'!B:B="MASA", 'マスターシート'!C:C="承諾"), {"","",""})
}

こちらの数式をご自身のシートに合わせて変更してください。

変更ポイント
  • 「マスターシート」の部分を自分が抽出したいシートの名前に変更
  • B:BC:Cの部分を「担当者」や「ステータス」がある列番号に変更
  • 抽出したい担当者名とステータスの状態を変更

少し見づらいと思うので、ポイントをまとめます

  • 全体を { } で囲んで、複数のリストを縦に連結
  • FILTER 関数で「担当者」と「ステータス」のW条件抽出
  • IFERROR 関数でエラーを隠して、見た目をキレイに

それぞれ詳しく解説していきます

全体を {} で囲んで、複数のリストを縦に連結

これが今回の一番のキモです。

数式全体を {} (波括弧)で囲むことで、見出しや複数の FILTER 関数の結果を、上から下へと連結し、一つの大きなリストとして表示しています。

間にセミコロン ; を挟むことで、「ここから改行して次のリストを連結して」という意味になります。

この仕組みのおかげで、たった一つのセルにこの数式を入力するだけで、見出しを含んだ全てのステータスのリストが自動で完成します。

修正したい時も、このセルを直すだけなので管理がとても簡単になります。

FILTER 関数で「担当者」と「ステータス」のW条件抽出

FILTER 関数は、条件に一致するデータだけを元のシートから抽出してくる関数です。

今回は、

  1. 'マスターシート'!B:B="MASA"(担当者が”MASA”である)
  2. 'マスターシート'!C:C="アポ"(ステータスが”アポ”である)

のように条件を2つ指定することで、「担当者がMASAかつ、ステータスがアポ」のデータだけを絞り込む、という高度な抽出を実現しています。

IFERROR関数でエラーを隠して、見た目をキレイに

もしマスターシートの中に「アポ」の案件が1件もなかった場合、#N/A というエラーを返してしまいます。

そこでIFERROR関数を使ってFILTER関数全体を囲み、「もしエラーが出たら、代わりに空行を表示してね」という指示を出しています。

そのために、IFERROR関数の第二引数に{"","",""}を置きます。
(※""の数は抽出したい列の数に合わせる必要があります。)

これにより、該当データがないステータスがあってもエラー表示されず、常にスッキリとしたリストを保つことができます。

見出し部分の {"--- アポ ---","",""} にある空欄 "" の数は、FILTER関数で抽出する列の数(今回はA:Cの3列なので、見出しと合わせて合計3つ)に揃えるのがルールです。
ここがズレるとエラーになるので注意しましょう!

よくあるエラーや不具合の対処法(Q&Aコーナー)

最後に、この数式を使う上でつまずきがちなポイントを、Q&A形式で先回りして解説します。

ここを読めば、エラーが出ても慌てず、すぐに対処できるようになります

「#VALUE!」というエラーが出る…

これが一番多いエラーです。

多くの場合、{}の中で列の数(主に""の数)が揃ってない可能性が高いです。

抽出したい列が3列なら{}の中は3つ。5つなら5つ。と""の数を調整してください。

「#ERROR!」というエラーが出る…

数式の最後の部分に;が入ってませんか?

IFERROR関数を繋げる際は、IFERROR関数の最後に;を入れる必要があります。

しかし、繋げるものがない(つまり最後のIFERROR関数)後に;が入っていると#ERROR!が出ます。

抽出した日付や時間が変な数字で表示される

スプレッドシートが日付を管理している管理用の数字(シリアル値)がそのまま表示されている可能性があります。

数字の表示がおかしな列を選択して「表示形式」→「数字」をクリックします。

その中から表示したいの数字が
日付なら「日付」
時間なら「時間」
を選択してください。

まとめ

今回は、FILTER関数と配列{}を組み合わせて、ステータス別の案件リストを自動で作成する方法を解説しました。

ポイントのおさらい
  • FILTER関数で、複数条件に合うデータを抽出する
  • {};で、見出しや複数のリストを縦に連結する
  • IFERROR関数で、データがない場合のエラーを防ぐ
  • 各パーツの列の数をそろえるのが絶対のルール

このFILTER関数の使い方の良い所は、元データの増減によって行数が変わることです。

もしFILTER関数を別々のセルに置いてしまうと、上のリストが伸びてきたときに下のリストと衝突し、#REF!エラーが発生してしまいます。

今回のように{}の中に全てのFILTER関数をまとめてしまうことで、その衝突を気にする必要が一切なくなります。

案件管理をスッキリ自動化したい人にはオススメのテクニックですので、ぜひ試してみてください!

私はGoogleが提供するプログラミングツールである、GAS(Google App Script)と生成AIを活用してお客様の業務を自動化や効率化するサービスを提供しています

もし今の業務の中で

  • 毎回の手作業に手間を感じる
  • もっと業務を効率化したい
  • ルーティン業務を自動化したい

このような不満を抱えてらっしゃるなら是非一度ご連絡ください。

「こんなことできる?」くらい軽めのご相談でも大歓迎です!

  • URLをコピーしました!

MASAのアバター MASA 生成AI×GASを活用した"業務効率化コンサルタント"

MASAです。
GASや生成AIを活用して業務の効率化を支援しております。
スプレッドシートを中心にGoogle Workspaceのお役立ち情報も合わせて発信中♪( ´▽`)

目次