vlookupで別表の列をセルの値で参照したい

このQ&Aのポイント
  • 担当者別売上数量推移表から商品別売上数量推移表を作成し、それから担当者・商品別実績表を作成しました。月指定を簡単に行いたい場合、19列目の月を指定する数式を使っていますが、よりスマートなやり方はないでしょうか?
  • vlookupを使用して別表の列をセルの値で参照したいです。現在は19列目の月を指定する数式を使用していますが、もっと効率的な方法があれば教えてください。
  • 「担当者・商品別実績表」の月指定を簡単に行いたいです。現在は19列目の月を指定する数式を使用していますが、よりスマートな方法があれば教えてください。
回答を見る
  • ベストアンサー

vlookupで別表の列をセルの値で参照したい

お世話になります。 担当者毎に1シート「担当者別売上数量推移表」という表があるのですが、 そこから「商品別別売上数量推移表」を作成しました。 更にそこから、「担当者・商品別実績表」を単月で作成しました。 質問なのですが、 「担当者・商品別実績表」の月指定を簡単にできないでしょうか? 現在、 =IFERROR(VLOOKUP(C$4,商品A!$B$6:$Z$23,19,FALSE),0) という数式で19列目の月を指定する数式を入れています。 このやり方ですと19を20に変更するという作業が発生してしまうと思うのですが、 これを「19列目をしている」という数式に置き替えることはできないでしょうか? 若しくは、 もっと別のスマートなやり方があればご教授頂きたいと思います。 よろしくお願いします。

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

  • ベストアンサー
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

A1セルに20と入れてから、以下の式のように、19の部分をA1に変更してみてください。 =IFERROR(VLOOKUP(C$4,商品A!$B$6:$Z$23,A1,FALSE),0) =IFERROR(VLOOKUP(C$4,商品A!$B$6:$Z$23,19,FALSE),0)

kusurin99
質問者

お礼

aokiiさん ありがとうございます。 こんな単純な事で良いですね。 助かりました!

その他の回答 (1)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 添付画像が小さすぎて分かりません。 「19」の部分に、商品A!$B$6:$B$23に月が入力されているとして MATCH(指定月をここに,商品A!$B$6:$B$23,0) とかいれてはどうですか?

kusurin99
質問者

お礼

ushi2015さん ありがとうございます。 画像が小さく、説明も分かりずらく、失礼しました。 MATCHは、使った事がなく、次の課題になりました。 ありがとうございます。

