• ベストアンサー

Excel VLOOKUP の返す列番号の範囲を拡張

ExcelVlookUPの値を返す列の範囲を拡張したいのです。 例えば検索範囲としてA1からE3を選んだとします。 B列を返して欲しければ「2」を入れるとうのが通常だと思うのですが、 B列からE列まですなわち、2から5列目までを一行分返して欲しい場合は、 どの様にしたら宜しいのでしょうか? 質問の意味を分かって頂き、何とかご教示頂けると幸いです。 宜しくお願い致します。

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

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

こんばんは! 大きく外しているかも知れませんが・・・ もしかして、列方向にドラッグすると 返すセルも1列ずつずれるのが希望ということですかね? 一応そういうことだと解釈しての回答になります。 もともとの表がどのような感じか判らないので 勝手に↓のように表を作ってみました。 B6セルに =VLOOKUP($A$2,$A$1:$F$4,COLUMN(B1),0) という数式を入れ、オートフィルで右にコピーしています。 これで表の検査値の行の値が返るはずです。 尚、余計なお世話かも知れませんが、 数式内の columun(B1) というのは B列=2ですので 「2」という意味になります。 (B列であれば、別に2でも100でも構いません) もし3列目からの値を返したいのであれば、 C1 にします。 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m

berry_late
質問者

お礼

今日、やってみたら昨日のダメだったのがうそのようにコラム関数が使えました。 有難うございました。

berry_late
質問者

補足

有難うございます。 >もしかして、列方向にドラッグすると >返すセルも1列ずつずれるのが希望ということですかね? その通りです。 拙い文章をご理解いただき感謝です。 column関数との組み合わせは試したんです。 しかして、なんらかの理由でダメだったんですが、 私のやり方に問題があったのかもしれません。 明日検証してみます。 有難うございます。

その他の回答 (5)

  • 135ok
  • ベストアンサー率34% (26/75)
回答No.6

No.5です。 数式が違ってましたので、下記に変更ください。 H2 =IF($G2="","",VLOOKUP($G2,$A$1:$E$3,COLUMN(A1)+1,0))

berry_late
質問者

お礼

今日、やってみたら昨日のダメだったのがうそのようにコラム関数が使えましたのでここまで複雑にしなくても大丈夫でしたが、これは応用が出来そうなのでぜひメモっておきたいと思います。

  • 135ok
  • ベストアンサー率34% (26/75)
回答No.5

VLOOKUPの列番号を2、3、4と入れるのは面倒なので、簡素化したいと解釈して H2 =IF($G3="","",VLOOKUP($G3,$A$1:$E$3,COLUMN(D2)+1,0))    *表示させたい範囲にコピー

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

> 実際には4列ではなく40列位あるので、全部のセルに1列づつずらした値を入れる手間を何とか軽減したいというのが発露です。 でしたら =VLOOKUP($E3,$A$1:$C$6,COLUMN(B1),FALSE) みたいな感じでいかがですか。 COLUMN(B1)で2です

berry_late
質問者

お礼

有難うございます。 実はこれを試したのですが、何らかの理由で目的のすべてを達せられませんでした。 でも、Kemetuさんの例はうまく行って見えるので、明日オフィスでデータを検証してみます。

berry_late
質問者

補足

今日、やってみたら昨日のダメだったのがうそのようにコラム関数が使えました。 有難うございました。

  • ruushii
  • ベストアンサー率31% (25/80)
回答No.2

F列でB列からE列をつなぐ。 検索範囲はA1からF3。 VlookUPで6列目を返す。 またはVlookUPを4回つなぐ。

berry_late
質問者

補足

早速ありがとうございます。 すみません。説明不足です。 B列からE列は一つのセルに入れたいのではなく、 例えばG1, H1, I1, J1と横に連なったセルに入れたいのです。 実際には4列ではなく40列位あるので、全部のセルに1列づつずらした値を入れる手間を何とか軽減したいというのが発露です。 宜しくお願い致します。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

=VLOOKUP(E1,A1:C6,2,FALSE) & VLOOKUP(E1,A1:C6,3,FALSE) & … というようにつなげていけばいかがですか

berry_late
質問者

補足

すみません。 上の回答者様と同じ内容の補足をさせてください。 宜しくお願い致します。

