重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

下表のような単価表があります。

[商店品名別単価表]
商店   品名   単価
松坂屋  アイス  300
松坂屋  ケーキ  100
三越   アイス  200
三越   ケーキ  250

この表を使って、下表の単価?欄を求めたい。
[購入記録]
年月日   商店  品名  単価?
2003/10/1 松坂屋 ケーキ
2003/10/2 三越  ケーキ
2003/10/3 松坂屋 アイス
2003/10/4 松坂屋 アイス
2003/10/5 三越  ケーキ
2003/10/6 三越  ケーキ
2003/10/7 松坂屋 アイス

VLOOKUPでいろいろやっていますができません。名案を教えてください。VLOOKUPにはこだわりません。
ただし、商店と品名を同一セルに入れるなどの修正はしたくありません。

A 回答 (2件)

>=VLOOKUP(C2,IF(Sheet2・・・では解が#N/Aとなります。


>=SUMPRODUCT((Sheet2・・・では解が0となります。
まず、VLOOKUPの方は、ちゃんと配列数式になっていますか?
(数式の両端に「{}」が付いているはずです。)
で、VLOOKUPの方で「#N/A」、SUMPRODUCTの方で「0」になるのは、データが見つからないということだと思います。
それで、確認して欲しいのですが、
まず、商品・品名・単価の列について、
[商店品名別単価表]では、
A列:商店
B列:品名
C列:単価
で、[購入記録]では、
A列:年月日
B列:商店
C列:品名
D列:単価
とずれています。
また行は双方とも"2行目"からです。
さらに、データ内容が一字一句あっている必要があります。
余分な文字やスペースがあるとか、全角と半角なども別と判断されます。

なお、質問欄の内容をExcelに貼り付けて当方で確認したところ、上手く表示されました。
    • good
    • 0
この回答へのお礼

できました!!
購入記録をSheet1に作成せずにSheet2に作成していたのが誤りでした。
VLOOKUPもSUMPRODUCTも正しくできました。関数・引数の意味はこれから勉強します。有り難うございました。
(外出していてお礼が送れました)

お礼日時:2003/10/01 20:25

こんにちは。

maruru01です。

商品名別単価表がSheet2のA1~C5(1行目は項目名)にあるとします。
購入記録は、単価がD2~とすると、D2に、

=VLOOKUP(C2,IF(Sheet2!$A$2:$A$5=B2,Sheet2!$B$2:$C$5),2,FALSE)

と入力して、[Ctrl]+[Shift]+[Enter]で決定します。
(数式の両端に「{}」が付いて、配列数式になります。)
そして、下の行へコピーします。

または、D2に、

=SUMPRODUCT((Sheet2!$A$2:$A$5=B2)*(Sheet2!$B$2:$B$5=C2),Sheet2!$C$2:$C$5)

と入力して、下の行へコピーします。
(こちらは配列数式ではない通常の数式です。)
なお、SUMPRODUCT関数の方は、単価表に商店と品名が同じ組み合わせが複数あると、正しい結果を返しません。
    • good
    • 0
この回答へのお礼

早急にご回答有り難うございます。早速やってみましたが、うまくゆきません。

=VLOOKUP(C2,IF(Sheet2・・・では解が#N/Aとなります。
=SUMPRODUCT((Sheet2・・・では解が0となります。
《式は、ご回答の式をペーストしましたので誤入力はないと思うのですが・・・》

ご回答の関数の引数の中で、購入記録の商店,品名を参照していないのは何故でしょうか?

お礼日時:2003/10/01 14:23

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