- ベストアンサー
EXCEL VLOOKUP関数の式を隣の列にコピーする(列番号が異なる)と、うまくその式が使えない
すみません、つい先ほど、一度投稿したかと思ったんでですが、 アップされていないので、また投稿しました。もし、2重投稿なら、すぐに削除します。 質問: 数式のコピー(オートフィル)は、理解しているのですが、 VLOOKUPで設定した数式を列番号が、変わる項目へもコピーして 使用できるかと、コピーしたんです。そして、列番号だけ変更したんですが、うまく動きません。 数式そのものは、同じなんで列番号だけ 変えたら使えそうなんですが。。。だめですかね。。 ちなみに、その数式をコピーする際ににちょっとコツがあったような。。 単純なオートフィルでもなく、形式を選択して貼り付け(数式)でもNG. たしか、あったような。。数式バーで作業するような、、うーーー。 どなたか、わかるかた教えてください! それとも、列番号がことなる場合には、最初から式を設定するのがベストですか。。 こんな私に一発ご指導を!お待ちしております。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 具体的な配置がわからないので、適当に設定します。 仮に、参照するデータ範囲がSheet2のA1:G100として、 検索値がA列で、B~G列に参照先のデータを引っ張ってくるとします。 B1に、 =VLOOKUP($A1,Sheet2!$A$1:$G$100,COLUMN(B1),FALSE) と入力して、右へ下へコピーします。 基本的には、参照範囲は行列とも絶対参照で、検索値は列のみ絶対参照で、ということだと思います。
その他の回答 (4)
- murabon
- ベストアンサー率23% (42/180)
どういう数値が表示されて、うまくいかないのかイメージがわかないですが、VLOOKUP関数の入っているセルをオートフィルすると、参照元のセルやデータを持ってくる元の範囲も共に動いてしまいます。 それをとめるためにはとめたい列のまえに$をいれれば良いです。 具体的には、B1のセルに 「=VLOOKUP(A1,Sheet2!1:65536,2)」 と入っているのを、左のC1にそのままオートフィルすれば、数式は「=VLOOKUP(B1,Sheet2!1:65536,2)」になってしまいます。 Aの前に$をつければ、大丈夫です。 また下にオートフィルするとデータを持ってくる元も移動してしまい、エラー「REF#」になります。 「=VLOOKUP(A1,Sheet2!$1:$65536,2)」として、データの持ってくる元を固定しましょう。 ちなみに「Sheet2!1:65536」というのはSheet2全体を意味します。 $1:$65536をデータを持ってくる元に指定すると便利だと思います。
お礼
ありがとうございました。 ぜひ、参考に致します。
- mshr1962
- ベストアンサー率39% (7417/18945)
例 =VLOOKUP(A1,D1:F100,2,FALSE) となっているなら =VLOOKUP(A1,$D$1:$F$100,2,FALSE) 元の表を絶対参照としてからコピーしてください。 検索値のセルも列固定なら$A1にしてください。
お礼
ありがとうございました。 ぜひ、参考に致します。
質問の意味が良く理解できていませんが、 なんとなく、f4を押して B1=VLOOKUP(B1、sheet1!A:C、3、FALSE) をC1=VLOOKUP(C1、sheet1!B:D、3、FALSE)になるということですか それをC1=VLOOKUP(B1、sheet1!A:C、3、FALSE) のまま移したいのでしょうか? それなら、 B1=VLOOKUP($B$1、sheet1!$A:$C、3、FALSE)でコピー かな?
- Taku930
- ベストアンサー率40% (113/277)
かなり自信ないのですが、ひょっとしたらということで。 検索値と範囲はどうなっているでしょうか。 数式をコピーすると、検索値と範囲も変化してしまいます。検索値、範囲を名前とかでなくセルで指定している場合は、「$」をつけてコピーしても変動しないようにしてみてください。
お礼
ありがとうございました。 ぜひ、参考に致します。 ずばり、この設定だけでいいとおもいます。 ほんとに感謝です。 冷静に考えれば、すぐにでてきたはずでした。 有難うございました。