• ベストアンサー

ExcelでIFとVLOOKUP

いつもお世話になってます。 WinXPPro Office2003です。 過去ログを調べてたんですがちょっと時間がないので 教えて下さい。 B列に1~11までの数字が入ります。 このうち3.4.8.9だった場合に別シートからVLOOKUPでQ列を参照させて数字を出したいのでうがどうも式の書き方が悪いのか「入力した数式は正しくありません」と出てしまいます。 補足要求はすぐ対応致しますのでよろしくお願い致します。

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

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

=IF(ISNUMBER(FIND(B2,"3,4,8,9")),VLOOKUP(B2,参照範囲,表示列,検索の型),"") 又は =IF(OR(B2=3,B2=4,B2=8,B2=9),VLOOKUP(B2,参照範囲,表示列,検索の型),"")

makirabi
質問者

補足

回答ありがとうございます。 上の式で出来ました。 とても感謝です。 あの、それで差し支えなかったらなんですが #N/Aが表示されない式をお教え頂けたらと(・Θ・;)アセアセ… すいません。もう明後日には異動で時間がなくて(ノ_・、)

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.7

#4です。そうでしたか。予想はずれ。 では、R1セルに =IF(ISERROR(FIND(B1,"3,4,8,9")),"",VLOOKUP(Q1,Sheet6!$Q$1:$R$8,2,TRUE)) をいれ、下に複写してください。該当しない行は空白にしてますが、0にするなら =IF(ISERROR(FIND(B1,"3,4,8,9")),0,VLOOKUP(Q1,Sheet6!$Q$1:$R$8,2,TRUE)) (1)第4引き数が、TRUE型であること。 (2)上記式で$を付けてあるところは$をつけること。

makirabi
質問者

お礼

imogasiさんありがとうございます。 いつもVBAとかで回答されててすごいなぁと思っております。(陰ながら(笑))ここでみなさまに助けて頂いてその後、時間があるときにがんばって勉強しています。何度も繰り返さないとセルや「、」がどこにかかってるかわからないんですよ(ノ_・、) また質問させていただく際にはぜひよろしくお願い致します。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.6

#1です。補足拝見しました。 で、思い出したんですが、範囲で検索して、「要相談」を返したいやつですよね? でしたら、VLOOKUPの第4引数はTRUEです。 他の回答者さんの記述を一部お借りして、X2に =IF(OR(B2={3,4,8,9}),VLOOKUP(Q2,list2,2,TRUE),"") で大丈夫だと思います。 頑張ってくださいヽ(^。^)ノ

makirabi
質問者

お礼

回答ありがとうございます。 もっとがんばって身につけないといつまでも snoopy64 さんのような親切な方々に甘えてしまいますね(笑) 少しずつですが理解してこれました。 また違う職場に行きいまのやり方が通用しなかった場合などには助けていただけたらと思います。 ありがとうございました。

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

#2のmshr1962です。 補足読みました、#N/Aが表示と言うことは検索の型はFALSEか0ですか? TRUEか1にすれば大丈夫だと思いますが... =IF(ISNUMBER(FIND(B7,"3,4,8,9")),VLOOKUP(Q7,list2,2,TRUE),"") Q7に問題が有る場合(未入力、1より小さい等)は =IF(AND(ISNUMBER(FIND(B7,"3,4,8,9")),Q7>=1),VLOOKUP(Q7,list2,2,TRUE),"") で対応できます。

makirabi
質問者

お礼

mshr1962さんありがとうございます。 すごく急いでいたので助かりました。 金額があってるか合わせなければいけなかったので。 応用まで記述して頂いて感謝です。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

