Excel

【Excel】エクセルで別シートに自動反映(条件に合うデータ・複数条件も・入力したら違うシート・FILTER関数とIF関数)

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

エクセルで作業していると、以下のような場面に遭遇することはありませんか?

・条件に合うデータだけを別シートに自動反映させたい
・複数の条件を満たす行だけを転記したい
・特定のシートに入力したら自動的に別シートに反映させたい
・リアルタイムで条件付きデータを収集したい

手動でフィルタやコピーを繰り返すのは非効率で、ミスも発生しやすいでしょう。

そこでこの記事では、【Excel】エクセルで別シートに自動反映(条件に合うデータ・複数条件も・入力したら違うシート・FILTER関数とIF関数)する方法について、解説していきます。

ポイントは

・FILTER関数で条件に合うデータを別シートに自動表示
・IF関数とVLOOKUP関数を組み合わせて複数条件で抽出
・数式を活用して入力時に自動的に別シートへ反映

です。

それでは詳しく見ていきましょう。

エクセルでFILTER関数を使って条件に合うデータを別シートに自動反映する方法1【動的な抽出】

エクセルで条件に合うデータだけを別シートに自動反映させる最も効率的な方法は、FILTER関数を使って条件を満たす行を自動的に抽出して表示することです。

この方法なら、元データが更新されると自動的に反映され、常に最新の条件付きデータを表示できるため、非常に便利でしょう。

例えば、以下のような売上データが「データシート」にあるとします。

「データシート」にある売上データから、ステータスが「完了」のデータだけを「集計シート」に自動反映させたい場合に有効です。

解決方法

FILTER関数はExcel 365およびExcel 2021で使用できます。集計シートの「A2」セルに、以下のFILTER関数を用いた数式入力しましょう。

=FILTER(データシート!A2:D100,データシート!D2:D100=”完了”)

この数式の構造を説明すると、以下のようになります。

– データシート!A2:D100
抽出元の範囲(データシートのA2からD100セルまで)
– データシート!D2:D100=”完了”
条件(データシートのD2からD100セルの中で、値が「完了」の行)

「Enter」キーを押すと、条件に合う全ての行が自動的に表示されるわけです。スピル機能により、複数行が自動的に展開されます。

参照先であるデータシートの範囲内であれば、「完了」のデータを追加・削除・変更しても、自動的に集計シートが更新されます。

条件に合うデータの中にエラーが存在している場合、エラーが表示されます。これを回避するには、IFERROR関数と組み合わせてください。

先程、集計シートA2セルに入力した数式を、以下の数式に置き換えます。

=IFERROR(FILTER(データシート!A2:D100,データシート!D2:D100=”完了”),”該当データなし”)

その後「データシート」でエラーとなる行を追加すれば、「集計シート」で「該当データなし」と表示されるか確認できます。

今回は該当セルに「=0/0」(ゼロ除算)を入力。意図的にエラーを起こし、表示を確認します。

(表示の確認ができたら、データシートの6行目は削除して構いません)

数値を条件指定で抽出することもできます。例えば、売上額が20000以上のデータを抽出する場合は、以下の数式で抽出できます。

=FILTER(データシート!A2:D100,データシート!C2:C100>=20000)

また、あらかじめセルに値を入力して、条件に紐付けることもできます。例えば「F2」セルに抽出したいステータスを入力しておけば、柔軟に条件を変更できます。

=FILTER(データシート!A2:D100,データシート!D2:D100=F2)

この数式なら「F2」セルの値を変更するだけで、抽出結果が変わります。

【操作のポイント:FILTER関数で条件に合うデータを別シートに自動的に抽出表示】

エクセルで複数条件に合うデータを別シートに自動反映する方法2【AND条件とOR条件】

単一の条件だけでなく、複数の条件を組み合わせてデータを抽出したい場合もあるでしょう。

そんな時に役立つのが、FILTER関数に複数の条件を組み合わせて、より詳細な抽出を行う方法です。

AND条件(すべての条件を満たす)やOR条件(いずれかの条件を満たす)などに対応できます。

例えば、担当者が「田中」かつステータスが「完了」のデータだけを抽出したい場合に有効です。

解決方法

AND条件(複数の条件をすべて満たす)

複数の条件をすべて満たす行を抽出するには、条件を「*」(乗算)で結合します。

=FILTER(データシート!A2:D100,(データシート!B2:B100=”田中”)*(データシート!D2:D100=”完了”))

この数式は、担当者が「田中」かつステータスが「完了」の行だけを抽出します。両方の条件を満たす行のみが表示されるわけです。

3つ以上の条件も同様に追加できます。

=FILTER(データシート!A2:D100,(データシート!B2:B100=”田中”)*(データシート!D2:D100=”完了”)*(データシート!C2:C100>=10000))

この数式は、担当者が「田中」、ステータスが「完了」、かつ売上額が10000以上という3つの条件をすべて満たす行を抽出します。

OR条件(いずれかの条件を満たす)

いずれかの条件を満たす行を抽出するには、条件を「+」(加算)で結合します。

=FILTER(データシート!A2:D100,(データシート!B2:B100=”田中”)+(データシート!B2:B100=”佐藤”))

この数式は、担当者が「田中」または「佐藤」の行を抽出します。

複数列に対するOR条件も設定できます。

=FILTER(データシート!A2:D100,(データシート!D2:D100=”完了”)+(データシート!D2:D100=”確認済み”))

AND条件とOR条件の組み合わせ

より複雑な条件も設定できます。例えば、「(田中または佐藤)かつ(完了)」という条件の場合は、以下のようになります。

