電子書籍の厳選無料作品が豊富!

エクセル初心者です。
=VLOOKUP(A1,Sheet1!A:E,1,false) と言う関数で
横にコピーするたびに列番号を1234とずらすにはどのようにすればよいでしょうか。

また、falseの部分をfalseとするのと0とするのとでは結果にどのようなちがいが出来るのでしょうか。

どうぞよろしくお願いいたします。

A 回答 (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です。
    • good
    • 0

VLOOKUP関数の第3引数(検索データ列(を1として、そこから何番目の列の値をとるか)は列は右に行くと1増える関数があればよいので、そういうのはColumn()関数です。


式をB列に入れているときはColumn()で2なのでよいが、ずれているときは、スタート(=最左列の式だけ、COLUMN()-1など調節が必要です。
例データ
検索表
E1:H3
1axu
2byv
3czw
A1にでーた2を入れる時
B1に =VLOOKUP($A1,$E$1:$F$10,COLUMN(),FALSE)
CLUMN()はCOLUMN(B1)でも良い。
B1の式をD1まで式を複写。
結果
2byv
第1引数の$A1の$を忘れないこと。
    • good
    • 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です。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!