くまおやぢの雑記帳

人生は、やろうと思った瞬間がスタートライン。Excel・Access・ガジェット・スマホ関係のネタを綴っています。あなたの「できる」を応援します。

Excel動的配列関数の活用術|FILTER・UNIQUEで自動抽出&重複排除

 

 

 

01.動的配列関数とは?その基本と魅力を解説

動的配列とは何か?

Excelの「動的配列関数」は、従来の関数と違い、ひとつの数式から複数のセルに自動的に結果を出力する新しい仕組みです。たとえば、ある条件に合うデータをリスト化したいとき、従来はフィルター機能や複雑な数式、手動のコピペ作業が必要でした。しかし、動的配列を使えば、ひとつの数式で複数の結果を自動表示してくれるため、非常に効率的です。

旧来のExcelとの違い

これまでのExcelでは、「配列数式」を使うにはCtrl+Shift+Enterで確定する必要がありました。しかし、動的配列関数ではその必要がありません。しかも、結果がスピル(自動展開)していくため、1つのセルに入力するだけで複数のセルに結果が広がります。これにより、関数の管理がしやすくなり、ミスも減少します。

なぜ業務効率化につながるのか?

動的配列関数は、入力作業の省力化だけでなく、常に最新のデータを自動で反映させることができます。たとえば、データベースに新しい情報が追加されたときでも、動的配列を使っていれば手動で再入力や更新をする必要がありません。こうした“自動で変化に対応する力”が、業務のスピードと正確性を大きく引き上げてくれます。

02.FILTER関数の基礎をマスターしよう

FILTER関数の基本構文と引数解説

FILTER関数は、特定の条件に合致するデータだけを抽出できる関数です。基本構文は以下の通りです。

=FILTER(配列, 条件, [一致しない場合の値])

例えば、「A2:A10の中からB列が『営業部』のデータだけを抽出したい」という場合は、次のように記述します。

=FILTER(A2:A10, B2:B10="営業部", "該当なし")

この数式は、B列が「営業部」の行にあるA列の値を自動的に抽出し、条件に一致しない場合は「該当なし」と表示します。

単純な条件での抽出例(例:部署名が「営業部」)

以下のような社員リストがあるとします。

名前 部署
田中 営業部
鈴木 開発部
佐藤 営業部

この場合、「=FILTER(A2:A4, B2:B4="営業部")」と記述すると、「田中」「佐藤」が表示されます。非常にシンプルで直感的です。

複数条件での抽出方法

FILTER関数では複数条件を「*」や「+」でつなげることで対応可能です。たとえば、「営業部」かつ「在籍中」の社員を抽出したい場合は次のようになります。

=FILTER(A2:A10, (B2:B10="営業部")*(C2:C10="在籍中"), "該当なし")

複数条件を使うことで、より精緻なデータ抽出が可能になります。

条件に合致しない場合のエラー処理

