【スクリプト】Mappingで文字列の変換規則を設定(2)部分一致で文字列置換

 

マッピングで文字列を置換・部分一致で文字列を置換する

この記事は【スクリプト】Mappingで文字列の変換規則を設定の応用編です。

こんにちは。Deckです。
前回の記事でも少し触れましたが、文字列を置換する場合は完全一致よりも部分一致のほうが好ましい場合もあります。
部分一致の場合はMapSubstring()関数がありますので例を挙げながら解説します。

マッピングテーブルは前回と同じものを使用します。

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

変換対象のテーブルとしてそれぞれの人が行ったことのある国のリストを読み込むことにしましょう。

渡航記録:
LOAD 名前,
MapSubstring(‘国コード’,渡航歴) as 渡航歴
inline
[
名前,渡航歴
Masato,JP US CN
Jhon,US FR
Kim,CN KR
Han,KR JP
Rika,JP US
George,FR US KR
Richard,US CN
] ;

前回の記事で扱ったデータと比較して変化している点として以下のポイントがあります。

  • マッピングを適用するための関数がMapSubstring(項目,’マッピングテーブル名’)に変わっている
  • 渡航歴には複数の国が入っている

MapSubstring()関数は読み込んだマッピングテーブルを使い、文字列を部分一致で検索します。

以上のスクリプトをロードすると結果は以下のようになります。

渡航歴に複数の国が入っていてもすべて変換してくれていますね。
このように「部分一致で文字列を置換する」そして「変換規則が複数ある」データを扱うときはMapSubstring()関数を使ってみましょう。

補足説明

なお、1つのカラムに複数の国が入っているテーブルは分析上あまり好ましくありません。
(「韓国に行ったことのある人は何人いるかカウントする」などの分析が少し不便です)
【データ整形】1つのセルに複数のデータが入っているときはSubFieldで分割するを参照して、Qlik Senseで分析しやすいテーブルにしてみましょう。

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

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