• ベストアンサー

Excelのオートフィルタで複数のデータを取り出す

Excelのオートフィルタの検索方法についての質問です。 100種類以上あるデータの中から50種類程の顧客データを取り出したいのですが、共通する条件がないため1つ1つチェックを入れていくしかありません。 しかし、この方法ですとミスが生じやすいので何かいい方法はないのでしょうか?また、顧客データは漢字です。 どなたかご教授頂けましたら、幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#144013
noname#144013
回答No.3

こんにちは。以下は一例です。 前準備が必要ですが、以下のように検索用シートを設けては如何でしょう? ・ワークシート関数による検索です。 ・検索結果は、一件の検索につき一件となります。 ■シートのレイアウト例 ※ご使用シートのレイアウトが不明なので適当です。 1)検索用シート  ・シート名=『検索シート』  ・こちらのシートを追加します。     [A]     [B]          [C]       [D]        [E]     [F] [ 1]  No.  顧客名(検索名)  顧客No.  顧客名(登録名)  データ1  データ2 [ 2]   1   ウサギ        (数式)    (数式)      (数式)  (数式) [ 3]   2   ウシ           :        :         :      :  :    :      :          :        :         :      : 2)顧客リストのシート  ・シート名=『顧客リスト』  ・こちらは既に作成している顧客情報の登録シートです。     [A]     [B]        [C]     [D] [ 1] 顧客No.  顧客名     データ1  データ2 [ 2]   1    ウシ さん     101     2010 [ 3]   2    トラ さん      102    2020  :    :      :         :      : ■『検索シート』の数式設定 ※ご使用シートに数式を設定する際は、下記数式内のシート名、及びセル名の  部分を、ご使用シートのレイアウトに合わせて変更して下さい。 1)C2セルに以下の数式を設定します。  =IF($B2="","",IF(ISERROR(MATCH("*"&$B2&"*",顧客リスト!$B$1:$B$101,0)),"",  INDEX(顧客リスト!$A$1:$F$101,MATCH("*"&$B2&"*",顧客リスト!$B$1:$B$101,0),COLUMN(A1))))  ・この数式を、下記2)、3)の操作で他のセルへコピーします。  ・この数式の場合、シート名『顧客リスト』のシートのセル範囲『$A$1:$F$101』   に顧客リストが登録されているものとしています。(1行目はタイトル行)  ・この場合、リストの登録件数は最大100件を想定しています。  ・セル名(セルアドレス)の相対参照と絶対参照の違いに気をつけて下さい。 2)C2セルを選択し、オートフィルのドラッグ操作で右方向に H2 セルまでドラッグし  数式をコピーします。 3)そのまま(C2:H2のセル範囲が選択された状態)、続けてオートフィルのドラッグ  操作で下方向に必要な行まで数式をコピーします。 ■『検索シート』での操作例 1)B列に、メモ(検索する顧客名のリスト)の顧客名を入力します。  ・検索顧客名は、『顧客リスト』に登録されている顧客名と【完全一致】して   いなくても構いません。検索は【部分一致】で検索されます。 2)入力された顧客名が、『顧客リスト』に登録されていれば、その登録情報が  『検索シート』の該当セルに表示されます。 注)検索は部分一致で検索されますので、下記のようなケースの場合、   検索が上手くいかない場合があります。   『顧客リスト』の登録顧客名     1  ウサギ     2  サギ   『検索シート』の検索顧客名     サギ  ・上記の場合、検索結果は、「サギ」ではなく、「ウサギ」となります。  ・これを回避するには、数式の検索方法を【部分一致】ではなく、【完全一致】   にする必要があります。  ・その場合、検索顧客名には、登録顧客名と全く同じ名称を入力しないと   検索されません。  <完全一致版の設定数式>  =IF($B2="","",IF(ISERROR(MATCH($B2,顧客リスト!$B$1:$B$101,0)),"",  INDEX(顧客リスト!$A$1:$F$101,MATCH($B2,顧客リスト!$B$1:$B$101,0),COLUMN(A1)))) 添付画像は、当方で検証した際のExcelブックのシート画面です。 ※当方は、Excel2000で検証しました。 以上です。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

一番肝心のポイントとしては,あるデータがチェックされた(抽出された)として,それがチェックされた事が「正解」なのか「実は間違っている」のか,一体どこにどんな具合に判断できる「材料」があるのでしょうか? >共通する条件がないため1つ1つチェックを入れていくしかありません。 たとえて言うなら,「あなたの好き嫌いでチェックを入れています」と言ってるのと変わり有りません。 Aさんがチェックされていて,Bさんはチェックされていないのは,あなたがAさんとCさんが好きだからAさんにチェックが入れBさんはハズしたのでミスしていません,ではエクセルにも誰にも調べようがありませんというお話です。 もうちょっと,何を根拠にチェックを入れたりハズしたりしていますみたいな部分を具体的に補足してみてください。 そのご説明の内容が,あなたが目の前に持っているエクセルのデータとしてあるのか無いのか,あるならどんな内容なのかがもっとも重要なポイントです。

sh0714
質問者

補足

ご指摘ありがとうございます。 正誤の判断材料は、手元にある紙です。紙に記載された50の顧客名をExcelに入力されている100名の中からフィルタでチェックしていく作業です。 この作業をフィルタの小ウィンドウでやっていったのですが、どんなに拡大しても100項目全てを表示できなかったため、確認しづらいと感じたのです。 keithinさんでしたら、どのようにチェックされるでしょうか。お時間がありましたら、方法をご教授頂きたいです

  • imo8001
  • ベストアンサー率14% (26/179)
回答No.1

VBAなら セルをひとつずつ検索していき  該当する情報があるものだけピックアップできます 関数でそれがもし可能なものがあれば IF とその関数を組み合わせ IFの条件がTrueならば たとえば1 とかいうセルを作って オートフィルターで抽出 というのもできなくありませんが 該当する関数があるかどうかわかりません・・。

関連するQ&A