条件に合うデータが存在しない場合、通常はエラー(#CALC!)になります。これを避けるために、FILTER関数では第3引数を使ってエラー時の表示内容を設定できます。これにより、ユーザーにやさしい画面設計が可能です。

=FILTER(A2:A10, B2:B10="人事部", "該当者なし")

03.UNIQUE関数で重複を一発排除

UNIQUE関数の基本構文と使い方

UNIQUE関数は、指定した範囲から重複を除いて一意の値のみを抽出する関数です。基本構文は以下の通りです。

=UNIQUE(配列, [縦横], [1回だけ])

たとえば、顧客リスト(A2:A10)に同じ名前が重複している場合、次のように記述すると、重複のないリストを自動作成できます。

=UNIQUE(A2:A10)

行と列の違いに注意

デフォルトでは縦方向のリストを処理しますが、横方向の配列(行)を扱う場合は、第二引数に「TRUE」を指定します。

=UNIQUE(A1:J1, TRUE)

このようにすることで、横並びのデータにも対応可能です。

複数列の重複排除のテクニック

複数の列を組み合わせた重複排除も可能です。たとえば「部署と役職」の組み合わせで一意なデータを抽出したい場合は以下のように記述します。

=UNIQUE(A2:B10)

この数式では、A列(部署)とB列(役職)のセットが重複しないように一覧が作成されます。

SORT関数と組み合わせて使う方法

UNIQUE関数で抽出した値を並び替えるには、SORT関数と組み合わせて使用します。例:

=SORT(UNIQUE(A2:A100))

これにより、重複のない値が昇順で整列されたリストになります。視認性が高く、分析資料としても使いやすくなります。

 

 

 

04.FILTER × UNIQUEでデータ整理を完全自動化

条件に合うデータを自動で整理

FILTER関数とUNIQUE関数を組み合わせることで、「条件に合った重複のない一覧表」を簡単に作成できます。たとえば、「営業部に所属する社員名の一覧を重複なしで表示したい」という場合は、次のように記述します。

=UNIQUE(FILTER(A2:A100, B2:B100="営業部"))

これにより、営業部に所属している社員の名前だけが、かつ一意な形で抽出されます。人事資料やチーム別集計などで非常に便利です。

日付やカテゴリごとに一覧を作成

たとえば「2024年4月」に登録されたユーザーを一覧表示したいとき、次のようにFILTERで期間を絞り、その結果をUNIQUEで整理します。

=UNIQUE(FILTER(B2:B100, (A2:A100>=DATE(2024,4,1))*(A2:A100<=DATE(2024,4,30))))

こうすることで、期間内のカテゴリ別の重複を省いた一覧が得られ、月次報告書などにも即活用できます。

連動ドロップダウンリストの作成(名前定義と連携)

UNIQUEで得られたリストを名前定義し、データの入力規則と連携すれば、「動的に変化する連動ドロップダウン」が作成できます。

  1. UNIQUE関数でカテゴリ一覧を作成
  2. その範囲を名前定義する(例:「商品カテゴリ一覧」)
  3. 入力規則→リスト→=商品カテゴリ一覧

データが増えてもリストが自動更新されるため、フォームや管理表の品質が向上します。

よくあるトラブルとその対処法

動的配列関数を使っていて以下のような問題が起きることがあります:

  • 「#SPILL!」エラー:出力先セルがふさがっている場合に発生。セルを空けることで解決。
  • 意図しない空白が含まれる:元データの整備が必要。TRIM関数などで対処。
  • 結合セルとの相性が悪い:結合セルの解除を推奨。

これらを理解しておけば、スムーズに活用できます。

05.実務ですぐに使える活用例5選

例①売上データから特定商品を抽出

売上明細の中から「商品A」の取引だけを抽出したい場合は、以下のようにFILTER関数を使います。

=FILTER(A2:D100, C2:C100="商品A", "該当なし")

これにより、商品Aに関する全データ(例:日付、顧客名、金額)が自動で表示され、分析やレポート作成が効率化します。

例②社員名簿から部署ごとの一覧を作成

UNIQUE関数で部署名の一覧を抽出し、FILTER関数と組み合わせると、部署ごとの社員リストが作成できます。

=UNIQUE(B2:B100) → 部署一覧  
=FILTER(A2:A100, B2:B100=G2) → G2が「営業部」など

これにより、メニュー選択によって部署別に社員が切り替わるシートが構築可能です。

例③イベント参加者名簿から重複を排除

イベントで同じ人が複数回申し込んでいる場合、UNIQUE関数を使えば1回だけの表示にできます。

=UNIQUE(A2:A200)

これにより、実際の参加人数を正確に把握でき、資料印刷や備品準備の見積もり精度も向上します。

例④プロジェクト別の担当者一覧を動的に作成

プロジェクトごとにチーム編成が異なる場合、FILTER関数とUNIQUE関数で担当者リストを動的に作成できます。

=UNIQUE(FILTER(B2:B100, A2:A100=G2))

G2のプロジェクト名を変更するだけで、B列からそのプロジェクトの担当者が抽出されます。

例⑤顧客データからエリア別のリストを抽出

営業管理などで「エリア別顧客一覧」を作りたい場合も、FILTERとUNIQUEの出番です。

=UNIQUE(FILTER(B2:B500, C2:C500="関東"))

これにより、関東エリアの顧客だけを重複なしで抽出でき、ターゲティングやエリア別戦略に活用できます。

06.FILTER・UNIQUE関数をもっと使いこなすコツ

組み合わせてできる「半自動分析ツール」

FILTERとUNIQUEを組み合わせることで、「条件変更で内容が即変化する」動的な分析ツールが簡単に作れます。たとえば、部署別の社員一覧や商品カテゴリ別の売上抽出など、手作業ゼロでレポートが完成します。ピボットテーブルのように設定が複雑でないため、初級者にも扱いやすいのが魅力です。

名前定義で関数をスマートに管理

頻繁に参照する範囲や数式は、名前定義を使って管理するのがおすすめです。たとえば、売上表の範囲を「売上データ」と定義し、数式を次のように記述します。

=FILTER(売上データ, 売上データ[商品]="商品A")

これにより、可読性と再利用性が向上し、メンテナンスもしやすくなります。

関数エラーを予防するための工夫

動的配列関数は非常に強力ですが、元データの整備が不十分だと意図しないエラーが発生します。次のような点に注意しましょう:

  • 空白セルが含まれると、思わぬ空行が表示されることがある
  • 「#SPILL!」エラーは出力先がふさがっている可能性が高い
  • 条件範囲と抽出範囲のサイズが異なるとエラーになる

こうしたエラーは、数式を使ってチェックしたり、元データの整形処理を加えたりすることで予防できます。

よくある質問とその答え

Q. FILTERやUNIQUEを使うにはどのExcelバージョンが必要?
A. Microsoft 365やExcel 2021以降で利用可能です。古いバージョンでは使用できません。
Q. フィルタ結果に空白行があるのはなぜ?
A. 元データに空白が含まれている可能性があります。IF関数やISBLANKで条件を加えると解決できます。
Q. FILTER関数で複数条件の「または(OR)」は使える?
A. はい。「+」記号を使うことで複数条件のORを表現できます。

 

 

 

07.まとめ|FILTERとUNIQUEで手作業にサヨナラ

今すぐ試してみよう

ここまで解説してきたFILTER関数とUNIQUE関数は、どちらも非常に直感的かつ強力なExcelツールです。複雑な関数やVBAに頼らずとも、日常業務の多くが自動化できます。まずは、あなたが普段使っている一覧表や名簿、集計表などにFILTERやUNIQUEを組み込んでみてください。少しの工夫で、大きな時短効果が得られるはずです。

これからのExcelは「自動化」が標準

かつては手作業でフィルタや並べ替えを行うのが当たり前でしたが、今やExcelの世界も「自動化」がスタンダードになりつつあります。動的配列関数はその象徴的な機能です。FILTERとUNIQUEを使いこなせば、データ整理にかける時間は激減し、よりクリエイティブな業務に集中できるようになります。

Excelの新しい力を味方につけて、日々の作業をもっとスマートにしていきましょう。