• ベストアンサー

Vlookで引っ張ってきた結果を横にうまくコピーするには・・・

エクセル初心者です。 =VLOOKUP(A1,Sheet1!A:E,1,false) と言う関数で 横にコピーするたびに列番号を1234とずらすにはどのようにすればよいでしょうか。 また、falseの部分をfalseとするのと0とするのとでは結果にどのようなちがいが出来るのでしょうか。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
noname#79209
noname#79209
回答No.3

多分、VLOOKUPで検索された行の各列のデータを表示したいのでしょう。 ご要望の方法だと、各列のデータを引っ張るために、それぞれの列でいちいちVLOOKUPを実行しています。 要は、どの行なのかが解ればいいので、発想を変えて、 1.A1セルのデータをSheet1のA列から探して、その行番号を取得する。 2.その行番号を元にセル参照をする。 3.なお,Sheet1のA列に同じデータがない事が条件。 を行います。ただしワーク列が必要になりますが.... B列をワーク列仁使うとして、B1に =SUMPRODUCT((Sheet1!$A$1:$A$65535=A1)*ROW(Sheet1!$A$1:$A$65535)) 引っ張りたいデータが、Sheet1のA列~E列なら C1に、 =INDIRECT("Sheet1!R"&B1&"C"&(COLUMN()+2),0) として、G1までヨコにコピーでOKかと... 「Sheet1!$A$1:$A$65535」と変な指定をしているのは、配列が全行を指定できないので、最終行番号65536から1を引いているのです。 > falseの部分をfalseとするのと0とする どちらでも可能なようです。特に違いはありません。なお、trueは1です。

すると、全ての回答が全文表示されます。

その他の回答 (2)

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

VLOOKUP関数の第3引数(検索データ列(を1として、そこから何番目の列の値をとるか)は列は右に行くと1増える関数があればよいので、そういうのはColumn()関数です。 式をB列に入れているときはColumn()で2なのでよいが、ずれているときは、スタート(=最左列の式だけ、COLUMN()-1など調節が必要です。 例データ 検索表 E1:H3 1 a x u 2 b y v 3 c z w A1にでーた2を入れる時 B1に =VLOOKUP($A1,$E$1:$F$10,COLUMN(),FALSE) CLUMN()はCOLUMN(B1)でも良い。 B1の式をD1まで式を複写。 結果 2 b y v 第1引数の$A1の$を忘れないこと。

すると、全ての回答が全文表示されます。
  • normo
  • ベストアンサー率54% (6/11)
回答No.1

VLOOKUPの列番号の部分を1,2,3,4と変えたいという意味でよろしいですか? COLUMN()で列番号を取得できますのでこれを利用します。 例えばB列に列番号「1」を指定したいのであれば、B列の列番号は2なので「COLUMN()-1」を指定して また、横にコピーしていくので検索値・範囲の指定部分の列の前に「$」をつけます。 =VLOOKUP($A1,Sheet1!$A:$E,COLUMN()-1,FALSE) これを右にコピーしていくとVLOOKUPの列番号の部分が1,2,3,4と変わります。 False=0です。

すると、全ての回答が全文表示されます。

関連するQ&A