エクセルでデータを扱っていると、「特定の条件に一致するデータだけを抽出したい」「複数の条件を満たす行だけを取り出したい」「一致したデータを別シートに転記したい」といった場面に遭遇することはありませんか?
この記事では【Excel】エクセルで値が一致したら抽出(複数条件・別シートに転記・二つの項目など)方法について解説していきます。
ポイントは
・IF関数で一致したデータを隣のセルに抽出
・フィルター機能で簡単に一致データを抽出
・FILTER関数で複数条件に一致する行を自動抽出
です。
それでは詳しく見ていきましょう。
エクセルで値が一致したら抽出する方法1【IF関数で条件に合うデータを取り出す】
エクセルで特定の値と一致するデータを隣のセルに表示する最もシンプルな方法が、IF関数を使うことです。
IF関数で条件を判定し、一致した場合にそのデータを表示することで、条件に合うデータだけを抽出できます。
例えば、以下のようなデータがあるとします。

このデータから「野菜」カテゴリの商品名だけを抽出したい場合、この方法を使えば簡単に実現できるでしょう。
解決方法
具体的な手順を見ていきましょう。
まず、抽出結果を表示したいセル(例としてD2)に以下の数式を入力します。
=IF(B2=”野菜”,A2,””)

この数式は、B2セルが「野菜」と一致していればA2セル(商品名)を表示し、一致していなければ空白を表示します。
IF関数の構文は「=IF(条件,真の場合,偽の場合)」となっており、条件に一致したデータだけが表示されるわけです。

数式を下方向にコピーすれば、「野菜」カテゴリの商品だけが抽出されます。
結果として「アボカド」「パクチー」だけが表示され、それ以外の行は空白になります。
価格も一緒に抽出したい場合は、E2セルに以下の数式を入力します。
=IF(B2=”野菜”,C2,””)
これで条件に一致する行の価格も表示されるでしょう。
【操作のポイント:IF関数で条件を判定し、一致した場合に表示したいセルを指定することで、条件に合うデータだけを抽出できます】
複数条件で抽出する場合
二つの条件が両方とも一致する場合に抽出したい場合は、AND関数を組み合わせます。
=IF(AND(B2=”野菜”,C2>=200),A2,””)
この数式は「カテゴリが野菜」かつ「価格が200以上」という2つの条件が両方とも真の場合に商品名を表示します。
また、いずれかの条件に一致すれば抽出したい場合は、OR関数を使用しましょう。
=IF(OR(B2=”野菜”,B2=”穀物”),A2,””)
この数式は「野菜」または「穀物」のどちらかに一致すれば商品名を表示します。
行全体を抽出したい場合は、各列に同じ条件のIF関数を入力してコピーすることで、一致する行のすべてのデータを表示できます。
エクセルで値が一致したら抽出する方法2【フィルター機能で簡単抽出】
関数を使わずに、もっと簡単に条件に一致するデータを抽出したい場合もあるでしょう。
そんな時に役立つのが、エクセルのフィルター機能を使った抽出です。
フィルター機能を使えば、クリック操作だけで条件に一致するデータを瞬時に表示できます。
例えば、以下のようなデータから特定の条件に合う行だけを表示したい場合を考えてみましょう。

「野菜」カテゴリのデータだけを表示したい場合に最適です。
解決方法
「データ」タブをクリックして、データ範囲内のいずれかのセル(例としてA1)をクリックします。

「並べ替えとフィルター」グループの「フィルター」ボタンをクリックします。

各列の見出しに下向き矢印のフィルターボタンが表示されます。
カテゴリ列(B列)のフィルターボタンをクリックします。

表示されるメニューで、「野菜」だけにチェックを入れて「OK」をクリックします。