サッと見ると、一般的には既回答のパターンのようですが 「別シートからVLOOKUPでQ列を参照させて数字を出したいの」のQ列を参照するにしても、Q1に1-11までの数字が入っているのですか、すると取ってくる値は何列 にあるのでしょうか(R列とか?)。 B列に3とあれば例えばSheet2のQ3の値を取ってくると言う意味ですか。 それなら(こちらの方らしい) =INDEX(Sheet6!$Q$1:$Q$11,B2,1) この例ではSheet6のQ1:Q11に参照テーブルがある例です。 B2が数値の先頭行です。 B列が、3、4、6、9行以外が入っていたら、""にしたいなら =IF(ISERROR(FIND(B2,"3,4,8,9")),"",INDEX(Sheet6!$Q$1:$Q$11,B2,1)) です。

makirabi
質問者

補足

すいません>< 本当に書き方が悪かったです。ごめんなさい ペコm(_ _;m)三(m;_ _)mペコ VLOOKUP(Q7,list2,2,0))となってまして list2には シート2の Q列   R列 1 0 20 15 31 38 101 75 501 113 1001 150 3001 188 10001 要相談 と入ってます。 これでQ列に入った数字に応じてB列を返したいのですが条件がB列に3.4.8.9が入ってるときだけ返したいんです。 シート1に B列    Q列    X列(ここに式入れてます) 1     20     0 3     30     15 2     40     0 4     50     38 3     110     75  このX列に返したいんです。 本当に説明が下手ですいません。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 >どうも式の書き方が悪いのか「入力した数式は正しくありません」と出てしまいます。 その上手くいかない数式を提示しないと、どこを間違えているのか分かりません。 なので、とりあえず、 =IF(OR(B2={3,4,8,9}),VLOOKUP(省略),"") VLOOKUP関数の中身も、どの列が検索列で、何番目の列が参照列なのか分からないので書きようがありません。 (「VLOOKUPでQ列を参照させて数字を出したい」という説明じゃ、分からないということです。)

makirabi
質問者

お礼

maruru01さんありがとうございました。 ご指摘ありがとうございます。^^; 確かに自分がテンパってて助けて欲しくても 伝えたい内容をきちんと整理してなければ お答え頂けないですね(^^;; 補足で説明していくのにうまく考えもまとまってきました。今度からは気をつけてきちんと整理した形で質問させて頂きます。

makirabi
質問者

補足

maruru01さん こんにちわ いつも回答ありがとうございます。 すいません>< 本当に書き方が悪かったです。ごめんなさい ペコm(_ _;m)三(m;_ _)mペコ なんだか考えすぎて頭から煙吹いてます。 ヽ(@◇@)ノ VLOOKUP(Q7,list2,2,0))となってまして list2には シート2の Q列   R列 1 0 20 15 31 38 101 75 501 113 1001 150 3001 188 10001 要相談 と入ってます。 これでQ列に入った数字に応じてB列を返したいのですが条件がB列に3.4.8.9が入ってるときだけ返したいんです。 シート1に B列    Q列    X列(ここに式入れてます) 1     20     0 3     30     15 2     40     0 4     50     38 3     110     75  このX列に返したいんです。 本当に説明が下手ですいません。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

=IF(OR(B2=3,B2=4,B2=8,B2=9),VLOOKUP(B2,Sheet2!O:P,2,0),"") 参考にしてください。 頑張ってくださいヽ(^。^)ノ

makirabi
質問者

補足

すいません>< 本当に書き方が悪かったです。ごめんなさい ペコm(_ _;m)三(m;_ _)mペコ VLOOKUP(Q7,list2,2,0))となってまして list2には シート2の Q列   R列 1 0 20 15 31 38 101 75 501 113 1001 150 3001 188 10001 要相談 と入ってます。 これでQ列に入った数字に応じてB列を返したいのですが条件がB列に3.4.8.9が入ってるときだけ返したいんです。 シート1に B列    Q列    X列(ここに式入れてます) 1     20     0 3     30     15 2     40     0 4     50     38 3     110     75  このX列に返したいんです。 本当に説明が下手ですいません。

関連するQ&A