=FILTER(データシート!A2:D100,((データシート!B2:B100=”田中”)+(データシート!B2:B100=”佐藤”))*(データシート!D2:D100=”完了”))

括弧を使って条件の優先順位を制御します。内側の括弧がOR条件、外側がAND条件として機能します。

エラー対策として、IFERROR関数で囲むこともおすすめします。

=IFERROR(FILTER(データシート!A2:D100,(データシート!B2:B100=”田中”)*(データシート!D2:D100=”完了”)),”該当データなし”)

【操作のポイント:複数条件は*でAND、+でORを実現して詳細な抽出が可能】

エクセルでIF関数を使って条件に合うデータを別シートに反映する方法3【FILTER関数が使えない場合】

Excel 2019以前のバージョンや、FILTER関数が使えない環境もあります。

そんな時には、IF関数を使って行ごとに条件判定して別シートに反映する方法が有効です。

この方法なら、どのバージョンのExcelでも使用できるでしょう。古いバージョンのExcelで、条件付きデータを別シートに表示したい場合でも有効です。

解決方法

集計シートのA2セルに、以下の数式を入力しましょう。

=IF(データシート!D2=”完了”,データシート!A2,””)

この数式は、データシートのD2が「完了」の場合にA2のデータを表示し、それ以外は空白を表示します。

同様に、B2、C2、D2セルにも対応する数式を入力してください。

B2セル:=IF(データシート!D2=”完了”,データシート!B2,””)
C2セル:=IF(データシート!D2=”完了”,データシート!C2,””)
D2セル:=IF(データシート!D2=”完了”,データシート!D2,””)

その後、この数式をオートフィルで下にコピーすれば、条件に合う行だけがデータとして表示され、合わない行は空白になります。

ただし、この方法では空白行が残るため、見た目が崩れてしまいます。空白行を詰めるには、後述するINDEX関数との組み合わせが有効です。

複数条件の場合

複数条件を判定する場合は、AND関数やOR関数を組み合わせます。

=IF(AND(データシート!$B2=”田中”,データシート!$D2=”完了”),データシート!A2,””)

この数式は、担当者が「田中」かつステータスが「完了」の場合にデータを表示します。

また「データシート!$B2=”田中”」のように、条件となるセルの先頭に「$」を記入しておくことで参照する列を固定しています。これによりオートフィルで数式を入力しても、参照先の指定がズレることがなくなります。

OR条件の場合は以下のようになります。

この数式は、担当者が「田中」または担当者が「佐藤」の場合に、データを表示します。

=IF(OR(データシート!$B2=”田中”,データシート!$B2=”佐藤”),データシート!A2,””)

【操作のポイント:IF関数で行ごとに条件判定すれば古いExcelでも条件付き反映が可能】

エクセルで空白行を詰めて条件データを別シートに表示する方法4【INDEX関数とSMALL関数の組み合わせ】

IF関数を使った方法では空白行が残ってしまいます。

そんな時には、INDEX関数とSMALL関数を組み合わせて空白行を詰めて表示する方法が有効です。

この方法なら、条件に合う行だけを連続して表示できるでしょう。

解決方法

集計シートのA2セルに、以下の数式を入力しましょう。

配列数式のため、場合によっては入力後に「Ctrl + Shift + Enter」キーを押す必要があります(Excel 365では不要)。

=IFERROR(INDEX(データシート!A$2:A$100,SMALL(IF(データシート!$D$2:$D$100=”完了”,ROW(データシート!$D$2:$D$100)-ROW(データシート!$D$2)+1),ROW(A1))),””)

数式の構造を説明すると、以下のようになります。

– INDEX(…):該当する行のデータを表示
– IF(データシート!$D$2:$D$100=”完了”,ROW(…)):条件を満たす行番号を取得
– SMALL(…):条件を満たす行番号を小さい順に取得

つまり、条件を満たす行番号を取得し、その値を参照しています。

この数式をオートフィルでコピーすれば、条件に合う行だけが空白なく連続して表示されるでしょう。

この方法は複雑ですが、古いバージョンのExcelでもFILTER関数のような動作を実現できます。

ただし、大量のデータを扱う場合は計算が重くなる可能性があるため、データ範囲を必要最小限に設定することをおすすめします。

【操作のポイント:INDEX関数とSMALL関数の組み合わせで空白行を詰めて条件データを表示】

まとめ エクセルで別シートに自動反映(条件に合うデータ・複数条件も・入力したら違うシート)

エクセルで条件に合うデータを別シートに自動反映する方法をまとめると、以下の通りです。

– FILTER関数:条件を満たす行を自動的に抽出して表示。更新内容もが即座に反映。

– 複数条件:AND条件は「*」、OR条件は「+」で実現。括弧「()」を使って複雑な条件の組み合わせも可能。あらかじめセルに条件を入力すれば動的に抽出条件を変更できる。

– IF関数:FILTER関数が使えない古いバージョンに有効。行ごとに条件判定し、INDEX関数とSMALL関数の組み合わせることで、空白行を詰めて表示できる。

これらの方法を状況に応じて使い分けていけば、ほとんどの条件付き自動反映の問題を解決できます。

特にFILTER関数は最も簡単で強力な機能として、Excel 365やExcel 2021ユーザーは必ずマスターすることをおすすめします。

注意事項として、FILTER関数は比較的新しい関数のため、使用環境を確認する必要があります。

また、配列数式を使う方法は計算が重くなる可能性があるため、参照先として指定するデータ範囲を適切に設定することも大切です。

エクセルの条件付き自動反映機能を正しく理解して、効率的なデータ管理と集計を実現していきましょう!