【EXCEL】全シートでand検索ってできますか

このQ&Aのポイント
  • シート毎ではフィルターを使ってAND検索が出来ますが、シートをまたいで(ブック内全体で)行のand検索をかける機能は無いでしょうか?
  • 現在シートが40枚に分かれているブックに部品の情報を載せています。その一枚一枚をフィルタをかけて検索する作業を簡略化したいのですが、いい方法は無いでしょうか?
  • すべてのデータを一枚のシートにして、フィルタで検索というのも考えましたが、今後の管理のことを踏まえるとシートは分けておきたいです。データ数は5000程。今後も順次増えていきます。検索項目は4項目で形状、部品分類、使用数、横幅です。シートはメーカーで分かれています。検索結果の行を抜き出すか、Ctrl+Fの検索結果のように一覧になって出てきてくれるのが、理想的な形です。コマンドやそういった機能があるのが一番なんですが、出来ないならマクロ・VBAも勉強使用かと思います。
回答を見る
  • ベストアンサー

【EXCEL】全シートでand検索ってできますか

シート毎ではフィルターを使ってAND検索が出来ますが、シートをまたいで(ブック内全体で)行のand検索をかける機能は無いでしょうか? 検索ボタンからの検索だとひとつの文字列しか検索できません。 現在シートが40枚に分かれているブックに部品の情報を載せています。その一枚一枚をフィルタをかけて検索する作業を簡略化したいのですが、いい方法は無いでしょうか? すべてのデータを一枚のシートにして、フィルタで検索というのも考えましたが、今後の管理のことを踏まえるとシートは分けておきたいです。 データ数は5000程。今後も順次増えていきます。 検索項目は4項目で形状、部品分類、使用数、横幅です。 シートはメーカーで分かれています。 検索結果の行を抜き出すか、Ctrl+Fの検索結果のように一覧になって出てきてくれるのが、理想的な形です。 コマンドやそういった機能があるのが一番なんですが、出来ないならマクロ・VBAも勉強使用かと思います。 ECXEL2013を使用しています。 スキルは仕事に使うコマンドと関数が使える程度です。 VBAで標準モジュールに貼り付けるだけなら出来ますが、自分で組んだことはありません。 どなたかいい知恵がありましたら、お貸しください。よろしくお願いします。

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

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

