• ベストアンサー

Excelの関数「VLOOKUP」について質問です

以下のような表で 1 2 3 51 2 4 1 19 3 8 5 21 4 6 1 24 5 2 7 31 6 4 5 35 7 8 7 60 8 2 3 17 9 4 1 30 A11=空欄 A12=VLOOKUP($A11,$A$1:$D$9,2,FALSE) A13=VLOOKUP($A11,$A$1:$D$9,3,FALSE) とするとき、 A11に「5」と入力すると A12は「2」 A13は「7」になりますよね。 このときに新たにA14に、4列目の値を返すVLOOKUP A14=VLOOKUP($A15,$A$1:$D$9,4,FALSE) A15=任意の数を入れる を作りたいのですが、そのときに検索範囲を、A12,A13に求めた1列目の範囲 つまり2行目から7行目(A2からD7)に、自動的になるようにしたいのですが 検索範囲をどのように設定すればいいでしょうか。 お願いします

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

  • ベストアンサー
回答No.1

こんばんは。 ↓でどうでしょうか? ------------------- =VLOOKUP($A11,INDIRECT("A"&A12):INDIRECT("D"&A13),4,FALSE) ---------------------

CageAnoe
質問者

お礼

AloneAgainさん、ありがとうございます おかげさまでできました。

その他の回答 (2)

  • subri
  • ベストアンサー率28% (16/56)
回答No.3

普通に考えれば =VLOOKUP(A11,OFFSET(INDIRECT("A"&A12),,,A13-A12,4),4,0) か =VLOOKUP(A11,OFFSET(INDIRECT("A"&A12),,,VLOOKUP($A11,$A$2:$D$10,3,FALSE)-VLOOKUP($A11,$A$2:$D$10,2,FALSE),4),4,0) になるのですが、 列同士には何かの関連があるのですか? そうであれば別な解があると思います。

CageAnoe
質問者

お礼

subriさん、ありがとうございます。 本当はもっと膨大で複雑なデータなので、教えていただいたことを参考に、もう一度チャレンジしてみます。 ありがとうございました

noname#10714
noname#10714
回答No.2

 この表を見ていると、なんとなくVLOOKUP関数で条件付の値を求めているように感じるのですが....  この関数に条件を負荷した「データベース」をしたら?と..... 関数fxのデータベース DGET ではだめですか? もしくは、 DAVERAGE データベースの指定されたフィールド列を検索し、条件を満たすレコードの平均値を返します。 DCOUNT データベースの数値が入力されているセルの個数を返します。 DCOUNTA データベースの空白でないセルの個数を返します。 DGET データベースから 1 つの値を抽出します。 DMAX データベースの指定されたフィールド列を検索し、条件を満たすレコードの最大値を返します。 DMIN データベースの指定されたフィールド列を検索し、条件を満たすレコードの最小値を返します。 DPRODUCT データベースの指定されたフィールド列を検索し、条件を満たすレコードの積を返します。 DSTDEV データベースの指定されたフィールド列を検索し、条件を満たすレコードを標本と見なして、母集団の標準偏差を返します。 DSTDEVP データベースの指定されたフィールド列を検索し、条件を満たすレコードを母集団全体と見なして、母集団の標準偏差を返します。 DSUM データベースの指定されたフィールド列を検索し、条件を満たすレコードの合計を返します。 DVAR データベースの指定されたフィールド列を検索し、条件を満たすレコードを標本と見なして、母集団の分散を返します。 DVARP データベースの指定されたフィールド列を検索し、条件を満たすレコードを母集団全体と見なして、母集団の分散を返します。 GETPIVOTDATA ピボットテーブルに格納されているデータを返します。

CageAnoe
質問者

お礼

kei_455さん、ありがとうございます 大いに参考にさせていただきます。専門家ではないので、目的に合う関数が自由に使えるようになりたいです。 ありがとうございました

