dポイントプレゼントキャンペーン実施中!

エクセルの件でご質問です!
「複数のシートがあり、その中で条件の一致するシートを検索し、更にそのシート内の条件に一致するものを抽出したい」
となるとどのような方法でやるのでしょうか?

特定のシートから抽出するのは、IF文で可能かと思いますが、その前に複数のシートを検索してからとなると、わかりません。

VBAに関しては、まったくわからない状態です。関数等でできればご教授頂きたいと思います。
どうかよろしくお願いいたします。

A 回答 (2件)

>特定のシートから抽出するのは、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)
    • good
    • 2
この回答へのお礼

ありがとうございました!
VBA!!勉強したいと思います。

お礼日時:2008/03/28 13:33

結局は


・最初のシートで検索し、あれば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のデータになる)
    • good
    • 0
この回答へのお礼

丁寧なご回答ありがとうございました。
やはり、VBAなしでは、かなり面倒な作業になる事を痛感しました。

お礼日時:2008/04/01 18:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!