関連するQ&A

  • エクセルマクロでVLOOKUPのよう列を貼る

    初めましてよろしくお願いします。 シート2に       A     B     ・・・・・・・・・   Z 1   900     5               5 ・   903     40              60 ・    ・       ・               ・ 300 220     1     ・・・        100 301 210     10    ・・・        1000   302 200     15    ・・・         20 ・ ・ ・ が有ります。シート1のE10に210と入力されている場合、マクロを実行するとA列を検索し、シート2のA301の値と一致する301行をシート1のE11から列に変換しコピーされるようにしたいと思います。 シート1結果    A     B     C     D     E 1 2 ・ ・ 10                        210 11                         10 ・                           ・ ・                           ・ 35                        1000  解る方、よろしくお願いします。

  • VLOOKUPの列番号について

    VLOOKUPを使っていて、疑問に思ったことがありました。 わかる方がいれば、是非教えてください。 なぜ、列番号はセル参照ではいけないのでしょうか? VLOOKUP(検索値, 範囲, 列番号, 検索の型) ヘルプを確認したところ、以下のようなものでした。 【列番号 範囲 内で目的のデータが入力されている列を、左端からの列数で指定します。列番号 に 1 を指定すると、範囲 の左端の列の値が返され、列番号 に 2 を指定すると、範囲 の左から 2 列目の値が返されます 】と、言っていることは理解できるのですが、範囲内といってもセルに番地はあるわけで、それを使っても良いのでは・・・? なぜ、セルの番地ではなく「1列目」なんでしょうか? 説明の足りない文章で大変申し訳ないのですが、何卒よろしくお願いします。

  • VLOOKUPで列番号を移動させたい

    すいません。質問なのですが VLOOKUPで=VLOOKUP(検索値,範囲,列番号,FALSE) の式の中で列番号を増やしていくことは可能でしょうか? たとえばA1では=VLOOKUP(検索値,範囲,2,FALSE)であった式がB1では=VLOOKUP(検索値,範囲,3,FALSE)に なるみたいなかんじです。 手動でなくそういう式にできたらと思って ご相談させていただきました。

  • VLOOKUPで困っています

    A1 B1 C1 D1 ←列 A W E 15 B E T 8 C K T 37 A L E 10 A L T 52 Aの列を検索してDの値を拾いたいのだが、Aの列に複数同じ値があるので、Aを検索した後にB、Cの列も参照して、正しいDの値を拾えるようにしたい。 上の例で言えば、 A L E のときのDは10で A L T のときのDは52 ということができるような数式を作りたいのですが・・・ どなたか教えていただけないでしょうか? よろしくお願い致します。

  • Excel 範囲内で条件を満たす異なる列の合計

    範囲内で条件を満たすセルで、異なる列の値を合計したい。 A1からA5に{10,20,30,40,50}という値が B1からB5に{0,1,2,3,4}という値が C1からC5に{5,6,7,8,9}入っている事とします。 A1:A5の範囲で複数の条件をつけます。 B列ではA列のセルの値が15<A<35となる、A2とA3と同じ行であるB2とB3の値 C列ではA列のセルの値が25<A<45となる、A3とA4と同じ行であるC3とC4の値 全部でB2,B3,C3,C4のセルの値を合計を返すセルを作成したい。 この場合目的のセルが返す値は1+2+7+8で18となる。 補助行を作ってでも構いませんので、このような加算が可能とするセルの作り方はないでしょうか。 Excel2000を使用しています。どうかよろしくお願いします。

  • エクセル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で

    エクセル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列優先でも値が違います。

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

  • エクセルの計算式VLOOKUPを再度教えてください!

    再度,質問いたします、わかりましたら、教えてください。 エクセルの計算式でE1のセルに次の計算式があった時に =VLOOKUP(B1,$F$1:$G$10,2,FALSE)この式は、成り立っています。 「この時にもう1つ条件をつけて、A1のセルの値(20種類の値が、ある時)に対して範囲を変えることはできますか。たとえばA1セルが50という値のときは、$F$1:$G$10の範囲ですが、A1セルが130と言う値のときの範囲は$F$11:$G$15、A1が201のときの範囲は$F$16:$G$25を指定のように範囲を変えられますか?FとGに範囲が20種類タテにあります。H1からH10のセルは50という値、H11からH15のセルは130という値,H16からH25のセルは201と言う値があります。AからE列は1から1000のセルがあってE列は計算式をコピーします。」わかりましたら、計算式を書いてお教えください。

  • 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関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

専門家に質問してみよう