こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELでセル右下を引っ張るコピー時の数式変化(VLOOKUP関数使用時)について

EXCELでコピーをする際、セルの右下をつまんで下に引っ張る方法があると思うのですが、その際、元のセル内の数式(書式)が自動反映されるかと思います。

  A B C
1 1 2 =A1*B1
2 2 3
3 5 6

上記で、セルC1の右下をつまんで下に引っ張ると、
セルC2には[=A2*B2]
セルC3には[=A3*B3]
となると思うのですが、

今回困っているのは、VLOOKUP関数使用時に、数式の中で変わって欲しい部分と固定したい部分が混在する場合です。

使用している関数(数式)は、
=VLOOKUP(P3,P42:Q90,2,FALSE)
です。
P42:Q90の中に商品マスタがあり、商品名をP3に入れれば、自動的に単価が出るようにしたいと思っています(P列に商品名、Q列に単価が入っています)。

この関数が入ったセルの右下をつまんで下に引っ張ると、
=VLOOKUP(P4,P43:Q91,2,FALSE)
という風になってしまい、参照する商品マスタが1行下にずれてしまいます。
P3⇒P4は構わない(そうなって欲しい)
2⇒2も構わない(そうなって欲しい)
のですが、
P42:Q90⇒P43:Q91となってしまうので困っています。
現状は、セル右下を引っ張ってコピーした後、P42:Q90という数式に1つずつ変えています・・・

●数式の変化パターンを任意で設定する方法
又は
●本件のような商品マスタからデータを引っ張る時の他の方法

どなたかご教授下さい。

また別件になるのですが、
上述のVLOOKUP関数[=VLOOKUP(P3,P42:Q90,2,FALSE)]を使用した場合、
P3に商品名(値が)入っていない間は、結果を表示するセルは[#N/A]と
なっていますが、オートSUMでの計算(表示)が出来ません。
結果を表示するセルがQ列の場合、Q列の合計を表示させたいのですが、そのような方法はありますでしょうか?

こちらも出来れば教えて下さい。

よろしくお願い致します。

投稿日時 - 2007-01-19 10:34:48

QNo.2678014

すぐに回答ほしいです

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

相対参照と絶対参照があります
F4キーを押せば切り替わります
http://www.aviva.co.jp/azbyclub/pc_kouza/200502_excel.htm
http://www.excel-jiten.net/formula/cell_ref_style_change.html
http://www11.plala.or.jp/koma_Excel/contents1/mame1006/mame100601.html
http://www.nbcom.co.jp/PC-Support/FAQ/xls/ot/xls012002ot001.shtml

別件
=IF(P3="","",VLOOKUP(P3,P42:Q90,2,FALSE))
でいいですか?

投稿日時 - 2007-01-19 11:02:05

お礼

相対参照と絶対参照
難しいですね^^;
ですが今回の疑問は解決できました。
別件へのご回答は、私の説明が下手でうまくお伝えすることが出来ませんでした。
もう少しうまい説明を考えてまた質問させてもらいます。
沢山の参考サイトのご紹介までして頂きありがとうございました。

投稿日時 - 2007-01-19 13:27:41

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

商品マスタを移動(例えばR列に商品名、S列に単価)して
Q3に  IF(P3<>"",VLOOKUP(P3,$R:$S,2,FALSE),"")
Q4以降にコピーしたら出来るはず(^_-)

投稿日時 - 2007-01-19 11:30:44

お礼

ご回答ありがとうございました。
助かりました。

投稿日時 - 2007-01-19 13:28:46

ANo.2

セルアドレスに$をつけることで絶対アドレス(移動やオートフィルでも変わらないアドレス)にできます。
$A$1 → 行、列ともに固定
$A1 → 列のみ固定
A$1 → 行のみ固定

=VLOOKUP(P3,$P$42:$Q$90,2,FALSE)
とすれば検索する表範囲は固定になります。P3は$P3としても構いません

投稿日時 - 2007-01-19 10:47:23

お礼

絶対アドレスというものがあるんですね。
先に教えて頂いた方の内容で解決しましたが、[$]の意味が分かり勉強になりました。
ありがとうございました。

投稿日時 - 2007-01-19 13:18:15

ANo.1

1番目

=VLOOKUP(P3,$P$42:$Q$90,2,FALSE)

 でOKです。

2番目
質問の意味がよくわかりませんが、N/Aを出したくないということでしたら、

=IF(ISNA(VLOOKUP(P3,$P$42:$Q$90,2,FALSE)),"",VLOOKUP(P3,$P$42:$Q$90,2,FALSE))

としてみてください。

投稿日時 - 2007-01-19 10:46:06

補足

2番目の質問へのご回答は、私の説明が下手でうまくお伝えすることが出来ませんでした。
もう少しうまい説明を考えてまた質問させてもらいます。

投稿日時 - 2007-01-19 13:31:15

お礼

早速のご回答ありがとうございます。
大変助かりました。

投稿日時 - 2007-01-19 13:16:41

あなたにオススメの質問