2021年07月25日更新
エクセルで条件に合致するデータを別シートに抽出/自動反映する方法
エクセル(Excel)で別シートのセルの内容を抽出/自動反映させようとした場合で条件を付けたいと思った場合、どうすればいいか悩んだという人もいるでしょう。この記事では、エクセルの別シートのセルデータを条件指定して抽出/自動反映させる方法を解説していきます。
エクセル/Excelで条件に合致するデータを別シートに抽出/自動反映する方法
エクセル/Excelを利用してデータをまとめたり集計したりすることも多いかと思いますが、その際に条件に合致するデータのみを別シートに抽出/自動反映されるようにしたい、ということもあるかと思います。
エクセルで条件に合致するデータを別シートに抽出/自動反映する方法
エクセル/Excelで条件に合致するデータを別シートに抽出/自動反映させたい場合、フィルターオプションを利用する方法と、関数を利用する方法の2つがあります。
抽出するシートでフィルタオプションを使用する手順
まずはフィルターオプションを利用して、エクセルの別シートに条件に合致するデータを自動反映させる方法から説明していきます。初心者の方はこちらの方法が利用しやすいです。
利用するのは上記のデータとし、条件は「状況」の項目が「完成」になっているデータの場合を例として紹介します。
まず、自動反映させたい別シートを作成し、そのシートに抽出条件の見出しと項目内容を入力して下さい。
「データ」タブをクリックします。
「フィルター」の近くにある「詳細設定」をクリックしましょう。
フィルターオプションの画面が表示されます。「指定範囲」で選択しましょう。
「リスト範囲」をクリックして、抽出したい元データの範囲(リスト)を選択して下さい。元データがあるシートを開いて、ドラッグ&ドロップで選択すればOKです。
「検索条件範囲」をクリックし、作成した抽出条件の見出しと項目内容を選択して下さい。
「抽出範囲」では抽出/自動反映させたいセル範囲の先頭(左上)のセルを選択しましょう。
「OK」をクリックしましょう。
エクセルの別シートのデータが、条件に合致するもののみ自動反映されていればOKです。
INDEX+MATCH関数を使ってデータを抽出する手順
関数を利用してエクセルの別シートに条件に合致するデータを抽出/自動反映させたい場合のやり方の説明に移ります。関数を利用する場合、抽出したい内容や項目によっては別の関数を利用する必要があることもあるため、その点注意が必要です。
今回はINDEX関数とMATCH関数を利用する場合の方法を説明します。この2つ以外にも利用している関数がありますが、詳細は割愛しますので参考にしながら値を入れて利用してみて下さい。
さて、INDEX+MATCH関数を利用する場合、前述した抽出元の表を利用しての条件で利用する場合、条件に合致する全てのものを抽出できないため、抽出条件のために必要な補助カラム(以下補助カラム)を抽出元のリストの一番右の列に追加します。
=IF(条件が入力されているセル=抽出したい条件,COUNTIF(条件が入力されている列の最初のセル【絶対参照】:条件が入力されている列の最初のセル,抽出したい条件),0) |
オートフィルでコピーして下さい。
フィルターオプションとは違い見出しまでの抽出はしないため、入力して準備しておきましょう。
次に、データを抽出するために下記の式を抽出したいセルに入力して下さい。
=INDEX(抽出元リストのデータの先頭列,MATCH(ROW()-抽出先のセルが上からの行数,補助カラムの列【絶対参照】,0)) |
オートフィルでコピーすれば上記のようになります。
値がない場合はエラーが表示されるため、それを避ける場合下記の式を利用しましょう。前述の式に青字になっている部分を追加した式です。
=IFERROR(INDEX(抽出元リストのデータの先頭列,MATCH(ROW()-抽出先のセルが上からの行数,補助カラムの列(絶対参照),0)),"") |
日付など反映されないセルの書式設定は、書式のみのコピー・貼り付けなどで対応して下さい。
最後に
エクセル/Excelで条件に合致するデータを別シートに抽出/自動反映する場合、フィルターオプションもしくは関数を利用します。
関数で抽出する場合、抽出したい内容によっては前述したものではできないこともあります。特に複数範囲を抽出する場合は関数も複雑になるため、利用しやすい方でデータの抽出/自動反映をおこなってください。