- 締切済み
エクセルで複数のシートからの検索
エクセルの件でご質問です! 「複数のシートがあり、その中で条件の一致するシートを検索し、更にそのシート内の条件に一致するものを抽出したい」 となるとどのような方法でやるのでしょうか? 特定のシートから抽出するのは、IF文で可能かと思いますが、その前に複数のシートを検索してからとなると、わかりません。 VBAに関しては、まったくわからない状態です。関数等でできればご教授頂きたいと思います。 どうかよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>特定のシートから抽出するのは、IF文で可能かと思いますが、 甘い、甘い。エクセルでIF文が検索に使えるなんて、関数の経験が足りません。 従ってVBAのことは勉強していないでしょうが、この問題はVBAを使わないと満足なものが出来ません。そしてVBAでも中級以上の問題と思います。 ーー >条件に一致するものを抽出したい 色々エクセル関数諸問題をやっていたら、2つめ以後の該当分を見つけられないことが判るはず。関数は一般に検索には不適。 条件に該当する2行以上を一遍に出す関数は、非常に理解も難しい式になります。 シート内に該当行が、1つしか絶対ないなら、不細工だが、シート1つについて (もうひとつ条件はある1列の値であること、2列以上だと複雑になる) VLOOKUP関数 MATCH関数 などで1シート分1行で、出来るといえば出来る。(他の列の情報も取れる) =IF(ISERROR(VLOOKUP(A2,$F$1:$G$3,2,FALSE)),"該当なし",VLOOKUP(A2,$F$1:$G$3,2,FALSE)) f1:G3がシートの検索対象範囲 本当はSheet3!とかがセル範囲の前に着く 1行:シート1内に 該当なし 2行:シート2内に あり(商品名 XX) 3行:シート3内に あり(商品名 YY)
- chie65536
- ベストアンサー率41% (2512/6032)
結局は ・最初のシートで検索し、あればOK ・なければ次のシートで検索し、あればOK ・なければ次のシートで検索し、あればOK ・以下、すべてのシートで検索をする って事になります。 式でやろうとすると(シート5まである時は) =IF(ISNA(VLOOKUP(検索値,シート1の範囲,列番号,FALSE)), IF(ISNA(VLOOKUP(検索値,シート2の範囲,列番号,FALSE)), IF(ISNA(VLOOKUP(検索値,シート3の範囲,列番号,FALSE)), IF(ISNA(VLOOKUP(検索値,シート4の範囲,列番号,FALSE)), VLOOKUP(検索値,シート5の範囲,列番号,FALSE), VLOOKUP(検索値,シート4の範囲,列番号,FALSE)), VLOOKUP(検索値,シート3の範囲,列番号,FALSE)), VLOOKUP(検索値,シート2の範囲,列番号,FALSE)), VLOOKUP(検索値,シート1の範囲,列番号,FALSE)) と言う式になります。 一致するデータが複数のシートにある場合は、シート1からが優先されます。(シート2、4、5にあれば、シート2のデータになる)
お礼
丁寧なご回答ありがとうございました。 やはり、VBAなしでは、かなり面倒な作業になる事を痛感しました。
お礼
ありがとうございました! VBA!!勉強したいと思います。