• ベストアンサー

エクセルで検索して別シートに抽出したい

エクセル2003で顧客リストを作成しています。 そのリストの中から特定の文字列を検索し(あいまい検索)、その項目が含まれる行ごと 別シートに抽出をしたいです。 ほかの方のご質問も参考に試してみたのですが、上手くいきません。 1行目に各項目名 A日付 B担当1 C担当2 D管理番号 E顧客名 2行目からデータです。 ほぼ担当1か顧客名で検索し、検索結果は複数になることがほとんどです。 どなたかよろしくお願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 余計なお世話かもしれませんが、「担当1」でも「顧客名」でも検索できるようにしてみました。 ↓の画像でSheet1に作業用の列を設けています。 作業列F2セルに =IF(COUNTA(Sheet2!$A$2:$B$2)=0,"",IF(Sheet2!$B$2="",IF(ISNUMBER(FIND(Sheet2!$A$2,B2)),ROW(),""),IF(Sheet2!$A$2="",IF(ISNUMBER(FIND(Sheet2!$B$2,E2)),ROW(),""),IF(AND(ISNUMBER(FIND(Sheet2!$A$2,B2)),ISNUMBER(FIND(Sheet2!$B$2,E2))),ROW(),"")))) という数式を入れオートフィルでずぃ~~~!っと下へコピーしたおきます。 そしてSheet2のA5セルに =IF(COUNT(Sheet1!$F:$F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$F:$F,ROW(A1)))) という数式を入れ列方向と行方向にオートフィルでコピー! Sheet2のA列の表示形式は日付にします。 そうすると画像のような感じになります。 これでSheet2のA2セルに「担当1」の一文字・またはB2セルに「顧客名」の一文字でも入れば それらが含まれるデータが表示されると思います。 以上、参考になれば良いのですが・・・m(__)m

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

元データがSheet1にあり、検索する担当1または顧客名をSheet2のA1セルに入力した場合、以下の式をSheet2のそれぞれのセルに入力して下方向に適当数オートフィルコピーしてください。 A3セル(D3セルまで右方向にオートフィルコピー) =IF(B3="","",INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$1000<>$A$1)*(Sheet1!$E$2:$E$1000<>$A$1)*1000+ROW($A$2:$A$1000),),ROW(A1)))) E3セル =INDEX(Sheet1!E:E,SMALL(INDEX((Sheet1!$B$2:$B$1000<>$A$1)*(Sheet1!$E$2:$E$1000<>$A$1)*1000+ROW($A$2:$A$1000),),ROW(E1)))&""

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

シート1に顧客リスト シート2で A2に検索文字を入力 B1:担当1、C1:顧客名 B2="=*"&A2&"*" C3="=*"&A2&"*" [データ][フィルタ][フィルタオプションの設定]で 抽出先[指定した範囲] リスト範囲[シート1!$A$1:$E$999] 検索条件範囲[シート2!$B$1:$C$3] 抽出範囲[シート2!$A$5] としてOKをクリック

関連するQ&A