エクセルのLOOKUP関数で切り上げた数値を返したい

このQ&Aのポイント
  • エクセルの質問についての要点をまとめました。LOOKUP関数を使用して、検査値に最も近い検査範囲を参照し、結果を出す方法について教えてください。
  • また、検査値が検査範囲の数値を1ポイントでも超える場合は次の数値で参照する方法も知りたいです。
  • 質問文が分かりづらいかもしれませんが、よろしくお願いします。
回答を見る
  • ベストアンサー

LOOKUP関数にて切り上げた数値を返したい

エクセルについての質問です。    A    B     C      D   検査値 結果 対応範囲 検査範囲 1  4.7   3.0    3.0      4.6 2  5.1   3.2    3.2      5.0 3  6.2   4.0    4.0      6.1 4  6.8   4.5    4.5      6.7 上のような表があります。 B1の数式は =IF(ISERROR(LOOKUP($B1,$D$1:$D$4,C$1:C$4)),0,LOOKUP($B1,$D$1:$D$4,C$1:C$4)) で現在入力しています。 現状だと、検査値が4.9の場合、3.0を返してしまいます。 1.検査値に最も近い検査範囲(中間の場合は大きい方)を参照して結果を出したい場合の数式 2.検査値が検査範囲の数値を1ポイントでも超える場合は次の数値で参照する場合の数式 ※いずれも検査値が4.6を下回る場合はゼロとする を教えて頂けないでしょうか。 いろいろ調べてみたのですが、わかりませんでした。 質問文も何かとわかりづらいかと思いますが、何卒よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

1については =IF(A2<D$2,"",IF(ABS(INDEX(D:D,MATCH(A2,D:D,1))-A2)<ABS(INDEX(D:D,MATCH(A2,D:D,1)+1)-A2),INDEX(C:C,MATCH(A2,D:D,1)),INDEX(C:C,MATCH(A2,D:D,1)+1))) 2については =IF(A2<D$2,"",IF(A2>MAX(D:D),INDEX(C:C,MATCH(MAX(D:D),D:D,0)),IF(A2>INDEX(D:D,MATCH(A2,D:D,1)),INDEX(C:C,MATCH(A2,D:D,1)+1),INDEX(C:C,MATCH(A2,D:D,1))))) ただしD列の最大値よりも大きなA列の数値の場合にはD列で最大値となっているC列のデータを表示するようになっています。

kaitouok
質問者

お礼

両方にご回答いただきありがとうございます。 急ぎでしたので、一旦コピーして使わせていただきました。 構造や考え方がまだ理解できていませんが、 頂いた式をもとに後程勉強させていただきます。 お忙しいところ本当にどうもありがとうございます。 ※1.2.ともにご回答頂いたというところでこちらの回答をベストとさせていただきました。お詫びではないですが回答評価はお二方ともに押させていただきました。 どうもありがとうございました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >1.検査値に最も近い検査範囲(中間の場合は大きい方)を参照して結果を出したい場合の数式 に対応するために・・・ あまりスマートな方法ではないと思いますが、 ↓の画像のように作業用の列を1列設けます。 作業列F2は単に =E2 F3を =AVERAGE(E2:E3) として、F5セルまでオートフィルでコピー! 最後にB2セルに(せっかく数式をお考えなので、それをそのまま使っています) =IF(ISERROR(LOOKUP(A2,$E$2:$E$5,$D$2:$D$5)),0,MAX(LOOKUP(A2,$E$2:$E$5,$D$2:$D$5),LOOKUP(A2,$F$2:$F$5,$D$2:$D$5))) という数式を入れオートフィルで下へコピーではどうでしょうか? ※ 検証していませんので、ご希望通りの表示でなかったらごめんなさいね。m(_ _)m

kaitouok
質問者

お礼

さっそくのご回答ありがとうございます。 1.検査値に最も近い検査範囲~ に関しては、完璧にできました! 急ぎだったので大変助かりました、どうもありがとうございます。

