照合や比較条件でフィルターしたデータを、別のワークシートに複写して利用したい時に役立つテクニックです。実装手順と、抽出条件の入力例を詳しく図解します。
操作の手順
この操作に必要なのは、(1)抽出元のデータ表
(2)抽出先のワークシート
(3)抽出条件の表
以上3つです。
作業の手順は、元表を開く → 抽出先用のシートを増やす → 抽出条件の表を作る → 「フィルターオプション」を開いて抽出の設定をする となります。
元表を開くのとシートを増やすのは問題ありませんね。ちょっと面倒なのは「抽出条件の表を作る」です。この表は自分で入力しなければなりません。
条件の入力と別シートへの抽出方法
フィルターについての記事で抽出条件をダイアログで設定する操作を解説していますが、ここでは、その設定を表形式でセル範囲に入力していくことになります。
抽出条件の入力作法
- 抽出条件の表のフィールド名は、抽出元の表とフィールド名を同じにする
- 行(縦)方向に項目を複数並べた場合、OR指定と見なされる
- 列見出しを横方向に複数並べた場合、AND指定と見なされる
なお、抽出条件表を入力するのは、抽出元と抽出先どちらのシートでも構いません。
商品名のテキストを条件にして抽出する
「オートフィルター オプション」ダイアログで下図のように設定した条件を「抽出条件表」として入力してみましょう。
上図の設定「キャビネットかワゴンで始まる「商品名」で抽出する」という条件を表形式で入力します。
抽出に使う2つのキーワードをつなぐのは「OR」なので、縦に並べます。フィールド名は元表と同じ「商品名」にします。商品名がキーワードで「始まる」場合は、そのままテキストを入力します。シンプルな表ですね。※書式は不要です
※ 「OAチェアー」「会議チェアー」などの商品名があって、抽出のキーワードを「チェアー」としたい時は、ワイルドカード(*アスタリスク)を使って、「*チェアー」というように指定します。
ここから抽出作業に入ります。
作業は抽出先のシートで開始します。「Sheet2」に切り替えて、「データ」タブの「並べ替えとフィルター」グループにある「詳細設定」をクリック。
「フィルターオプションの設定」ダイアログボックスが開きます。
まず最初の「抽出先」で「指定した範囲」をオンにします。
次に「リスト範囲」に元表を指定します。
テーブル化してあるなら「テーブル名[#すべて]」と入力。
表に名前が定義されていたら、その名前を入力。または、F3キーを押して「名前の貼り付け」から選んでもOK。
(どちらかというと「名前の定義→ F3押し→ クリック」がおすすめ)
次の「検索条件範囲」に、先ほど作成した抽出条件表を列見出しも含めてドラッグして指定します。
最後の「抽出範囲」には、データを表示させる抽出先の範囲を指定します。ここでは、抽出データの起点となるセル(A1)を指定しました。
「OK」すると、「キャビネットかワゴンで始まる「商品名」」のレコードが「Sheet2」に抽出されました。
【必要なフィールドのデータだけ抽出するには…】
例えば、抽出するデータを「商品名」「単価」「数量」「金額」に限定したいという場合には、抽出先シートにあらかじめ表示させたいフィールドの列見出しを入力しておき、「フィルターオプションの設定」ダイアログの「抽出範囲」に、その列見出し範囲を指定します。
列見出しに対応するデータだけが抽出されました。
比較演算子を使った日付とテキストの複数条件で抽出する
日付で期間指定してデータを抽出する例です。
「オートフィルター オプション」ダイアログで下図のように設定した条件を「抽出条件表」とします。
「2018/1/1から2018/6/30までの「日付」で抽出する」 を比較演算子を使って「>=2018/1/1」 「<=2018/6/30」と入力します。
比較演算子の詳細はIF関数のページへ
つなぐのは「AND」なので、横方向に並べます。同じフィールドを2つ並べることもできます。
この例では、前章で解説したテキストの条件をこの表に加えて、複合的な抽出を実践してみたいと思います。「2018/1/1から2018/6/30までの「日付」と、キャビネットかワゴンで始まる「商品名」で抽出する」 という条件表を作成しましょう。
「日付」フィールドの右列に「商品名」と入力し、つなぐのは「OR」なので、縦方向にキーワードを並べます。「日付」の条件は「ワゴン」にも付くので、そのまま下へセルコピーします。
抽出作業は前章で解説した通りです。「検索条件範囲」に作成した表を指定します。
条件に合致したレコードが抽出されました。
フィルターオプションの設定で高度な抽出が実行できる