- ベストアンサー
入力された数値を、表から検索して表示させる方法
こちらのサイトで検索しましたが、見つける事ができずに投稿させていただきました。よろしくお願いいたします。 運賃についての表があります。 A B 1 0~10 9,350円 2 10~20 10,000円 3 20~30 10,750円 4 30~40 11,500円 5 40~50 12,100円 6 50~60 12,750円 7 60~70 13,050円 8 70~80 13,800円 9 80~90 14,500円 10 11 ( 15.6 ) ( ) それで、あるセル例えば「A11」に、キロ数15.6と入力した場合、 先の表A1~B9から検索して、「B11」に10,000円と表示させるには どのようにしたら良いのでしょうか? 通常、こうした検索はVLOOKUPを使う場合が多いと思いますが、 今回の場合10~20までというように、範囲内の数値を表から検索して表示させたいのですが・・ 下手な文章で申し訳ございません、どなたかよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 まず、数値範囲を1つのセルに、 「10~20」 のように記入するのは止めて、 「10」「~」「20」 をばらばらに入れましょう。 つまり、 A B C D 0 ~ 10 9,350円 10 ~ 20 10,000円 ・・・・・・・・・・ という風にします。 次に、境界の値はどうなるのでしょうか? 例えば「10~20」は、 (1)10以上20未満(10を含み、20は含まない) (2)10より大きく20以下(10は含まず、20を含む) のどちらでしょうか? もし(1)なら、VLOOKUPで、 =VLOOKUP(A11,$A$1:$D$9,4) と出来ます。 (2)の方なら、 =INDEX($D:$D,COUNTIF($A$1:$A$9,"<"&A11)) という風にすれば出来ます。 なお、どちらの場合でも表はA列の昇順に並んでいる必要があります。
その他の回答 (2)
- tascany
- ベストアンサー率48% (15/31)
「10~20」が、「10超20以下」の意味だとすれば、たとえば、 =VLOOKUP(JIS(ROUNDUP(A11,-1)-10)&"~"&JIS(ROUNDUP(A11,-1)),A1:B10,2) 同「10以上20未満」の意味だとすれば、たとえば、 =VLOOKUP(JIS(ROUNDDOWN(A11,-1))&"~"&JIS(ROUNDDOWN(A11,-1)+10),A1:B10,2) なお、「10~20」等の数値の部分が半角なら、JIS関数(引数の文字列を全角に変換してくれる)は不要です。つまり、 =VLOOKUP(ROUNDUP(A11,-1)-10&"~"&ROUNDUP(A11,-1),A1:B10,2) などとすればいいです。
お礼
ご返答ありがとうございました。非常にわかり易くご説明いただき、本当に勉強になります。今後も今日頂いた知識を生かして仕事に励みたいと思います。今回は「すぐに返答を」で投稿させていただきましたので、ポイントを付けることが出来なく心苦しいですが、誠にありがとうございました。
- AloneAgain
- ベストアンサー率71% (285/400)
こんにちは。 VLOOKUP関数 でできます。 ただし、運賃表のA列には "0~10"なら"10"、"10~20"なら"20"というように、 範囲を指定するのではなく、その範囲の最大の値だけを入力してください。 運賃表を修正した上で、B11セルに↓のように数式を入れてください。 -------------------------------- =VLOOKUP(A11,$A$1:$B$10,2,TRUE) -------------------------------- 最後を TRUE にすれば検索値が見つからないとき、 検索値未満の最も近い値を探してくれます。 また、A11が空白のときはB11に"#N/A"というエラーが出ますが、 このエラーを表示させたくなければ、IFを使って↓のようにしてください。 --------------------------------------------- =IF(A11="","",VLOOKUP(A11,$A$1:$B$10,2,TRUE)) ---------------------------------------------
お礼
早速のご返答ありがとうございました。お蔭様をもちまして無事解決いたしました。誠にありがとうございました。
お礼
早速のご返答ありがとうございました。参考になりました。