関連するQ&A

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • Q:エクセルのVLOOKUPで・・・

    VLOOKUPでご相談させてください。 VLOOKUP(検索値, 範囲, 列番号, 検索の型)で、検索の型の部分を FALSEに指定した場合、検索値 と完全に一致する値だけが検索され、 見つからない場合は エラー値 #N/A が返されますが、見つからない 時にそのエラー値#N/Aを表示させずに空欄にさせたいのですが、そん なときどうしたらいいですか? if(VLOOKUP(検索値, 範囲, 列番号, 検索の型)<>"#N/A","○","") ではダメでした。検査値一致の場合には○を、検査値がなければ空欄 としたい表を作成したいのです。 アドバイスお願いします。

  • エクセル関数 VLOOKUPで

    エクセル2007です A列に商品名 B列に価格 C列に税込価格(B1*1.05) の表があります。    A   B  C  |いちご|900|945|  |みかん|300|315|   D1にA列の商品名を選択して入力できるように 入力規則でドロップダウンリストがら選択にしました。 (範囲はA列です) E1には商品名を選択すると税込金額が反映されるようにしたいので、 =IF(D1="","",VLOOKUP(D1,A:C,3,1)) と入力しました。        D   E           D   E 正 |いちご|945|  →  誤 |いちご|315|   D1の商品名と同行の3列目の値を返す…とやりたかったのですが、 別の行の値を返します。(C列の値であることは確かなのですが…) なぜでしょうか? また、テーブルを昇順で表示とあるのですが、優先はどの列でしょうか? A列優先でもD列優先でも値が違います。

  • VLOOKUP関数 正しい値が返されない

    sheet1にデータリストを入力、sheet2のA1にコード番号を入力し以下の表にSheet1の対象データを参照するというところ(VLOOKUP関数のみ)まではよかったのですが、元データに空欄の時は「データなし」と表示過去の質問を参照して下のような式に変更しました。 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,"")),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) はじめは正しく表示はされたのですが、A1に違う値を入力し直しても値が変化しません。 エラー表示はでませんが、数式がどこか間違っているのでしょうか。 どなたかお知恵をお貸しください。

  • EXCELのVLOOKUP関数

    VLOOKUPの検索値に、二つの列を参照するような検索値を入力することは可能でしょうか? 現在、ある表からVLOOKUPでデータを自動検索するような式を考えていますが、この表はA列とB列の2列そろって初めてKeyとなっています。 もし関数の組み合わせや、他にこの機能を実現できる方法をご存知でしたら教えてください。よろしくお願い致します。

  • VLOOKUP関数について教えて下さい

    Excel97を使用しています。 VLOOKUP関数を使って二つのデータを照合したいのですが、 A    B     C    D    E        コード|内容 |    |コード |内容 | 0001 |ああ |ああ  |0001  |ああ | 0002 |ああ |    |0002  |   | 0003 |   |    0|0003  |   | D,E列の範囲からA列のコードを検索かけたいのですが、 =VLOOKUP(A2,ひかく,2,0)        ↑       D,E列 だと内容欄に空欄が入っていると0になってしまいます。 0でなく空欄にしたい場合はどうしたらよいのでしょうか?

  • エクセルの関数VLOOKUPについて教えて下さい。

    エクセルの関数VLOOKUPについて教えて下さい。 範囲にあたるデーター部分が3つのかたまりに分かれている時どのような数式で表すことができますか? 具体的には、HIJ KLM OPQの列位置にある3つの表の中から検索したいのです。 作った数式は1つの表から検索するもので =IF(C9="","",IF(ISNA(VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE)),"未登録",VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE))) です。(C9,材料一覧!$H$5:$J$54,2,FALSE)の後に&(同じ数式で列文字を入れ替えて)で繋げてみました。列範囲KLMの表は上手くいったのですが、3つ目のOPQの表は上手くいきませんでした。 原因と正しい数式を教えて下さい。 よろしくお願いいたします。

  • エクセルVLOOKUPで列毎に並び替えたい

    お世話になります。 今、エクセルのA列に200個のそれぞれ異なる値(8個の英数字で構成された値)が入っているとし(A1~A200)、一方、C1セルを起点に300行×80列のセルそれぞれに計24000個の値が入っているとします。また、C1~C300のセルにはA列と同じ値が含まれていて、300個はそれぞれが異なる値とします。 ここで、300行x80列の表を、A列の右隣りに、A列の値と同じ値を持つC列セルを含む行が並ぶように表の行を並べ替えたいのです。 (1行1行の内容は変えずに、1行全体を上下に移動させる。どこに移動させるかは、C列の値と同じ値を持つA列セルの行に移動させる。) A列の値を検索キーとする16000個のVLOOKUPを埋め込めば出来そうですが、1列に200個のVLOOKUPだけ埋め込めばD列移行の値はくっついて並び替わってくれる方法はないでしょうか? よろしくお願いします。

  • VLOOKUP関数の#N/A表示を空欄にしたい

    VLOOKUPで2つの表から検索し反映させていますが表に無かった場合に#N/A表示になるので これを空欄にしたいです。教えて下さい。 たとえばC1のセルに田中と入力すると自動的に太郎と表示され井上と入力すれば一郎と出ますが 斉藤と入力した場合に#N/Aと表示されるので空欄にしたいです。ちなみにC1に何も入力されていない場合は空欄がいいです。   O3:田中 P3:太郎   S3:井上 T3:一郎 =IF(ISNA(VLOOKUP(C1,$O$3:$P$10,2,FALSE)),VLOOKUP(C1,$S$3:$T$10,2,FALSE),VLOOKUP(C1,$O$3:$P$10,2,FALSE)) と現在関数を入れています。 色々試しましたがわからないので教えてほしいです。

  • エクセル関数の使い方

    関数を熟知しておりませんので教えて下さい。 元になる表の1行目にある値(A1)を読み込んで2行目(A2)にある値を検索することが出来ません。 VLOOKUPで列の検索は出来るのですが、行の検索は出来ないのでしょうか?

専門家に質問してみよう