Excel関数Lookupで幅のある数字を検索する方法

このQ&Aのポイント
  • ExcelのLookup関数を使用して、幅のある数字を検索する方法を教えてください。
  • テーブルの検査範囲に幅を持たせて、その幅の範囲内に検査値が該当した場合に、Lookup関数を使用してB列のセルに1~3までの数値を反映させたいです。
  • データが5000以上あるため、関数を使用して実行したいと考えています。具体的な手順を教えてください。
回答を見る
  • ベストアンサー

Excel 関数 lookup 幅のある数字の検索

Excel関数のLookupの使い方についてですが、 以下のように、テーブルの検査範囲に幅を持たせて、 その幅の範囲内に検査値が該当した場合、 B列のセルに1~3までの数値をlooup関数で反映させたいと考えていますが、 どうすればいいのでしょうか? ※実際のデータは5,000以上あるので、関数でやりたいと考えています。 ぜひご教示お願いします。 A(検査値)    B 1   0.15       1 2  0.99       3 3  0.31       2 4  2.00       3 --------------------------- テーブル 検査範囲   対応範囲 0.00~0.30     1 0.31~0.50     2 0.51~       3

  • mcse
  • お礼率55% (148/266)

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

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

例えばテーブルをシート2に作るとしてA2セルには0、A3セルには0.31、A4セルには0.51のように入力し、B2セルには1、B3セルには2、B4セルには3と入力します。 その上でシート1のA1セルから下方に検査値が入力されているとしたらB1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",VLOOKUP(A1,Sheet2!A:B,2,TRUE))

mcse
質問者

お礼

ご回答ありがとうございました! 具体的な式も教えていただきましてありがとうございます。 希望の結果が出ました! 大変ありがとうございました!

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

添付図のように、例えばD:F列に対応表を準備します。 B2には =IF(A2="","",VLOOKUP(A2,D:F,3)) と記入し、以下コピーしておきます。 VLOOKUP関数の「第4引数」を記入しない使い方で使うので、間違えないよう注意してください。 #参考 対応表のE列は、見た目のために用意しているだけで実際には計算には使っていません。 現実には、たとえば検査値としてたまたま「0.305」なんて数字が来てしまった場合、「以上~以下」じゃ正しくありませんね? 本来こういうのは「以上~未満」で区分けをするべき所で、寄せられた回答はいずれもそういう前提です。

mcse
質問者

お礼

ご回答ありがとうございます。 とても丁寧な回答で大変分かりやすかったです。 まだ別のやり方があるんですね! とても勉強になりました。

  • -9L9-
  • ベストアンサー率44% (1088/2422)
回答No.1

求める値が3種類しかないならIF関数のほうが簡単で面倒がないと思いますが、いちおうLookup関数(vlookup())でやる場合のことを言えば、4番目の引数(検索の型)にTRUEを指定すればいいということになります。具体的な処理方法については次のサイトを参照。 http://kokoro.kir.jp/excel/vlookup-true.html

mcse
質問者

お礼

ご回答ありがとうございます。 なるほど、VLOOKUP関数を使うんですか!! 参考URLに参考になりました! 誠にありがとうございました。

