重要なお知らせ

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

電子書籍の厳選無料作品が豊富!

添付の表のようにC2に重量(オンス)があります。
これをもとに、下の表から対応する料金(ドル)をD2に表示したいのですが、
少しうまくいきません。

=VLOOKUP(C2,A7:C28,3)としているのですが、これだと、表示したいひとつ下を
表示してしまいます。

添付の写真の例では、
オンスは22.2オンスです(C2)
A17に20オンスがあるのですが、少し上回っていますので、その下の24オンスに
対応する料金の26.49ドルを表示するようにするにはどのようにすればいいでしょうか?

「VLOOKUPでできますか?」の質問画像

A 回答 (4件)

D2には


=IF(SUM(C2),INDEX(C7:C18,COUNTIF(A7:A18,"<"&C2)+1),"")
などのように記入しておきます。
    • good
    • 0
この回答へのお礼

ありがとうございました。
このようにするとは全然考えられなかったです。
技ですねっ!
助かりました。

お礼日時:2012/08/14 21:46

#2のフォロー、または言い訳!


料金テーブルが規則正しければ、できる程度で一般的ではなかった。

一応、今明示されている範囲であれば、VLOOKUPでもできる。(普通はその先もあるんでしょう...)

=IF(AND(C2<=MAX(A$7:A$18),SUM(C2)),VLOOKUP(IF(C2>8,C2+3,C2),A$7:C$18,3),"計算でけまへん!")

検索値はこれで、(切り上げ整数)

=ROUNDUP(A2/28.35,0)
    • good
    • 0

>=VLOOKUP(C2,A7:C28,3)としているのですが、これだと、表示したいひとつ下を


表示してしまいます。
そうなんですよね。それが仕様です。価格の対応表を工夫します。
私も使いにくいなと思ったことがあります。
ただよく考えて見れば、価格対応表を

  重量範囲
  A列  B列
  0.1  1
  1.1  2
  2.1  3
・・・・
といったように範囲で表を準備しておけとMSは考えているのかなと、勝手に解釈しました。
A列の前に一列挿入して
C8セルに =B7+0.01 とか一列ずれたセルを参照する式を入れては如何でしょうか。

 
    • good
    • 0

既に難しいテクニックで解決してるようですが、あなたの式をちょっとイジルだけでイケマス!


一番の問題は「oz換算」の方です。これは考え方として、料金テーブルに合わせて「整数に切り上げ」にしないとダメ!(多分「ノーマライズ」という筈?)

C2は、

=ROUNDUP(A2/28.35,0)

あと、D2のVLOOKUPの検索の型は「FALSE」「TRUE」どちらでもOK!!

=IF(SUM(C2),VLOOKUP(C2,A7:C999,3),"")

検索の型:
「FALSE」では一致したものを検索する。見つからないときは「#N/A」となる。
「TRUE」は一致したものがなければ、手前を検索する。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
こんな風に考えればできたのですね!!

お礼日時:2012/08/16 19:32

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