11/28/2023

Excel。VLOOKUP関数をつかって行方向のデータを列方向で抽出表示したい【Rows and columns】

Excel。VLOOKUP関数をつかって行方向のデータを列方向で抽出表示したい

<VLOOKUP+ROW関数>

VLOOKUP関数は、抽出表示するのに便利な関数です。


ただ、行方向のデータを、行方向に抽出表示するのではなく、行方向のデータを、「列方向」に抽出表示したい場合、どのようにしたら、手早く数式を設定することができるのでしょうか。

VLOOKUP+ROW関数

 

ポイントは、下方向にオートフィルで数式をコピーしますが、3番目の引数の「列番号」をどのように設定してあげたらいいのかという点です。


その点を踏まえて、次の数式を、B7に設定します。


=VLOOKUP($B$6,$A$2:$D$4,ROW(A2),FALSE)


あとは、オートフィルで数式をコピーします。


これで、B6のNOを変えるだけで、氏名~Listeningまでを該当の番号の氏名からListeningまでを抽出表示することができます。


では、数式を確認しておきましょう。


最初の引数は「検索値」。

NOに該当するデータを抽出したいので、「B6」を設定します。

ただ、オートフィルで数式をコピーしますので、絶対参照の設定をしなければなりませんので、「$B$6」と設定します。


2つ目の引数の「範囲」。

これは、抽出元のデータベースなので、見出し行を除いた、「$A$2:$D$4」と設定します。

こちらも絶対参照が必要ですね。


3つ目の引数が「列番号」。

直接数値を入力して変更してもいいかもしれませんが、数式の数が増えれば増えるだけ、修正数が増えるので、面倒です。


2・3・4と数値を変える方法を考える必要があります。


そこで、行番号を算出することができるROW関数をつかうことで、対応することができます。

よって、「ROW(A2)」と設定することで、この問題を解決することができます。


ROW(A2)=2と算出されます。

オートフィルで下方向にコピーすれば、ROW(A3)となりますから、3と算出され、3列目のデータを抽出することができるというわけです。


最後の引数は「検索方法」は、完全一致なので「FALSE」と設定します。