関連するQ&A

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

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

  • エクセル関数LOOKUPについて教えてください

    たとえばC1セルに「=LOOKUP(F3,物量!A4:A468,物量!H4:H468)」と書きます そしてこのセルから下にドラックして同じような内容の関数をつくりたいのです。 この場合の関数は「検査値」(この場合F3)だけ追加(つまりF4,F5,F6・・)してあとの「検査範囲」と「対応範囲」はこのC1にかいた範囲のままにしたいのです。 ただドラックだけだと「検査範囲」「対応範囲」も増加してしまうのですが、どなたか簡単につくれる方法教えてください。

  • Excel関数について(lookupなど)

    A列とB列にそれぞれ商品コード(A列)、数値(B列)が入っているリストがあります。(コードと数値はそれぞれ関係があり、このコードにはこの数値、というルールがある) 1)セルD4にそのコードが入ったら、セルE10に該当する数値が入るようにしたいんです。 2)但し、セルD4に入るコードは、リストにはないコードも存在する。その場合、セルE10には何も表示させたくない(エラーも非表示にしたい) という場合、どういう関数を使えばいいのでしょうか。 1)まではLOOKUPかVLOOKUPでできるようなのですが、2)の場合の表示がうまくいきません。 説明が下手で申し訳ないのですが、どなたかお分かりになるかた教えてください。

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

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

  • エクセルのFIND関数の複数セル参照について

    C4=LOOKUP(0,0/FIND(B4,テーブル1[アドレス]),テーブル1[名称])  「テーブル1」の「アドレス」列を部分一致で検索し、「B4」セルの文字列に該当する項目があったら、「テーブル1」の「名称」列のデータを「C4」セルに表示するよう、インターネット上の情報を参照しながら数式を組んでいます。  ところが、「B4」セルの文字列に該当する項目があるときはいいのですが、該当項目がない場合は「#N/A」と表示されるため、「IF」関数を追加し、以下のようにしたところ、うまく動きませんでした。 C4=IF(COUNT(FIND(B4,テーブル1[アドレス])),LOOKUP(0,0/FIND(B4,テーブル1[アドレス]),テーブル1[名称]),"未使用")  「数式の検証」で調べたところ、「LOOKUP」関数内の「FIND」関数は「テーブル1」の「アドレス」列の各セルをそれぞれ参照しているのに対して、「COUNT」関数内の「FIND」関数は同じ行(C4の場合は4)の「テーブル1」の「アドレス」列しか参照していませんでした。 「LOOKUP」関数内の「FIND」関数のテーブル1[アドレス]: {"アドレス1";"アドレス2";"アドレス3"} 「COUNT」関数内の「FIND」関数のテーブル1[アドレス]: "アドレス4"  参照内容が異なるのはなぜでしょうか。  この場合、どのようにすればよろしいのでしょうか。  また、「LOOKUP」関数は「旧バージョンとの互換性を維持するためのもの」となっており、代わりに「VLOOKUP」や「HLOOKUP」、「MATCH」関数などで代用はできないのでしょうか。  何卒ご教示よろしくお願いいたします。

  • EXCELの関数探してます、lookupのような

    A列に1,10,20,30とありB列に200,300,400,500とある場合を想定します LOOKUP関数を使い、1のときは200、10の時300,20の時400のように値を出したいとします。つまり横の値。 LOOKUP関数を使うと2,3,4,5,6,7,8や11,12,13~19などの検査値で不完全一致の場合の値を出すとき、 2,3,4,5,6,7,8のときは1の値の200がでて、11,12,13~19の時は10の値の300が出ますよね ようはその値より上の値の数字をだしてくれるんです。14なら300,26なら400,39なら500のように 質問は下の値を出してくれるLOOKUPのようなものはありませんか?14なら400,26なら500のような

  • エクセルの関数の使い方(ルックアップ?)

    エクセルの関数の使い方(ルックアップ?) 例えばシートが2枚あります。 ・1シート目 A列に 1 2 3 4 5 と並べます。 ・2シート目 A列に 3 5 と並べます。 この時、2シート目のA列に該当する数字が1シート目のA列に存在した場合、 1シート目のB列(A列の横)に○又は1を入力したいです。 どうすればできるでしょうか?

  • 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関数にて切り上げた数値を返したい

    エクセルについての質問です。    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を下回る場合はゼロとする を教えて頂けないでしょうか。 いろいろ調べてみたのですが、わかりませんでした。 質問文も何かとわかりづらいかと思いますが、何卒よろしくお願い致します。

  • エクセル lookup関数 等について

    lookup関数 等は、検査値を特定の範囲から探す際、 その特定の範囲内でデータを昇順に並べておく必要が ありますが、昇順に並べなくても良い方法はありますか?

専門家に質問してみよう