• ベストアンサー

VLOOKUP関数のコピーについて

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

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

  • ベストアンサー
  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

=VLOOKUP(B24,$M$3:$N$21,2,FALSE) 検索する範囲が変わらないように$を付け 絶対参照にしてからコピーすると良いです。 ちなみにM3やN21をマウスでクリックし 「F4」を押すと簡単につけることもできます。 いかがでしょうか。

jr6331
質問者

お礼

ありがとうございました。勉強になりました。

その他の回答 (4)

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

上記の式は B24と同じ値をM3:M21から検索して、初めて同じ値になった行のN列の値を表示するというものです。 表の範囲は$M$3:$N$21の様に絶対参照(コピー時に設定が変わらない)にするか、 「挿入」「名前」「定義」で$M$3:$N$21の範囲に任意の名前をつけ参照する方法があります。 #1の方の言う通り、M3:N21をカーソルで反転させた状態でF4キーで$マークを付加するか、名前を付けて参照してください。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

>オートフィルでやると、参照範囲もずれてしまいます これは私も回答で注意喚起してますが、参照表のセル範囲を表す部分 は、$M$21:$N$21のようにしなければなりません。 M3:N21と行数が3と21のように違うケースもニーズが想像できません。 >違うセルにコピーするのですが (1)編集ーコピーの方法 (2)CTRLとマウスのドラック (3)オートフィル のどれを使いましたか。 どれを用いても、相対的に変わるはずです。 >#N/Aエラーが出てしまいます B24に値が入ってないか、参照表にないか、前記の参照表を絶対番地指定にしてないので、コピーをしたとき、表とVLOOKUP式の中の指定範囲ががずれてしまって、表の中に探す値がないというエラーになってしまう。 >参照するセルが替わりません の操作を再現できるなら、説明してみてください。 ツールーオプションにも、それに影響しそうな設定もないようですし、不思議です。

  • fmajin
  • ベストアンサー率61% (75/122)
回答No.3

わかりにくい面がありますが、参照セルというのが「B24」セルで、参照範囲というのが「M3:N21」ということでしょうか。それを前提に回答しますね。 まずコピーしても違うセルに貼り付けても同じ数式というのは、コピーする方法が違うのではないでしょうか。数式の文字そのものをドラッグするなどして反転させてコピーしてから貼り付けると、数式はまったく同じ内容になります。 エクセルでのコピー作業の基本は、セルをクリックしたりドラッグするなどしてセルを選択した状態(編集状態ではない)でコピーして、別のセルを選択してから貼り付けるという方法ですね。 この手法ですと、数式の参照セル関係が調整されます。提示されている数式では、「M3:N21」の部分が調整されては困るわけですね。こうした場合は、絶対参照方式にします。入力してある数式の「M3:N21」の部分を選択した状態で[F4]キーを押せば、「$M$3:$N$21」となります。このようにセル番地の前に「$」ドルマークを付けるとそのセル参照はコピーしても位置が変わらないようにすることができます。ちなみに「$A$1」ですと列も行も調整されないようになりますが、「$A1」ですと列を変えずに行番号だけを調整するということもできます。 このような数式に変更していただければ、オートフィルで行っても正しい結果が得られるはずです。

  • takkuni
  • ベストアンサー率24% (166/676)
回答No.2

参照表に名前の定義付けをしておくとずれません。