条件に一致する「野菜」カテゴリのデータだけが表示され、それ以外の行は非表示になるわけです。
フィルターを解除したい場合は、再度フィルターボタンをクリックして「すべて選択」にチェックを入れるか、「データ」タブの「クリア」ボタンをクリックします。
【操作のポイント:「データ」タブの「フィルター」機能を使えば、関数なしで簡単に条件に一致するデータを抽出できます】
複数条件でフィルタリングする方法
複数の列で同時に条件を指定することもできます。
例えば、カテゴリが「野菜」で価格が200以上のデータを抽出したい場合は、まずカテゴリ列で「野菜」を選択し、次に価格列のフィルターボタンをクリックして「数値フィルター」から「指定の値以上」を選択して「200」と入力します。
これで二つの条件を同時に満たすデータだけが表示されるでしょうか?
また、「テキストフィルター」や「数値フィルター」を使えば、「含む」「始まる」「より大きい」などの詳細な条件指定も可能です。
エクセルでFILTER関数を使って一致したら抽出する方法3【複数条件で自動抽出】
Excel 365やExcel 2021を使っている場合は、FILTER関数を使った自動抽出が便利です。
FILTER関数を使えば、条件に一致するデータを自動的に抽出して別の場所に表示でき、元データが更新されると抽出結果も自動的に更新されます。
例えば、以下のようなデータがあるとします。

条件に一致するデータを別の場所に自動的に抽出したい場合を考えてみましょう。
解決方法
「ホーム」タブをクリックして、抽出結果を表示したい場所(例としてF2セル)に移動します。

F2セルに以下の数式を入力します。
=FILTER(A2:D6,B2:B6=”野菜”,”該当なし”)

この数式は、A2:D6の範囲からB列(カテゴリ)が「野菜」に一致する行をすべて抽出します。
FILTER関数の構文は「=FILTER(配列,条件,[空の場合])」となっており、条件に一致する行が自動的に表示されるわけです。

Enterキーを押すと、「野菜」カテゴリのすべての行が自動的に抽出され、複数行にわたって表示されます。
これをスピル機能と呼び、1つの数式で複数の結果が自動的に展開されます。
元データを変更すると、抽出結果も自動的に更新されるため、常に最新のデータを確認できるでしょう。
【操作のポイント:FILTER関数の第1引数に抽出範囲、第2引数に条件、第3引数に該当なしの場合の表示を指定することで、条件に一致するデータを自動抽出できます】
複数条件で抽出する方法
二つ以上の条件で抽出したい場合は、条件を掛け算で組み合わせます。
=FILTER(A2:D6,(B2:B6=”野菜”)*(C2:C6>=200),”該当なし”)
この数式は「カテゴリが野菜」かつ「価格が200以上」という2つの条件を両方満たす行だけを抽出します。
「*」は論理積(AND)を表し、両方の条件が真の場合に抽出されるわけです。
また、いずれかの条件に一致すれば抽出したい場合は、足し算で組み合わせます。
=FILTER(A2:D6,(B2:B6=”野菜”)+(B2:B6=”穀物”),”該当なし”)
この数式は「野菜」または「穀物」のどちらかに一致する行を抽出します。
特定の列だけを抽出したい場合は、第1引数の範囲を調整します。
=FILTER(A2:A6,B2:B6=”野菜”,”該当なし”)
これで商品名だけが抽出されます。
まとめ エクセルで値が一致したら抽出(複数条件・別シートに転記・二つの項目)方法
エクセルで値が一致したら抽出する方法をまとめると、IF関数で条件を判定すれば一致したデータを隣のセルに表示でき、フィルター機能を使えば関数なしで簡単に条件に一致するデータを抽出できます。
また、FILTER関数を使えば条件に一致するデータを自動的に抽出して元データの更新にも自動対応でき、複数条件の場合はAND関数やOR関数を組み合わせることで柔軟な抽出が可能です。
これらの方法を状況に応じて使い分けていけば、ほとんどのケースでデータ抽出の問題を解決できるでしょう。
特に簡単な条件でデータを確認したい場合はIF関数やフィルター機能が最も手軽で理解しやすいため、まずこの方法から始めることをおすすめします。
ただし、動的に更新される抽出結果が必要な場合はFILTER関数が最適なため、Excel 365やExcel 2021を使用している場合は積極的に活用することも大切かもしれません。
エクセルのデータ抽出機能を正しく理解して、効率的なデータ分析を実現していきましょう!