
別表の情報を参照したい

提供元との管理番号と表記が異なる
ご提供頂くデータの中に、法規制情報などが数字で管理されていて、自社側の表記は法規制の名称を表記しなければならないことがあります。
元 | 出力 |
---|---|
4 | 第四類 |
このような場合は対応表を作成して、VLOOKUP関数、INDEX関数などを用いて別の情報を参照して適合した情報から表示する情報を返す方法を行います。
特定のセルの文字列を参照したい
今回はINDEX(インデックス)関数とMATCH(マッチ)関数を組み合わせて使用した方法をご案内します。
INDEX関数の書式
INDEX関数は指定された行列番号にあるセルを参照することができます。 書式は、
INDEX(範囲, 行番号, 列番号, [領域番号])
になります。
MATCH関数の書式
MATCH関数は指定された範囲を検索し、範囲の位置を返すことができます。 書式は、
MATCH(検索値, 検索範囲, [照合の種類])
になります。
関数の組み合わせ
対応表を以下のように作成します。
コード値 | 表記内容 |
---|---|
1 | 第一類 |
2 | 第二類 |
3 | 第三類 |
4 | 第四類 |
5 | 第五類 |
6 | 第六類 |
仮に対応表がA1:B6に、対応表と照合したいしたいセル位置がC1とします。
=INDEX(\$A$1:\$B\$6,MATCH(C1,\$A\$1:\$A\$6,0),2)
式の解説
INDEX関数 第1引数
=INDEX(\$A\$1:\$B\$6,MATCH(C1,\$A\$1:\$A\$6,0),2)
対応表の範囲が「A1:B6」になりますが、式中の範囲を指定する箇所には「\$」が列行番号の前にそれぞれ指定されています。これは、絶対位置の指定になります。シート上は複数行に対して比較すると思いますが、一括して割り出す場合にはオートフィルを利用されるかと思いますので、別行に適用させようとすると対応表の範囲がずれてしまいますので、絶対位置指定しないと7行目から「#N/A」とエラーの返却値が表示されるようになってしまいます。こちらを防ぐためどの位置からでも同じ行列範囲とするために絶対指定とするため、「\$A$1:\$B\$6」とします。
INDEX関数 第2引数
=INDEX(\$A$1:\$B\$6,MATCH(C1,\$A\$1:\$A\$6,0),2)
検索範囲行の範囲をMATCH関数を指定して、対応表の範囲のどこに該当する箇所なのかを指定します。
MATCH関数 第1引数
MATCH(C1,\$A\$1:\$A\$6,0)
対応表と照合する位置を指定します。
MATCH関数 第2引数
MATCH(C1,\$A\$1:\$A\$6,0)
対応表の照会する位置を指定します。
MATCH関数 第3引数
MATCH(C1,\$A\$1:\$A\$6,0)
照合の種類は、「1、0、-1」とあるのですが、1の場合は第一類としたいので完全一致の「0」を指定します。1、-1 を利用するケースがデータ整備にはほぼ無いのと思いますので解説は割愛します。
INDEX関数 第3引数
=INDEX(\$A$1:\$B\$6,MATCH(C1,\$A\$1:\$A\$6,0),2)
対応表の返却した列を指定します。
Massteryで対応するとこうなる
Massteryは入力するファイル内の各行を出力したいフォーマットに変換しますので、対応表は別ファイルとして作成し、Masstery内の参照マスタという機能にアップロードします。
対応表の1列目を「コード値」、2列目を「表記内容」という項目名を1行目に記載して「対応表」というエクセルのファイル名とします。
指定内容
- 変換対象カラム
- Massteryはフォーマットの項目単位で変換を指定しますので、出力ファイルの項目(列の名称)を指定します。
- 変換方法
- 変換対象カラムに値またはロジックを適用する「=」を指定します。
- 値または変換ロジック
- VLOOKUP(“category”,対応表,コード値,表記内容)
VLOOKUP関数式の解説
Massteryでの書式は以下になります。
VLOOKUP("変換対象カラム名称",マスタ名,マスタ内の照合項目名,マスタ内の返却列名)
第4引数まで指定できます。
第1引数
VLOOKUP("category",対応表,コード値,表記内容)
入力するファイルの照合する列の名称を指定します。
第2引数
VLOOKUP("category",対応表,コード値,表記内容)
ファイル名がマスタ名称になりますので名称を指定します。
第3引数
VLOOKUP("category",対応表,コード値,表記内容)
対応表内の1列目の名称を指定します。
第4引数
VLOOKUP("category",対応表,コード値,表記内容)
対応表内の2列目の名称を指定します。