関連するQ&A

  • 関数Vlookup

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

  • マクロでVLOOKUP関数をつかいたいのですが

    エクセルでマクロを使ってVLOOKUP関数みたいなことを したいのですが(文章力が無くてすみません。) sheet1のセルb4を検索値にして、 sheet2のリストb3:C32を範囲に指定します 列番号は 2  検索の型ほ FALSE      です。 この値をsheet1のセル"O4"に表示させて、 なおかつ”O4:O33"までオートフィルで数式を入れたいときは どのようにマクロを組めばよいのでしょうか。 ほとんど初心者なのでマクロの記録を使ってやってみたのですが エラーになってしまい、うまくいきません。 他力本願で申し訳ないのですがどなたか詳しい方 ご回答をお願いいたします。

  • VLOOKUP関数の範囲がずれてしまう

    VLOOKUP関数を使用していますが、 たとえばVLOOKUP(B10,A1:B8,2,FALSE)の式を下にドラッグしてコピーしていくとVLOOKUP(B11,A2:B9,2,FALSE) VLOOKUP(B12,A3:B10,2,FALSE)という様に範囲がA1からA2、A3とずれていってしまいます。検索のB10がB11、B12と成るのはいいのですが、範囲は、固定にならないと式をコピーできないように思うのですが誰か分かる方教えてください。

  • vlookup関数について

    vlookup関数について教えてください。    A       B         C      D      E        1  あじ    りんご     2  さば    みかん            3  さんま   ばなな        という内容で、D1セルに入力した内容に応じてE1セルに内容を転記させていました。 E1=VLOOKUP(D1$A$1$B3,2,FALSE) 上記で運用していたときはうまくいったのですが、 Cの列にも文字をいれ、E1セルにはCの内容を検索して、B列の内容を転記したいと 思って作りかえるとうまくいきません。 今回の新しいやり方では、 ・A列からの検索はいらない(でも他ファイルから参照されているので、削除、移動はできない) ・E1=VLOOKUP(D1$A$1$C2,2,FALSE)では #N/A となる ・A列からの検索がいらないから、E1=VLOOKUP(D1$B1$C2,1,FALSE) でも #N/A 調べてみたのですがわからなくて・・・ どこがおかしいのか、教えてください。宜しくお願いします。

  • VLOOKUP関数の並び替えについて質問です。

    VLOOKUP関数の並び替えについて質問です。     A        B      C      J            M        N    1  品名       原産地  金額    税番       品名       税番 2  SPACER      JP    1    7318.22-0000  AIR CYLINDER  8412.31-0001 3  SPACER      JP    2    7318.22-0000  SPACER  7318.22-0000 4  SCREW      JP     3    7318.15-9004  O-RING  4016.93-0002 5  AIR CYLINDER  JP   4     8412.31-0001  SCREW    7318.15-9004 6  AIR CYLINDER  US    5    8412.31-0001  VALVE    8481.80-1904 7  AIR CYLINDER   US    6    8412.31-0001  CABLE    8544.42-9902                                                          ・                                 ・                                 ・                                 ・                                 ・ --------------------------------------------------------------- M列・N列はデータとして置いてあります。 J2セルに=VLOOKUP(A2,$M$:$N$1000,2,FALSE)という関数を入れてあります。 J3セルからはJ2セルの関数をドラッグして入れました。 --------------------------------------------------------------- 上記を1)J列・昇順、2)B列・昇順で並べ替えをすると      A      B       C     J 1  品名      原産地  金額    税番 2  SCREW     JP      3  7318.15-9004 3  SPACER     JP      1  7318.22-0000 4  SPACER     JP      2  N/A 5  AIR CYLINDER  JP    4   8412.31-0001 6  AIR CYLINDER  US    6   8412.31-0001 7  AIR CYLINDER  US     5  8412.31-0001 といったようにJ列4行目がエラーになってしまいます。 そこの関数を見ると=VLOOKUP(A4,$M$4;$N$1000,2,FALSE)と 範囲の始まりがズレてしまいます。 このエラーを解消するには最初にJ2セルから関数を ドラッグした所から直せば宜しいのでしょうか? 聞いた事があるのですがもしかしたら絶対参照とやらで直りますか? 後、他にいい関数があったら教えて下さい。 宜しくお願い致します。

  • VLOOKUPでセルに#N/Aが出るのを防ぐには?

    最初のセルにVLOOKUP関数を入れて、必要数のセル分だけ下にオートフィルで引張っています。 すると検索値がまだ未入力のセルにずらっと#N/Aが並んでしまいます。 見ずらいので、このエラー値が出ないようにするにはどうすれば良いでしょうか?

  • VLOOKUP関数について、文字列と数値の問題

    お世話になります。現在、商品リストを作っておりまして、VLOOKUP関数を使っているのですが、エラーになってしまいます。 =VLOOKUP(A1,Sheet2!$A$2:$B$6,2,FALSE) という関数を使っているのですが、 A1に3桁のコードを入れるとSheet2のA2:B6から値を返すようになるのですが 「110」というコードを入力すると「白」と出てくるのですが、「010」というように0から始まるコードだと エラー#N/Aになってしまいます。セルによっては逆の現象が起こったりします。 文字列を数値にしたり、その逆を試してみたり(A1もsheet2の参照データも調節しましたが)したのですがどうしてもうまくいきません。 何が原因なのかまったくわからないのですが、心当たりのある方教えていただけますでしょうか。 よろしくお願いいたします。

  • 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でヘルプ!

    お世話になっています。 お恥ずかしながら、昨日初めてVLOOKUPを使用しました。 とりあえず使い方はヘルプを読んである程度理解しました。 そして上手い具合に値の参照はできたのですが・・・そのセルのコピー/貼付けが上手く行きません。 例えば下記のようになっていた場合、コピー/(1コ下のセルに)ペーストをすると 「=VLOOKUP(B7,シート2!B2:I125,6,FALSE)」をコピー  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 「=VLOOKUP(B8,シート2!B3:I126,6,FALSE)」が貼付け結果 と参照値まで加算されてしまいます。 ここで、参照値はそのまま、検索値のみを加算したいのです。 「=VLOOKUP(B7,シート2!B2:I125,6,FALSE)」  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 「=VLOOKUP(B8,シート2!B2:I125,6,FALSE)」 「=VLOOKUP(B9,シート2!B2:I125,6,FALSE)」 「=VLOOKUP(B10,シート2!B2:I125,6,FALSE)」  ・・・ となって欲しいのですが、どのようにすれば上手く貼り付けられますか? 「形式を選択して張り付け」でも思うようにいかず、応急処置としてテキストでバ~ッと打ち込んでいますが、面倒です・・・ 大体どのような作業かは想像がつくと思いますが、「VLOOKUPを使わない方が良い」等の意見もあるかも知れません。 その場合は補足致しますので、アドバイスよろしくお願いします。 尚、当方Excel97を使用しております。

  • VLOOKUPの関数について

    =IF(C73="","",VLOOKUP(C73,科目!A2:B113,2,FALSE)) 上記の関数を入れてあります。 コピーして下のセルに貼り付けました。そうするとC74にセルに対して手見るようになりますが、答えがC73のセルを見て出てきます。 又コマンドのところに再計算と表示されます。 何が間違っているのでしょうか?

専門家に質問してみよう