• ベストアンサー

エクセルの関数

=VLOOKUP(A1,B10:C100,2,FALSE) の関数において条件により参照するセル、セルの範囲を変更したいです。 参照するセル A1 や B10:C100 を変数に置き換えることはできますか? つまり A1を参照する場合やその他のセル(例えばA2)を参照したり B10:C100の範囲を例えばB101:C200に変更させたいです。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

方法はいくつかありますけど、条件をどうするかで変わりますね。 INDIRECT関数でどうでしょうか? =VLOOKUP(INDIRECT("A"&E1),INDIRECT("範囲"&E2),2,FALSE) として、E1に1とか2と入力することで参照セルを変更できます。 セルの範囲の場合は、B10:C100に"範囲1"、B101:C200に"範囲2"と名前付けしてもらえれば E2の入力変更で同様に変更できます。

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

>A1を参照する場合やその他のセル(例えばA2)を参照したりB10:C100の範囲を例えばB101:C200に変更させたいです。 検査値のセルと範囲のセルをどのような条件で変更するかを提示しないと具体的な回答は無理かと思います。 考え方としてはADDRESS関数で算出されたセルのアドレスをINDIRECT関数で指定する方法になるかと思います。 =VLOOKUP(INDIRECT(ADDRESS(行番号,列番号,4),ADDRESS(行番号,列番号,4)&":"&ADDRESS(行番号,列番号,4),2,FALSE) ADDRESS関数の第3引数の4は相対参照が返ります。 =ADDRESS(2,1,4) → A2 =ADDRESS(101,2,4)&":"&ADDRESS(200,3,4) → B101:C200 其々のADDRESS関数で行番号と列番号はあなたの考えている数式で返り値を与えてください。

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.3

Indirectではだめですか? indirectで特定セルの値を参照させることは可能です。 例えば↓ http://pc.nikkeibp.co.jp/pc21/tech/excel36/27/

回答No.2

どのような場面なのかが具体的にイメージ出来ないので、 一般的な事書きますね。 IF関数と組み合わせてみたらいかがでしょうか。 =IF(条件1,VLOOKUP(...),IF(1jouken 2,VLOOKUP(...),...) とします。 ただし、IFの中に使えるIFの数には限りがあったので、あまりに条件が多い場合は、 不向きですね。 もしくは、列を増やして、そこに細かい場合分けをしておいて、 最後に、非表示にするというのも手です。 個人的には、こっちの方が後から見てもわかりやすいし好きです。

mf_firebird
質問者

補足

言葉足らずですみません。 IFはよく使っています。 今回は指定したい範囲が一定ではないので変数に代入したいです。

  • yumi0215
  • ベストアンサー率30% (1335/4411)
回答No.1

IF関数を組み合わせるか両方の条件でのVLOOKUPを2か所に表示するようにするのはいかがでしょう。

関連するQ&A

  • Excel INDIRECT

    お世話になります。 INDIRECT関数で、 =INDIRECT("A1")は、=A1と同じように、A1セルを参照しますが、 =VLOOKUP(A1,B1:C19,2,FALSE)を、==INDIRECT("VLOOKUP(A1,B1:C20,2,FALSE)”)で囲むと#REF!エラーになります。 目的は、A2セルにSheet2!B1:C20の範囲を示す文字列を入れて、=INDIRECT("VLOOKUP(A1,"&A2&",2,FALSE)”)としたいと思っています。 #REF!エラーの原因を教えていただけないでしょうか。 よろしくお願いします。

  • エクセルの使い方について教えてください

    エクセルを使っています VLOOKUP(F1,A1:B25,2,FALSE)という関数を 使用したいです。 下のセルに検索値だけ次のセルにして同じ範囲の関数を設定したいのですが、 こういう風に→VLOOKUP(F2,A1:B25,2,FALSE) セルの右下にカーソルを持ってきて、下にドラッグすると VLOOKUP(F2,A2:B26,2,FALSE) VLOOKUP(F3,A3:B27,2,FALSE) というように 範囲の部分まで値が増えていってしまいます。 B25,2→B26,2→B27,2 範囲の部分は変更なしで、検索値だけ変更ありにする方法はないでしょうか? 用語が分からなくて説明が下手ですいませんがよろしくお願いします。

  • VLOOKUP関数のコピーについて

    お世話になっております。VLOOKUP関数を違うセルにコピーするのですが、参照するセルが替わりません。。#N/Aエラーが出てしまいます。たとえば、=VLOOKUP(B24,M3:N21,2,FALSE)をコピーして、違うセルに貼り付けても、=VLOOKUP(B24,M3:N21,2,FALSE)。また、オートフィルでやると、参照範囲もずれてしまいます。上手にコピーする方法はないのでしょうか。よろしくお願いします。

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • Excelの関数について至急助けて下さい。

    今、E201に「=IF(C201="","",VLOOKUP(D201,参照データ!$A$2:$C$113,2,FALSE))」のような関数を入れてあります。 C201がブランクならE201もブランク。そうでなければD201を検索値として参照データのシートのA2~C113の範囲から検索し、完全一致した値のBのセルの値を入れる。 ここに更に条件を付けくわえたいのです。 頭がこんがらがってしまいどうにもならなったので伝授願います。 加えたいこととは・・・・ 上記の結果が”打ち合わせ費”となり更にG201の値が5000以上なら”交際費”と表示を変えるようにしたいのです。 一度新たに列を加えてでも構いません。 わかる方、お願いします。 説明が下手でわかりにくいとは思いますがお願いします。

  • 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ではエラーにならず値を参照できています。

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

    色々調べてみたのですがわからなかったのでどなたか教えてください。 例えばA1のセルに「1111」と入力されていてB1のセルに「土曜日」と入力された場合にC1のセルに「特」という文字を自動に入れたい場合はどうすればよいのでしょうか? A1とB1のセルに何も入力されていない場合はC1も空欄にしたいです。 A1のセルにはVLOOKUP関数をいれていて、返ってきた文字が「1111」の場合です。 B1は手入力で入れています。 同時にA1のセルに「2222」(これもVLOOKUP関数で帰ってきた文字です)、B1のセルに「日曜日」と入力された場合にはC1のセルには「大特」という文字を入れたいのですが、組み合わせでできますでしょうか? 初心者なので質問がおかしいかもしれませんが、よろしくお願いします。

  • こんにちは。VLOOKUP関数の引数で「範囲」を選択するとき、他のパス

    こんにちは。VLOOKUP関数の引数で「範囲」を選択するとき、他のパスにあるファイルの参照の仕方についてお尋ねします。 例えば、VLOOKUP関数を使って以下のパスにあるファイルを参照するとします。 ▼パス        :C:\作業 ▼フォルダ名     :作業 ▼ファイル名     :参照先.xls ▼参照するシート名:シート1 関数を入力して保存して再び開くと、このようになります。 =VLOOKUP(A1,'C:\作業\ [参照先.xls]シート1'!$A$2:$F$10,3,FALSE) このパス・ファイル名・シート名をどこかのセルに入力しておき、参照先のフォルダが変わったとしても「パス」を入力するセルの値を変えることで、可変的に参照できるようにしたいと思っています。 例えばA10のセルで、範囲の引数である文字列を <A10のセルの値>'C:\作業\ [参照先.xls]シート1'!$A$2:$F$10 というようにつなげて作成し、 =VLOOKUP(A1,A10,3,FALSE) とやってみましたが参照できるわけもなく、うまい方法はないかなと悩み中です。 わかる方からの回答をお待ちしています。

  • VLOOKUP関数について

    VLOOKUP関数についてですが、検索値が複数ある場合 例) =VLOOKUP(c2,Sheet1!$A$3:$A$1687,3,FALSE) 例えば、検索値c2の箇所が複数あった場合は、範囲指定と同様に選択範囲で囲むとよいのでしょうか? またその時に、絶対参照(F4)をした方がよいのでしょうか? よろしくお願いいたします。

  • 関数Vlookup

    関数 VLOOKUPで検索値を参照したとき、範囲に該当データがあれば いいのですが、無いと「#N/A」の表示がでます 該当データがない場合は、何も表示のないようにするには セルに例えば =VLOOKUP($K24, 全体!$A$5:$E$60,4, FALSE)の場合 どのような工夫を追加したらいいかを教えてください

専門家に質問してみよう