- ベストアンサー
エクセルのVLOOKUP関数
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
LOOKUP系の関数やMATCH関数などで完全一致型以外の検索を行う場合は、該当するデータを探すときに二分検索を行います。 たとえば5つのデータが並んでいる場合は、その真ん中の3つ目のセルを最初に検索し、この値が検索値より大きいか小さいかによって(文字列の場合は文字コード順の大小になります)、小さければより後のデータの中間のセル(4番目のセル)を検索し、大きければ前のデータ(2番目のセル)を検索し、さらにこれらの値と検索値との大小を判定して移動する方向を決め、該当のセルを求める仕組みになっています。 今回のケースでは3つのデータですので、最初に真ん中のセルの大小を判定することになりますが、前者の2つのケースは真ん中のデータがいずれも検索値よりも大きいパターンになりますので1つ目のデータを検索することになりますが、これも検索値より大きいため、該当データがないことになります。 一方、最後のデータでは、真ん中のデータが検索値よりも小さいので、3つ目のデータを検索することになり、このデータが返されることになるわけです。 このような基準でデータの中から検索値を探してきますので、データを昇順(MATCH関数では降順もあり)に並べておく必要があるわけです(完全一致で検索する場合には並べ替えておく必要はありません)。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7940)
VLOOKUP関数の第4引数をTRUEにして計算させている場合、検索対象範囲(C1:C3)を正しく「昇順」に並べ替えておかないと、エラーや「保証されない結果」が計算されてしまいます。 ご質問で試されたいろいろな値を実際に「昇順」で並べ替えてみると、エクセル的には添付図右上段のような大小関係になります。 左上段のように昇順に揃っていないデータからでは、左下の計算例のように例えジャスト値であってもエラーで計算できなかったり、あるいは間違った計算結果になります。
お礼
ありがとうございました
関連するQ&A
- エクセルのIF関数とVLOOKUP関数について教えてください。
A B C 1 A1 B1 C1 2 A2 B2 C2 ・ ・ ・ 上記のような表があり、セルX、Yに入力した値が2つの条件に合致した場合、セルZにC列の値を返すような数式を作っています。 たとえば、セルXの値がA1より小さく、かつ、セルYの値がB1より小さい場合にはセルZにC1の値を表示する、という数式を作りたいのです。 (ちなみにAn、Bn、Cnにはそれぞれ数字が入ります) =IF(AND(X<=A1,Y<=B1),C1,IF(AND(X<=A2,Y<=B2),C2,・・・ AND関数を利用してこのように数式を入れると、途中まではうまくいくのですが、引数が多いため途中からエラーが出てしまいます。 (引数の数は10個以上あります) IF関数とVLOOKUPを組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。 エクセル初心者で恐縮ですが、どなたか詳しい方いらっしゃいましたらご回答よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- vlookup関数について
vlookup関数について教えてください。 A B C D E 1 あじ りんご 2 さば みかん 3 さんま ばなな という内容で、D1セルに入力した内容に応じてE1セルに内容を転記させていました。 E1=VLOOKUP(D1$A$1$B3,2,FALSE) 上記で運用していたときはうまくいったのですが、 Cの列にも文字をいれ、E1セルにはCの内容を検索して、B列の内容を転記したいと 思って作りかえるとうまくいきません。 今回の新しいやり方では、 ・A列からの検索はいらない(でも他ファイルから参照されているので、削除、移動はできない) ・E1=VLOOKUP(D1$A$1$C2,2,FALSE)では #N/A となる ・A列からの検索がいらないから、E1=VLOOKUP(D1$B1$C2,1,FALSE) でも #N/A 調べてみたのですがわからなくて・・・ どこがおかしいのか、教えてください。宜しくお願いします。
- ベストアンサー
- 財務・会計・経理
- EXCEL VLOOKUPで含む検索
_| A | B | C | | Z | 1 |赤いイチゴ |みかん |\30 | | | 2 | |リンゴ |\50 | | | 3 | |イチゴ |\80 | | | A1に検索値(例:赤いイチゴ)を入力すると、検索範囲(B:C列)のっている単語が含まれていれば値段をZ1に表示したいのですが、うまくいきません。 検索値が一致ならば、=VLOOKUP(A1,$B:$C,1,FALSE)だとおもうのですが、=VLOOKUP("*"&A1&"*",$B:$C,1,FALSE)だと#N/Aエラーが出ます。 どなたか、知恵をお貸しください。
- 締切済み
- オフィス系ソフト
- 【エクセル】 VLOOKUPについて
エクセル関数の VLOOKUPは範囲選択した表の左端の列しか検索対象に出来ないのでしょうか? 例えばSheet1に↓のような表があって A B C D E 1 機種名 購入日 シリアルNo メーカー名 ・・・・ 2 X 07/01/01 123X LLL 3 Y 07/02/03 456Y MMM 4 Z 07/05/21 789Z NNN 5 ・・・ 6 ・・・ Sheet2に↓のような表を作って、 A B 1 シリアルNo 機種名 2 456 3 789 4 123 5 432 B列にVLOOKUPでsheet1の表から、シリアルNoに対応する機種名を表示 させることは出来ますか? 特にVLOOKUPにこだわってるわけではないので、他の方法でも出来る のであれば良い方法を教えてください。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのVLOOKUP関数の検索値が数式の場合について
エクセルのVLOOKUP関数に悩んでいます。 どなたかご指導お願いいたします。 *--------------------------* A~F列 すべて書式が時刻です。 A、B列には数式で計算された時刻が入力されており、 C列はA列+B列という計算式がはいっています。 F列に=VLOOKUP(C列、D:E列、2、FALSE)というように C列を検索値とし、D列を参照し、E列にある時刻をF列に 設定したいのですが、結果が#N/Aになります。 例えばA,B列が数式ではなく入力した値であれば 検索値であるC列がA列+B列 でも結果はOKでした。 検索値は数式セル同士を足し算した数式は設定不可能なのでしょうか?
- ベストアンサー
- その他([技術者向] コンピューター)
- vlookup関数
vlookup関数 book1に犬シートと猫シート、結果シートがあるとします。 犬シートのA1セルに"イヌ"というデータがあり、 猫シートのC1~C9セルに"ネコ"、C10セルに"イヌ"というデータがあります。 で、結果シートのA1セルに、 =VLOOKUP(犬!A1,猫!C1:C10,1,FALSE) という関数を入力すれば結果として"イヌ"が表示されると 期待したんですが、#N/Aとなってしまいます。 どうすればいいんでしょうか。
- ベストアンサー
- その他MS Office製品
- Vlookupの応用?
通常、VLOOKUPを使い、検索する場合は、 =VLOOKUP(検索値,範囲,列位置,検索の型)となると思います。 このうち、検索値と範囲(の左端)、列位置をどこかのセルから取得するにはどのようにすればよいでしょうか? たとえば、 A1セルには1と入力(A列を参照)、B1セルには2と入力(B列を参照)、C1セルには3と入力すると、 A3セル=VLOOKUP(A3,B:Z,3,false) となるようにしたいのですが、どのようにすればよいでしょうか。 お願いします。
- ベストアンサー
- その他MS Office製品
- 【エクセル】VLOOKUPが上手くいきません。。。
VLOOKUP関数がうまくいかないので教えてください。 下のような表になっています。 A B C D E F 1 番号 名前 コード 2 11-2345 ABC 11 #N/A 11 あああ 3 22-3456 DEF 22 #N/A 22 いいい 4 33-4567 GHI 33 #N/A 33 ううう 5 44-5678 JKL 44 44 えええ 6 ・・・・ ・・・ 55 おおお 7 ・・・・ ・・・ 66 かかか A、B列はがもとから打ち込んであるデータです セルC2は =LEFT(A2,2) でA列のハイフンの前を表示しています。 セルD2に =VLOOKUP(C2,$E$2:$F$7,2,FALSE) を入れると#N/Aが表示 されます。ちなみに、セルC2にLEFT関数ではなくて、数字をそのまま、 11と入力すると、セルD2に「あああ」と表示されます。どこがいけない のでしょうか? $E$2:$F$7はC列の二桁の数字に対応するコードの表になっています。 エクセル2003を使っています。
- ベストアンサー
- オフィス系ソフト
- EXCELのVLOOKUP関数の特殊な使い方を教えてください。
初めて投稿しますので、宜しくお願いします。 最近会社でエクセルの表を作って欲しいと言われたんですが、元々エクセルとかはあまり得意ではないので苦戦しており、いろいろ調べても解決できなかったのでこちらでご相談させていただきます。 質問内容 EXCELにて型式一覧の表から当てはまる値を自動的に抜き出したい。 セルは以下の通りです。 | A | B | C | D | |------|-----|-------| 1 | 型式番号 | 型式 | 値 | |------|-----|-------| 2 | | | max | 10 | | | |-------| 3 | 01 | a | min | 20 | | | |-------| 4 | | | ave | 30 | |------|-----|-------| 5 | | | max | 40 | | | |-------| 6 | 02 | b | min | 50 | | | |-------| 7 | | | ave | 60 | |------|-----|-------| 8 | | | max | 70 | | | |--------------| 9 | 03 | c | min | 80 | | | |-------| 10| | | ave | 90 | |------|-----|-------| 検索用 | A | B | C | D | |------|-----|-------| 15| 型式番号 | 型式 | 値 | |------|-----|-------| 16| | | max▼| 10 | |------|-----|-------| 上記の検索用のセルに入力したときに自動的に表示できるようにしたいのが今回の質問です。 手順と条件 1.A16の所は型式番号入力する(キーボードやテンキーなどで直接入力) 2.A16のセルに001と入力するとB16に自動的に【a】と表示される(VLOOKUPで処理しています。) 3.次にC16のセルでは入力規則リスト型にして、中の値は【max,min,ave】の3つだけを表示。 4.C16のリストから【max】を選ぶと型式番号001の型式aの値maxに対応している【10】という値が自動的D16に表示される。 5.A2~A4はセル結合。同じようにB2~B4までセル結合しております。 上記のような事は出来るのでしょうか? 説明下手で申し訳ございませんが、何卒宜しくお願い致します。
- ベストアンサー
- 財務・会計・経理
- vlookup関数のことになりますm(_ _)m
エクセルのvlookupに関してですが、どうやっても表から対象の内容を 1つしかひっぱてこないので、どうやったら、入力した内容に合致した 全ての内容をひっぱてくれるのか教えてくださいませm(_ _)m 表は.... 入力するところは1つです。 入力する数値⇒【 】 参照する表は A B 200 ばなな 200 みかん 300 りんご 300 イチゴ 300 キュウイ 500 すいか 700 めろん になります。。。(Aは重さ、Bは果物名です) 現在 結果の欄に【=VLOOKUP(入力欄,A1:B7,2,TRUE)】と式を入れているのですが、この場合、数値を"400"と入力した場合 結果欄には【キュウイ】が表示されますが、同じ数値である【イチゴ】と【りんご】を下のセルもしくは別のセルに併せて表示させるにはどのようにしたらいいのでしょうか? ※結果には入力欄に入力した値よりも低いけれども一番近い物が選ばれる様にしたいのです。例えば 入力値が260であれば【ばなな】【みかん】が、、入力値が520であれば【すいか】だけが表示されるという形で。。。 ※果物は100ぐらいありますので、200<300 という風に1個づつしてしまうのは。。チョットきついかもしれないです
- ベストアンサー
- オフィス系ソフト
お礼
理解できました。 ありがとうございました。