さて、前回からの続きです。
ここまで↓できているはずですね。
各項目へのデータ移行はVLOOKUPでちょいちょいとやってしまいましょう。E2セルに、次のVLOOKUP関数を入れます。
=VLOOKUP($A2,INDIRECT($D2),COLUMN()-3,FALSE)
これをコピペすればリスト形式のマスター表が完成します。
この式、何も考えないで記述すれば、こうなります。
=VLOOKUP($A2,大阪!$A$2:$I$17,2,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関数を、項目欄の空白部分全体にコピペすれば、リスト形式のマスター表が完成します。
こんな表↓ができましたでしょうか?ついでに、「行」,「列」とかになっていた項目名もわかりやすく変更しておきました。
ま~た長くなってしまいました。次回、完結編お楽しみに。。
(^^ゞ