さて、前回からの続きです。

ここまで↓できているはずですね。

各項目へのデータ移行はVLOOKUPでちょいちょいとやってしまいましょう。E2セルに、次のVLOOKUP関数を入れます。

=VLOOKUP($A2,INDIRECT($D2)COLUMN()-3,FALSE)

これをコピペすればリスト形式のマスター表が完成します。

この式、何も考えないで記述すれば、こうなります。

=VLOOKUP($A2,大阪!$A$2:$I$172,FALSE)

絶対参照の $マークはもういちいち説明しませんが、赤字部分と青字部分の対応関係だけ少し説明を加えておきます。

まず、赤字部分ですが、シート「大阪」の、A2:I17セル範囲は、「大阪」という名前をつけていましたので、ここは、範囲名の「大阪」とだけ記載すれば式として機能するはずですね。

しかも、この「大阪」というワード、「ページ1」列にありますよね。。

以前、ウィザードで「選択したデータ範囲を識別するための…ラベルを指定してください」というところで同じ「大阪」という名称をつけました。

これを、INDIRECT関数で指定すれば、VLOOKUP関数の検索範囲として有効となるはずです。

なので、INDIRECT($D2)を、範囲としてセットします。

(詳しくはこちら
をご参照ください。)

次に、青字部分ですが、「何も考えない」バージョンのように、定数「2」を列番号として入れてしまえば、式をコピーしたときにその部分が変わらず、項目の列番号に応じて「3」とか「4」とかに手で変更しなければならなくなります。

これを防ぐために、列番号を取得する COLUMN関数を使って、列番号をセットしよう、ということです。

このVLOOKUP関数を入力するセルはE2セルで、Eは5列目に相当しますので、COLUMN関数だけ入れると、「5」が返されます。今欲しい値は「2」なので、「5」と「2」の差分である「3」を、COLUMN関数からマイナスして帳尻を合わせる必要があります。

なので、COLUMN()-3を、列番号としてセットします。

(詳しくはこちら
をご参照ください。)

まぁ、そういうことで、上記のVLOOKUP関数を、項目欄の空白部分全体にコピペすれば、リスト形式のマスター表が完成します。

こんな表↓ができましたでしょうか?ついでに、「行」,「列」とかになっていた項目名もわかりやすく変更しておきました。

ま~た長くなってしまいました。次回、完結編お楽しみに。。

(^^ゞ