【スクリプト】Mappingで文字列の変換規則を設定(1)

 

マッピングとは

こんにちは。Deckです。

今回はMappingを使い、文字列の変換規則をテーブルの形で記述します。
Mappingを使った変換はあらかじめ用意した規則でデータを置き換えるというときに非常に便利です。
文字列の置換機能はほかにReplaceがありますが、Mappingには一度に複数の規則を適用できるという特徴があります。

スクリプトでマッピングテーブルを記述

新規アプリからデータ ロード エディタを開いてスクリプトをコピーし、次の2つのテーブルを読み込んでみましょう。

国コード:
Mapping LOAD * inline
[
国コード,国名
US,アメリカ
JP,日本
CN,中国
KR,韓国
FR,フランス
] ;

出席簿:
LOAD 出席番号,
名前,
ApplyMap(‘国コード’,国籍) as 国籍
inline
[
出席番号,名前,国籍
1,Masato,JP
2,Jhon,US
3,Kim,CN
4,Han,KR
5,Rika,JP
6,George,FR
7,Richard,US
] ;

Mapping テーブル

通常のLOAD文の前に Mapping キーワードを入力するとそのテーブルはマッピングテーブルになります。

マッピングテーブルには文字列を置き換えるときの規則を登録します。

インラインで入力した左側カラムは置き換え前、右側カラムは置き換え後を表します。カラム名には特に規則はありませんがわかりやすい名前を付けておきましょう。

1番目のテーブルでUS→アメリカJP→日本,……として変換が登録されたことになります。

重要な点としてテーブル名は後から規則を適用する際に参照するため名前を付ける必要があります

また、マッピングテーブルはスクリプトの最後に自動で削除されます。

ApplyMapで変換を行う

2番目のテーブル読み込みで実際に置き換えの規則を適用して読み込みを行います。

上のスクリプトで大事なのはこの部分です。

ApplyMap(‘国コード’,国籍) as 国籍

ApplyMap(項目,’マッピングテーブル名’,[‘変換元が見つからなかったとき’])関数を使ってマッピングテーブルの文字列を置き換える規則を適用します。
ApplyMapによる文字列変換は文字列を完全一致で検索します。
部分一致で置換する場合はMapSubstring()関数を使いましょう。

スクリプトからロードを行うとインラインテーブルにあった国コードが国名に変換されます。

Qlik Senseを体験してみませんか?

INSIGHT LABでは毎週Qlik Senseの無料ハンズオンセミナーを開催しています。初めてQlik Senseをご利用される方を対象に、Qlik Senseの概要や、他のBIツールとの違いについて分かりやすくご説明いたします。