関連するQ&A

  • VLOOKUPとINDIRECTで別のEXCELファイルのシートを参照したい

    EXCEL2007を使用しています。 添付画像のように、例えば、B2のセルには =IFERROR(VLOOKUP(A2,INDIRECT($B$1&"!a:b"),2,FALSE),0) という関数があり、VLOOKUPとINDIRECTを使って同じEXCEL内の 別のシートを参照するようにしてあります。 ※シートをそれぞれ 0910,0911,0912という名前にして各年月毎に 商品コードと数量を入れてあります。 この商品コードと数量が入ったシートを数量.xlsxという別のEXCELファイルにして このMAINのEXCELシートにデータを持ってきたいのです。 何か方法はありますでしょうか?よろしくお願いします。

  • VLOOKUPの循環参照について

    B3=VLOOKUP(B3,A9:C16,2,0)の数式を入れています。エクセル2007使用 エクセルで問題です。 図1の商品名の下はセルのB3の位置なんですが、VLOOKUPの関数を使用しても、循環参照のため0という表記にされてしまうのです。本来ならば、「美容液」と表記されるはずなんですが、一体なにがいけなかったんでしょうか?わかるかたがおられましたらできるだけわかりやすくよろしくお願いいたします。 図1 商品No 商品名 単価 数量 金額 BK003 0になる SP001 FS001 下の図2は商品Noの位置がセルのA9になりA列、商品名がB列、単価がC列、¥6800の位置がC16になります。かなり列がずれて表示されていますので注意してご確認お願いします。 図2 商品マスタ 商品No 商品名      単価 SP001 シートパック10枚入 \1,200 FS001 洗顔石鹸Mサイズ \1,500 SP002 シートパック20枚入 \2,000 BK001 化粧水 \2,650 FS002 洗顔石鹸Lサイズ \2,800 BK002 乳液 \3,100 BK003 美容液      \6,800

  • エクセルの「IF+VLOOKUP」に関してのよくある問題で、意味のわからない相対参照があります

    「1.セル【C18】にセル【B18】の「商品コード」に対応する「商品名」を返す数式を入力して下さい。「商品一覧」の表を参照すること。 次に、「商品コード」が入力されていない場合は、「商品名」にエラーが表示されないように数式を修正して下さい。(シートに表があり、IF+VLOOKUPを使う問題です) 2.セル【C18】の数式をもとに請求書の表を完成させて下さい」(←「【C18】の下の行も同じように、商品コードから商品名を表示させれるように完成させなさい」っていう問題です) 上記のような問題があったのですが、 数式を入力して下にオートフィルして 完成させたのですが、【問題の解答】を見た限りでは 「セル【C18】を「=IF($B18="","",VLOOKUP($B18,$H$18:$J$29,2,FALSE))」と修正する」 と書いてありました。 ですが、数式の「$B18」の部分で「列を固定にする」 意味はあるのでしょうか? 「$」はなくてもちゃんと機能してますし、 表も完成してるように思うのですが・・・ あと、これは商品コードが空白の場合にはエラーが 出ないのでいいのですが、商品コードとは関係ない 文字列も入れた場合(間違った文字列を入れた場合)に エラーがでないようにする事もできますでしょうか?

  • (エクセル)表から1列の別表をつくりたい。

    表に入力されたものを1列に並び替えをしたいのです。(エクセル関数) エクセルの表から、セルに入力された情報を抜き出し、並び替えたいのですが、行き詰ってしまい質問させていただきます。 (やりたいこと) 添付資料のように、事業所ごとに購入した物品が日付ごとに入力されていきます。この表を一列で並び替えることを したいのですが、現状の表の形で1列に抜き出すやり方が思い浮かびません。ひとつずつリンクを設定していけばいいですが、 それですと、空白のセルができてしまうこともあり、空白を消すためにフィルタをやらなくてはいけず、なんとか関数でどうにかできないと質問させていただきました(つまり空白のセルは飛ばし、隙間のない1列の表に変換したいです)。 (試したこと) (1)vlookup関数を使うために、日付の横に検索列を作ってもみましたが、同じ行に複数の抜き出すべくものがあると、 if関数のネストをいれるにも「if(c5="","",vlookup(v5,b5:r10,2,fasle)」みたくやってみましたが、c5までは取り出せても、 d5,e5,f5・・・と右にずらしていく関数式が思い当たりません。 (2)種類、数量データ入力されている全てのセルの横に(1.2.3.4.5.6.7.8.9.・・・)と数字をいれて検索列をつくり、vlookupとmatch関数の 組み合わせも試しましたが、vlookup関数の性質上、複数列に検索値(「vlookup(検索値,範囲,列番号,検索の型)」)が存在しているとこれも出来ず。 説明が不十分な点もあると思いますが、よろしくお願いいたします。もし、VBAでなければ難しいとのことでしたら、どのようなVBAを組めばいいかもお願いいたします。

  • 【Excel2007】VLOOKUP

    関数結果がエラーになってしまい困っています。 65000行分の商品リストシートに、別シートで作成したその商品に該当する区分を VLOOKUP関数で抽出しようとしたのですが、上手くいきません。 検索して欲しいJ2(文字列)と合致した情報は シート「データ」C列にあり、C列をもとに抽出して欲しい情報は選択した範囲の 左から5番目の列にあります。(全て文字列) ということで下記の関数を作成しましたが検索結果が空白で出てきません。 =IFERROR(VLOOKUP(J2&"",データ!$C$3:$G$12048,5,FALSE),"") 文字列前後に余分な空白・全角半角に相違はないのですが、 他に対処しなければならないことは何があるかお教えいただけないでしょうか。 とても困っています、恐れ入りますがどうぞ宜しくお願い申し上げます。

  • 関数の値のVlookup

    下記のような表があり、"=VLOOKUP(H1,A1:B6,2,1)"のような結果を得たいと思っています ## H1セルには検索したい値を入れるようになっています。 しかしWeb上で調べたところ、VLOOKUP関数は値や文字列には使えるが数式には使えないようです。 そこで数式でもVLOOKUP関数と同じような結果を得られる方法がありましたら教えて頂けないでしょうか。 よろしくお願い致します。 | A | B | --------------------- 1|$E$3*H7*I7 | 1 | 2|$E$3*H7*I8 |0.9| 3|$E$3*H7*I9 |0.8| 4|$E$3*H7*I10|0.7| 5|$E$3*H7*I11|0.6| 6$E$3*H7*I120.5

  • VLOOKUPによる他シートの値参照

    初心者で以下の処理を行うコーディングの方法が分りません。 いろいろと他の質問、サイトを調べましたが、解決できませんでしたので、ご指導頂ければ有り難いです。 (1)"Sheet1"に下記例の通り、2列にデータが並んでいる。  左列には商品、右列にはその単価がセットされている。 (例) 商品1  \11 商品2  \22 商品3  \33 : (2)別シート"Sheet2"の左列には、商品が"sheet1"とは 異なる順序で並んでいる。また同一商品が複数存在することもある。 この商品の右列にそれぞれの単価をセットしたい。 商品3  (Sheet1を参照して値をセット) 商品7  (Sheet1を参照して値をセット) 商品1  (Sheet1を参照して値をセット) : 、って感じです。EXCEL関数の"VLOOKUP"を使おうと思っているのですが、どうも思った通りの結果がでません。 商品のデータ数は当然変動するのでVLOOKUPの参照セルに変数を使おうと思っているのですが、 その方法がまずいのでしょうか?

  • VLOOKUP関数の使い方について

    以前コード番号を入力すると自動的に商品番号が出るようにしたいと質問させていただきました。 教えていただいた方法を使い おかげさまでコード番号を入力すると隣のセルに商品番号が出るようになりました。 ただ一緒に単価も入力させたいのですがそれができません。 入力本体は(シート名 「仕入れ表」) E列 コード番号 F列 商品名 G列 数量 H列 単価 I列 小計(G*H) という構成になっています。 (A~C列は他の項目が入っています) 参照するシート名「cade」 同じブック内にあります。 A列コード番号 B列商品名 C列単価 が入っておりA~C列までを名前の定義で 「cade表」としてあります。 「仕入れ表」のI列(小計) の二行目より =IF(E2<>"",G2*H2,"") の数式がコピーしてあります。 同じく 「仕入れ表」のF列には =IF(E2<>"",VLOOKUP(E2,cade表,2,FALSE),"") と数式を入れました。 結果コード番号を入力すると商品名は出ますが 単価は入力されません。 単価も同時に入力する為にはどのようにしたらよろしいでしょうか? どなかた教えていただけると助かります。 宜しくお願い致します。

  • Excel VLOOKUP関数の縦検索は出来ないのでしょうか?

    A列   B列   C列   D列 --------------- 品名   数量  数量  数量      12/1  12/5  12/10 みかん  10箱  15箱  10箱 いちご      3箱 りんご  5箱   2箱  10箱 上記のような表を、日付で抽出し、発注書を作成したいのですが、縦で抽出することなんて出来ませんか? 今は、別のシートに行列を入れ替えて貼り付けをして、そこからVLOOKUPで参照しています。 よろしくおねがいいたします!

  • エクセルVBAでVLookupを使って値を転記する

    エクセル2003で商品の一覧表を作成しています。 Sheet1は商品一覧(左図) Sheet2は価格表(右図)となっています。 マクロを使用して、Sheet1のB列に価格表のデータを転記させたいと考えています。 VLookupになるのかと思い、自分でいろいろとやってみたのですが、 どうしても動作せず、挫折してしまいました。 商品一覧の最後の行までいって、空白セルがくると止まるというのが、 難しくてできませんでした。 どうかお願いいたします。

専門家に質問してみよう