Excelで、別シートから1つの項目をキーにして、他の項目を参照したりするのに、VLOOKUP関数は便利だよね。
VLOOKUP(検索値,範囲,列番号,検索の型)
でも、たとえば、DB設計書を作る場合を考えてみよう。
DB設計って、1つの項目、たとえば在庫管理システムなら、品種のコードなんて項目、品種マスタ表にも、在庫表にもあって、同じデータ型、同じ桁数、同じデータ範囲だよね。
じゃあ、テーブルで必要な列の各属性をまとめたシートを1つ作って、各表の設計書は列名をキーにそのシートを参照しようって思ったとしよう。列名は項目一覧ってシートのB列。
とりあえずデータ型を参照する式をC2のセルに入力するとこんな感じとする。
=IF($B2="","",VLOOKUP($B2,'項目一覧'!$A$1:$E$100,2,FALSE))
で、次は桁数。セルはD2。
=IF($B2="","",VLOOKUP($B2,'項目一覧'!$A$1:$E$100,3,FALSE))
で、次はデータ範囲
=IF($B2="","",VLOOKUP($B2,'項目一覧'!$A$1:$E$100,4,FALSE))
みての通り、列番号以外は同じ式。でも、列番号が違うばっかりに、オートフィルで式を入力したりできなくって、コピーしたあと各列に合わせて列番号を修正する羽目に。間にやっぱり項目の日本名もいれなきゃってなったら、またやり直しだ。
そこで以下のように配列数式で上手にできないかなーと考えてみた。