関連するQ&A

  • LOOKUP関数について

    現在、次のようなエクセルのシートを作成中ですが、どうしても、上手くいかないものですから教えていただけませんでしょうか。    A    B    C    D 1 7日間  0.7  7日間  0.1 2          15日間  0.2 3          1ヶ月間  0.3 4 2ヶ月間 0.4 5          3ヶ月間  0.5 6          4ヶ月間 0.6 7          7ヶ月間 0.7 上記のシートを作成しているのですが、A1のセルに7日間と打ち込めばLOOKUP関数にて0.1とB1に出力させたいのですがどうしても、7ヶ月間の0.7が出力されるなど、上手く拾ってきてくれないのですが、関数式について教えてください。 ちなみに  =LOOKUP(A1,C1:C7,D1:D7) といった数式を入れてみております。Cの欄などは文字列に設定してみたりもしております。  

  • IF関数が長くて、実行できない。

    関数初心者です。Excel2003を使用しております。 ~目的~ IF関数が長くなり、実行することが出来ない。 VLOOKUP関数の複数範囲の中から検索できる数式を作成したい。 ~状況~ ・VLOOKUP関数で複数の範囲を指定している。 ・各範囲は_コード表という名前の定義付けをしており、_コード表1~12まである。 ・_コード表12までの複数範囲の中から検索できる数式を作成したい。 =IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),"",VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)) 上記の数式で検索が出来るのですが、 _コード表12までになると、関数が長すぎて実行できません。 何か良い方法はありませんでしょうか。 ご回答をお待ちしております。

  • 関数や lookupで取り出した 数値 文字を 固定したい

    関数や lookupで取り出した 数値 文字を 固定したい    A 列 B列 C列    A1 5   B1 6 C1 =A1+B1(11数値)の 式を消して 11の数字を固定するには どうすれば いいでしょうか?  

  • LOOKUP関数について

    電車の料金表があったとします。   A   B  C  D 1    横浜 渋谷 新宿 2 大阪 100  120 150 3 梅田 120  200 250 4 京橋 150  300 400 始発を列にして所持金180円だとするとどこまで、 行くことが出来るか?という問題です。 A9=梅田 A10=180 とすると =LOOKUP(A10,OFFSET(B1,MATCH(A9,A2:A4),0,1,3),B1:D1) というところまでは分かったのですが、もしここで 駅が増えてしまった場合(始発駅でも終着駅でも)にどのように数式を変化させたらいいのか分かりません。 どなたか、この問題を解いてくださ~い。 よろしくお願いします。

  • 限定範囲内の数値に対するRANK関数について

    エクセルについての質問です。    A  B   C  D 1    11 22 33 2    10 20 30 3    15 25 36 4    12 24 36 5    18 27  A列にRANK関数を使い「順位を入れたい」のです。 ただし以下のような決まりがあります。    (1)D列にて値が33以上の数値を対象とし、    (2)B列の数値を降順にランク付け 結果としては以下のようになる数式を目指していますがそのような関数はできますでしょうか。    A   B   C  D 1  3  11 22 33 2     10 20 30 3  1  15 25 36 4  2  12 24 36 5     18 27  対象がD列だけの数式でしたら 例えばA1のセルに  =IF(OR(D1<33,D1=""),"",RANK(D1,$D$1:$D$5,FALSE)) と入力し、他のA列へコピーすれば良いと思うのですがさらにその結果を対象とした数式がどうにもよくわかりません。 お分かりの方いらっしゃいましたら教えて頂けますでしょうか。

  • エクセル IF関数について

    エクセルのD列に =IF(ISERROR(B5/C5),0.6,IF(B5/C5>=1,1,B5/C5)) 上記の数式を入力してあります。これに加え、B5/C5が0になるとき、60%になるようにはできますか?

  • EXCELでLOOKUPがうまくいきません。

    EXCEL2000です。解説書を見ながら、検索関数のVLOOKUPと LOOKUP関数を比較していたのですが、VLOOKUPだとうまくいくのですが、LOOKUPだと望むべき答えが出ません。D列にC列の値をA1:B4の表から参照するという簡単なものです。 この式で、単純に答え(D欄)が1、2、3、4となるべきだと思うのですが・・以下の具合です。  A B C D 1○ 1 ○ =LOOKUP(C1,$A$1:$A$4,$B$1:$B$4)答4  2× 2 × =LOOKUP(C2,$A$1:$A$4,$B$1:$B$4)答2 3△ 3 △ =LOOKUP(C3,$A$1:$A$4,$B$1:$B$4)答3 4□ 4 □ =LOOKUP(C4,$A$1:$A$4,$B$1:$B$4)答2 どこがおかしいのでしょうか?よろしくご指導ください。

  • エクセルの関数LOOKUPなどについて

    Office2007のエクセルに関して質問です。 関数の挿入のfxを押してLOOKUP関数を入れたときに 検査値をセル指定をし、そのセルの中の数字で検索したいのですが、なぜかできません。 直接数字を入れればできるのですが、それでは関数を使う意味がないので・・・。 fxでのLOOKUPのダイアログで検査値を セル指定をした場合="数値" 直接数値を入力した場合=数値 となるので、「""」がおかしいのかと思うのですが「""」を外すこともできず困っております。 初心者の質問で恐縮ですが、お答えいただければと思います。

  • IF関数について教えてください。

    IF関数について教えてください。    A    B    C    D     1              ここの関数     この場合D1の数式をご教授お願いします。   もしA1に数値を入力した場合は「C1+A1」、もしB1に数値を入力した場合は「C1-B1」   おそらく2つのIFがあるのはわかるのですができません。      よろしくお願いいたします。

  • エクセル2003のLookup関数について

    検査範囲(D2:D5)に県名のリストを作成し、対応範囲(E2:E5)に例えば人口を入れるとします。 F2セルに県名を入力してG2セルに人口を表示するために、G2セルに[=LOOKUP(F2,D2:D5,E2:E5)]と入力します。ところがこれだけではうまく作動しません。いろいろ実験してみると、検査範囲のデータが昇順に並んでないとだめなようです。そこで検査範囲を昇順に並び替えてやってみたのですが、それでもうまくいきません。県名をローマ字にすればうまくいくのですが、漢字ではうまくいきません。 どうすればいいのでしょうか。Lookup関数以外の方法があるでしょうか。 よろしくお願いします。

専門家に質問してみよう