- ベストアンサー
エクセルのVLOOKUPで困っております
エクセルを使用して表1のような原価計算表を作っております。 単位と単価については別シート(表2)から引っ張ろうとしております。 表1の材料名をキーに表2から単位、単価を引っ張ってこようと表1の 単位、単価にVLOOKUPを使用してみたのですが正しい値を引っ張って こず表1のように「牛乳」を表2の「たまねぎ」から「卵」を「紅茶」 からそれぞれ別の行の値を引っ張ってきてしまいます。ちなみに式は表 1のC2でしたら=IF(A2="","",VLOOKUP(A2,表2!A:C,2,1))、D2でしたら =IF(A2="","",VLOOKUP(A2,表2!A:C,3,1))、といれております。 おそらく単純なミスかと思いますが、自分では見当がつきません。ど こがおかしいのか教えていただきたくお願いいたします。 表1 A B C D E 1 材料名 量 単位 単価 金額 2 牛乳 0.7 1個 50 35 3 卵 20 1杯 20 400 表2 A B C 1 いか 1杯 120 2 牛乳 1L 180 3 卵 1個 20 4 たまねぎ 1個 50 5 紅茶 1杯 20
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
=IF(A2="","",VLOOKUP(A2,表2!A:C,2,1)) 表2!A:Cは、定義した名前ですか? 定義した名前の場合は、最後の「1」を「0」又は「FALSE」にすればいいのでは 表2!は、シート名? A:Cは、セル番地ですか? セル番地は行番号までを入力し絶対参照とすべきでは 表2をシート名とした場合次のようにすべき =IF(A2="","",VLOOKUP(A2,表2!$A$1:$C$5,2,FALSE)) =IF(A2="","",VLOOKUP(A2,表2!$A$1:$C$5,3,0))
その他の回答 (3)
- hotosys
- ベストアンサー率67% (97/143)
「検索の型」をFalseか0にする。(完全に一致する) 例えば C2=IF(A2="","",VLOOKUP(A2,表2!A:C,2,1)) を C2=IF(A2="","",VLOOKUP(A2,表2!A:C,2,False)) または C2=IF(A2="","",VLOOKUP(A2,表2!A:C,2,0)) に D2も同様。 p.s. 「表2」はシート名ですね。
お礼
ご回答ありがとうございました。 解決いたしました。 おっしゃる通り表2はシート名です。 大変勉強になりました。
- hiro-ss16
- ベストアンサー率42% (18/42)
表1のC2の式 =IF(A2="","",VLOOKUP(A2,表2!A:C,2,1)) は何か変ですね。sheet2 でも表に名前を定義したときは ! マークはいらないのではないかと思いますし、A:c は何のいみでしょうか? 表1のC2の式は下記で良いかと思います。後は式を下にコピーで。 =IF(A2="","",VLOOKUP(A2,表2,2,0)) これでやってみてください。
お礼
ご回答ありがとうございました。 表2はシート名も表2としております。 「表2!A:C」の部分は手入力したのではなく、 入力時に表2のタブをクリックし表がある列AからCをドラック したらこのような結果となりました。 私のやり方が悪いのかもしれませんが、 =IF(A2="","",VLOOKUP(A2,表2,2,0))をいれてみたところ、 #NAME? と表示されてしまいました。
- grapemint
- ベストアンサー率50% (1/2)
表2のキー列が昇順にソートされていないと正しく値が返りませんので、ソートしてください。
お礼
早速のご回答ありがとうございます。 表2にてデータ→並べ替え→昇順という手順で並べ替えてみたところ、やはり別の行を引っ張ってきてしまいました。
お礼
ご回答ありがとうございました。 最後の「1」を「0」又は「FALSE」で解決いたしました。 セル番地を絶対参照にするというアドバイスも取り入れたいと思います。