>すべてのデータを一枚のシートにして、フィルタで検索というのも考えましたが、今後の管理のことを踏まえるとシートは分けておきたいです。 Excelをデータベースとして使用するなら、今後の管理を考えるとシートは分けるべきではありません。 一枚のシートにまとめてあれば、逆に個別のシートに分割したり、特定の条件のデータを集計するのは簡単なことです。 どうしても、シートを分ける(管理するシートを増やしたいということなら、マクロ処理が必要になります。 まず、検索条件が変動し、かつ複数項目のデータ抽出を効率的に行うには、フィルタオプションの設定を利用するのがお勧めです。 さらに、多数のシートで同様の条件を一括設定するには作業グループの機能を利用します。 これらの前提でフィルタオプションを利用する基本操作を説明すると、すべてのシートを作業グループにして、空白列に検索項目の形状、部品分類、使用数、横幅という項目名を入力し、その下にそれぞれの検索条件(対処にしない場合は空白のまま)を入力します。 次に作業グループを解除して、データタブの「詳細設定」をクリックし、リスト範囲にA列からデータ範囲の列全体を指定し、検索条件範囲に上記の4つの項目名とその下の行を選択し、OKします(必要に応じて他シートに抽出する)。 このようにして2つ目以降のシートで同様の操作を行います。 この操作をマクロの記録で記録して、そのコードを修正して、最終的にはシートを変更して40回繰り返すコードに変更することになります(無理に繰り返し操作を入れなくても、1回分の操作をコピーし、シートを順次選択して、そのあとにそのコードを貼り付ればよい)。 ひとまず、ここまでやってみて、わからないことや不都合な点があれば、問題点を絞って再質問するようにしてください。

mmmkkk555333
質問者

お礼

この設定は出来ました。 もう一度質問まとめてから質問します。

その他の回答 (5)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

40シートからの抽出を関数で処理するのは無理かと思います。 貼付画像はSheet1、Sheet2、Sheet3に模擬データを作成して検査条件を3項目でSheet4へ抽出してみました。 Sheet4のB列、C列、D列に検査条件を列記してSheet1、Sheet2、Sheet3のB、C、Dの各列に一致する組み合わせのSheet名と行番号を検査します。 複数の該当があるときはSheet1、Sheet2、Sheet3の順で後方のシート名を抽出し、行番号は大きい方を採用しています。 Sheet4!F2=MAX(MAX(INDEX((Sheet1!B$2:B$21=B2)*(Sheet1!C$2:C$21=C2)*(Sheet1!D$2:D$21=D2)*1,0)),MAX(INDEX((Sheet2!B$2:B$21=B2)*(Sheet2!C$2:C$21=C2)*(Sheet2!D$2:D$21=D2)*2,0)),MAX(INDEX((Sheet3!B$2:B$21=B2)*(Sheet3!C$2:C$21=C2)*(Sheet3!D$2:D$21=D2)*3,0))) Sheet4!G2=MAX(INDEX((INDIRECT("Sheet"&F2&"!B$2:B$21")=B2)*(INDIRECT("Sheet"&F2&"!C$2:C$21")=C2)*(INDIRECT("Sheet"&F2&"!D$2:D$21")=D2)*ROW(A$2:A$21),0)) Sheet4!A2=IF(COUNTA(B2:D2)=3,INDEX(INDIRECT("Sheet"&F2&"!a:a"),G2),"") 其々のセルを下へ必要数コピーします。 Sheet4のF列は条件付き書式で値が0のとき文字の色を白にしてあります。 Sheet4のG列は同様にエラーのとき文字の色を白にして見えなくしています。 模擬データは各シート共21行目までとしてありますのでその範囲で数式を組み立てています。 実際のデータが40シートとのことなのでSheet4!F2の数式は途轍もない長さになるでしょう。 従って、VBAで処理されることをお勧めします。

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.4

>現在シートが40枚に分かれているブックに部品の情報を載せています。その一枚一枚を >フィルタをかけて検索する作業を簡略化したいのですが、いい方法は無いでしょうか? >すべてのデータを一枚のシートにして、フィルタで検索というのも考えましたが、今後の管理 >のことを踏まえるとシートは分けておきたいです。 方法は別として仮に実現できたとしても、抽出結果を確認するのに40シート全て 見なくちゃいけなくなると思うので、やはり1枚のシートにまとめた上で抽出した方が よいのではないでしょうか。 例えばこういうツールを使用すると、複数シートのデータを一つのシートにまとめて くれますよ(各シートの項目は一律じゃないといけないみたいです)。 http://www.vector.co.jp/soft/winnt/business/se475869.html?ds

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

シートをまたいで(ブック内全体で)行のand検索をかける機能は無いけど、単発検索で良ければ可能ですけど。 複数(あるいは全部)のシートを選択しておけば。 ご存知なかったなら、今までの半分の手間で済む?

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.2

#1です。 AND検索なのを忘れてました。やはりマクロで一ヶ所にデータを 集めるのが簡単でいいと思います。

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.1

> 現在シートが40枚に分かれているブック 後で困るのが目に見えているのに…… フィルタ機能ではなく 検索機能のオプションでブック単位の検索を掛けたらどう ですか? > 自分で組んだことはありません。 VBAは せめて基本だけでも勉強してから挑戦して下さい。 抽出データを別シートに表示させる場合ですが 全部を一ヶ所に集めてからソート を掛けて 不要なデータ行範囲を一括で削除した方が処理が速いです。

関連するQ&A

  • excel:検索

    EXCELのシート内の文字を検索するために検索機能を使いますが、book内の複数の全シートにわたって検索できないように思いました。 全シートにわたって検索するためにはどうすればよいでしょうか。

  • 複数のExcelブックの可視セルを統合VBA

    いつもお世話になっております。 複数のExcelブックの可視セルのみを、別のブックの1つのシートに統合することはできるのでしょうか? やりたいことは、始めに複数人に同一ファイルを配布し、1つのフォルダにそれを纏め、各担当者ごとでフィルタを掛けた部分(可視セル)だけを1つのブックの2シート目(1シート目はAccessにリンクさせています)に纏めたいと思っております。 ファイルは、1行目に集計・2行目に各項目があり、必要データは3行目からです。 VBA初心者の為、どなたかおわかりになる方いらっしゃいますでしょうか? 宜しくお願いいたします。

  • Excel2007でBOOK間のシート移動をVBAで行うとエラーになる

    Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAで開発されており、下記のコマンドです。 Sheets(移動元シート名).Move Before:=Application.Workbooks(移動先ブック名).Sheets(1) 異常の内容は下記になります。 ------------------------------- ?err.Description 移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 ?err.Number 1004 ------------------------------- 移動元BOOKは1シート、移動先BOOKは1シートあります。 これをExcel2000で実行すると正常にシートが移動できます。 (移動元BOOKのシートがなくなりBOOKが終了して、移動先BOOKは2シートになります) Excel画面の移動元シートを選択して、右クリックメニューの「移動またはコピー」で移動先ブックを指定して移動すると 「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。」 とVBAから実行した時と同じ内容のエラーダイアログが表示されました。 (Excel2000では手動でも移動できました) Excel2007では1シートで構成されたBOOK間の移動はできないのでしょうか? また、これをVBAで対策しようとした場合にどうしたら良いのでしょうか? ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • エクセルでブック間のシートの合体?教えてください。

    エクセルの作業で困っちゃいました。 同じホルダー内に 0210A.xls、sから0309A.xlsの12種類 0210B.xls、sから0309B.xlsの12種類 0210C.xls、sから0309C.xlsの12種類 0210D.xls、sから0309D.xlsの12種類 の48のブックがあります。(0210は2002年10月の意味です。) 各ブックは複数のシートを持っており、各ブックに共通してあるのは「AAA」、「BBB」、「CCC」の3種類で、それ以外のシートもあります。シートの順番は各ブックによりまちまちです。 これらのブックの共通する3種類のシートだけを合体して 0210AB.xlsから0309AB.xlsの12種類、(AとBの合体) 0210CD.xlsから0309CD.xlsの12種類、(CとDの合体) の24種類のブックを作りたいのです。 各ブックは「AAA」、「BBB」、「CCC」の3シートを持ちます。中身はオリジナルの各「AAA」、「BBB」、「CCC」の単純な寄せ集めです。 データは各シートとも1行目に項目、2行目以降にデータで、列はAF列まで使用しています。データの個数はまちまちで、オートフィルターを使用しています。 たとえば、0210A.xlsのシートAAAが200行であれば0210BのシートAAAのデータの一行目の項目は不要ですので2行目から最終行までコピーして201行以降に貼り付けるという感じです。同様にシートBBB、シートCCCも処理します。各シート1行目はオリジナルと同じ項目名とします。 手作業でやろうと思いましたが、誤りの発生もこわいのでVBAなどでうまくできる方法はないでしょうか?わたしのVBAの知識はマクロ自動記録ができるくらいなので助けてほしいのです。 Windows2000でエクセルも2000です。 よろしくお願いしま~す。

  • 関数 or マクロ(エクセル)

    行の項目と列の項目を検索して重なる部分のデータを拾いたいのですがどうもうまくいきません。初歩的なことかもしれませんが、VLOOKUPとHLOOKUP関数をあわせたようなもの。LOOKUPウィザードでもやってみるのですがうまくいかないのでよろしくお願いします。(最終的にVBAでやりたいです) 元のデータは、(Sheet3)にあって(Sheet2)で項目を並べ縦と横の項目に一致するデータを持ってきたいです。 Sheet3にあるデータは、別のブックよりVBAで検索したデータを持ってきています。 また、Sheet1、2ともその都度行数(検索項目数)が変わるので、できればデータシートの行数にあわせて行きたいのですが・・・こうなるとVBAになると思い挑戦しているのですがこれがまたうまくいきません。 で、データの行数にあわせて拾い出し、A列で最終行を検索して、L列~W列の各列の3行目に、5行目~最終行までの合計を取ろうと思っています。 説明が下手ですみませんが、よろしくお願いします。 環境:Win2000、98 Office2000です。

  • 値の検索方法

    ExcelのVBAについて教えてください。 シートAとシートBがあり、内容は異なりますが同じ項目が設定されています。 シートAのA列の値に一致する値をシートBから検索し行の値を取得したいと思うのですが、シートAもシートBも0埋めされていたりされていなかったり値がばらばらです。 VBAでシートの値を変更せず検索して行情報を取得する方法はないでしょうか? Findとかフィルタでは検索先のシートの値を補正できなくて難しいのかなと思っているのですが可能なのでしょうか。 なお、行数がかなり多いのでシートBを上から一つずつ検索していく方法はなるべく避けたいです。 よろしくお願いします。

  • エクセルのシートを検索したい

    仕事で使うエクセルの書類なのですが、 顧客別にシートを作成しているので、シートの数が多くなり探すのに時間がかかります。 今は 「検索と置換」からオプション開いて検索場所を選択して~ ということをしているのですが上手く検索ができなかったりするので テーブルにフィルターをかけるように、シート自体にフィルターをかけたりして検索する方法はないのでしょうか。 宜しくお願い致します。

  • 複数のシートや複数のブックの検索

    こんばんは。 エクセルはほぼ初心者です。 セルに入れた文字をほぼ一致、または完全一致で複数のシート内を 検索して、その行の数値を表示させる事はできますか? VBAやマクロで教えて頂けると幸いです。 欲張りですみませんが↑の別バージョンで複数のブック内も可能でしょうか?

  • シート間の検索したデータの受け渡しについて

    シート1に日付、名前、その他の項目があり、シート2に日付を入力すると、シート1から検索された行を全てシート2に表示したいのですが、そのようなことは可能でしょうか? 1行だけだと、わかるのですが、何行もある場合はどのように表示したらいいのかわかりません。 どなたかご教授お願いします。 また、このような処理はエクセルだけでは厳しいのでしょうか? やはり、マクロを使用したほうがよいのでしょうか?

  • エクセル関数、シート又はブック間での検索について

    「VLOOKUP 関数」を使用してシート又はブック間で検索し抽出しているのですが、その抽出したものが、そのシートの何行目にあったか、行番号が知りたいのですが、行番号も一緒に抽出する方法(関数)はありますか? 関数やマクロなど全く無知なので、どうかお助けいただきたいと思います。よろしくお願いします!

専門家に質問してみよう