プロが教えるわが家の防犯対策術!

A列に商品コードを書いたシートがあります。
B列に納入率を"Sheet2"からVLOOKUPで呼び出す場合、
B2には下記のような数式を入れましたが、うまく表示されません。
=IF($A2=Sheet2!$A$1:$A$6,VLOOKUP($A2,Sheet2!$A$1:$B$6,2,FALSE),65&"%")
求めたいのは、D,Eの場合はそれぞれ納入率○%、
それ以外の場合は、65%ですが、上記の数式では、全て65%で表示されてしまいます。
どの部分がおかしいのかご指摘をお願いします。

・納入率65%以外のものが少なく、それ以外の商品コードが大量にあるため、できれば全商品コードのマスタは作成したくない。
・今後、納入率65%以外が増えることを想定している(最大20個くらい)、のでIF関数では対応できない(ネストが7個までのため)。

"Sheet1"
   A       B
1 商品コード納入率
2   A      
3   B      
4   C      
5   D      
6   E    

"Sheet2"
  A   B
1  D  60%
2  E  70%
          ※DE以外は65%

A 回答 (3件)

$A2=Sheet2!$A$1:$A$6の部分が配列であり、IF関数ではできません。


次の方法は如何でしょうか。
=IF(COUNTIF(Sheet2!$A$1:$A$6,$A2),VLOOKUP($A2,Sheet2!$A$1:$B$6,2,FALSE),65&"%")
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
色々な方法があるのですね。
参考にさせていただきます。

お礼日時:2008/05/26 13:15

=IF(ISERROR(VLOOKUP($A2,Sheet2!$A$1:$B$6,2,FALSE))=FALSE,VLOOKUP($A2,Sheet2!$A$1:$B$6,2,FALSE),65&"%")



にしてはどうでしょうか?
$A2=Sheet2!$A$1:$A$6 では、一致するものがあるかどうかの確認ができないので、VLOOKUP関数で一致するものを探してエラーが出なければ、VLOOKUP($A2,Sheet2!$A$1:$B$6,2,FALSE)を、そうでなければ65%を返させてます。
最後の65&"%"は、0.65の方がよいかもしれないですね。

http://pc.nikkeibp.co.jp/article/NPC/20070522/27 …
    • good
    • 0
この回答へのお礼

ご丁寧な回答ありがとうございました。
この数式を試してみようと思います。

お礼日時:2008/05/26 13:14

とりあえず、作ってみましたがこれで動きませんか?



=IF((IF(ISERROR(MATCH(A2,Sheet2!A$2:A$3)),0,MATCH(A2,Sheet2!A$2:A$3)))>0,VLOOKUP(A2,Sheet2!A$2:B$3,2,FALSE),65%)
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
この数式で動きました。ありがとうございます。

お礼日時:2008/05/26 13:13

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