http://allabout.co.jp/gm/gc/50028/
引数の指定の仕方が悪いと #VALUE!エラーが出ます。
http://www.excel.studio-kazu.jp/kw/20020625230516.html
ひとつのシートで なかったら 次のシートというやり方しかないですね。
何度もお手間をおかけしました。へぼいPCですし、ACCESSもありません。
頭の悪い質問の仕方だったようで、目的の回答はえられませんでしたが、今後役立たせていただきます。分けたSheetは入力用。入力後は別Sheetに一括でデータが入るようにしましたので、参照Sheetが複数で無いためVLOOKはそのまま使えます。Sheetは1枚増えましたが、とっても簡単なので、満足しています。いろいろありがとうございました。
>複数の条件での値のいずれかを表示するようにしたい
これだけですと、どのような処理をすればいいか分かりません。
エラーが出ている関数式を紹介していただければ、何かアドバイスできるかもしれません。
じゅぴたー様
ありがとうございます。VLOOK以外の方がいいのでしょうか?
検索したいデータは1つです。ただ、一致したセルを見つけても、表示が記号だった場合いの返し方などを“IF”で指示しています。
IF(L10="","",IF(VLOOKUP(K10,Sheet2!$K$10:$BH$174,8,FALSE)="","",IF(VLOOKUP(K10,Sheet2!$K$10:$BH$174,8,FALSE)="Tr"," Tr",IF(VLOOKUP(K10,Sheet2!$K$10:$BH$174,8,FALSE)="-"," -",ROUNDDOWN(
VLOOKUP(K10,Sheet2!$K$10:$BH$174,8,FALSE)/100*L10,2)))))
▽3
●
TransFreeBSD ●300ポイント ベストアンサー |
複数のシートにまたがって検索するような関数はなかったように思います。
まずは中間結果を持つシートを作ってはどうでしょうか?
=IF(NOT(ISNA(VLOOKUP(Sheet1!K10,Sheet2!$K$10:$BH$174,8,FALSE))),VLOOKUP(Sheet1!K10,Sheet2!$K$10:$BH$174,8,FALSE),IF(NOT(ISNA(VLOOKUP(Sheet1!K10,Sheet3!$K$10:$BH$174,8,FALSE))),VLOOKUP(Sheet1!K10,Sheet3!$K$10:$BH$174,8,FALSE),?
こういった感じで、まずは検索結果の値を求めたシートを作って、それを利用してはどうでしょう。
これも長くなるということなら、各検索対象のシート毎に検索結果を持つシートを作ってもよいでしょう。
あと、こういう場合にやっとくと良い事をいくつか。
名前で対応関係が出来ていると間違いが分かりやすいです(検索範囲1と言う名前で検索対象1シートの範囲に名前が付いていて、検索結果1シートで検索対象1を使うとか)。
また、範囲に名前を付けるのではなくて、indirect関数を使ってセル中に指定する方法もあります。
B | C | D | E | F | |
2 | Sheet1 | K | 10 | BH | 174 |
3 | =VLOOKUP(K10,INDIRECT($B$2&"!"&$C$2&$D$2&":"&$E$2&$F$2),8,FALSE) |
とか。
TransFreeBSD様
とても丁寧にご回答いただきまして感激しています。
ご案内の使用例等、大変参考になり、今後応用できればと思います。
簡単に説明しようと、Sheet1に計算結果、Sheet2以降にデータリストとしました。ここに記載の計算式は、1行あたり、43列それぞれの計算結果を求めるうちの、1セルだけを紹介しました。1セル分の計算式がわかれば条件を列ごとに変えるだけですし、せいぜい100行ぐらいですから、列ごと&行ごとにドラッグすればいいと思ったからです。一致するデータはそれらの列と、どこかの行に必ず1つだけあって、どの行かを定めるのにVLOOKを使いました。データリストは今のところ22シートでデータ行も増えるかもしれませんので、かなり余分に範囲指定していますが、計算結果のシートは毎日4シート(3シート+集計表)づつ増える予定ですので、いずれはBOOKも分けなければなりません。その辺から考え直さないとダメかもしれません。