Qlik Trainingブログ

  • Qlik Sense
  • Qlik Cloud
  • 開発者
  • データロード
2022.06.28

マッピングテーブルで値を一括置換しよう!

Qlik Senseに取り込んだデータを予め用意した規則をもとに一括で置換したいということはないでしょうか?
こんな時に便利なMappingプレフィックスとApplyMap関数の使い方をご紹介します。

▼利用例
・「商品番号」を「商品名」に置換したい
・ バラバラの表記を統一したい(株式会社、(株)、㈱→株式会社)
・ 売上テーブルの「商品番号」を商品テーブルの「単価」に置換して利用したい

目次

※本記事は「2022年06月時点のSaaS」で作成しています。

はじめに

まずは置換前と置換後の値を持つ「マッピングテーブル」を用意します。
今回は「商品テーブル」をマッピングテーブルとし、以下の置換処理を行います。

■置換処理
・売上テーブルの「商品番号」を「単価」に置換する
・売上テーブルの「商品番号」を「単価」に置換し、「単価-売価」とした「値引額」を作成する


■元データ
商品テーブル:

売上テーブル:

■置換後の結果

スクリプト記述例

//「商品番号」と「単価」を持つ商品テーブルをマッピングテーブルとして取り込みます。

商品テーブル:
Mapping
LOAD
商品番号,
単価
FROM [lib://スペース名:DataFiles/Mapping.xlsx]
(ooxml, embedded labels, table is 商品);

//「商品番号」を「単価」に置き換えた「単価」、
// 置き換えた「単価」から「売価」を引いた「値引額」を作成します。

売上:
LOAD
売上実績,
商品番号,
売価,
ApplyMap('商品テーブル', 商品番号) as 単価,
ApplyMap('商品テーブル', 商品番号) - 売価 as 値引額

FROM [lib://スペース名:DataFiles/Mapping.xlsx]
(ooxml, embedded labels, table is 売上明細);

解説

Mappingプレフィックス

LOAD文の前にMappingと指定すると、そのテーブルはマッピングテーブルとなります。
マッピングテーブルの作成ルールは以下の通りです。

・2列のテーブルであること
・1列目に置換前の値、2列目に置換後の値を持つこと
・後からApplyMap関数で参照するため、マッピングテーブルには必ずテーブル名を付けること
 (LOAD文の前にテーブル名:をつける)

マッピングテーブルは置換処理にのみに使用されますので、データロードが完了すると自動的に削除されます。

ApplyMap関数

ApplyMap関数でマッピングテーブルをもとに値を一括置換します。

●構文
 ------------------------------------------------
 ApplyMap('マッピングテーブル名', 置換する項目)
 ------------------------------------------------
 ※マッピングテーブル名はシングルクォートで囲みます。

●記述例
 ------------------------------------------
 ApplyMap('商品テーブル', 商品番号)
 ------------------------------------------
 ※マッピングテーブル「商品テーブル」を使用して、「商品番号」を「単価」に置換する場合の例です。

さいごに

用意した規則をもとに一括で置換したい場合はMappingとApplyMap関数をご利用ください!
また、ApplyMap関数ではなくMapSubstring関数を使うことで、部分一致による置換も行えます。
気になる方はMapSubstring関数のヘルプページをご覧ください。

関連している記事

  • Qlik Cloud
  • Qlik Sense
  • 運用者
2024.04.24

Qlik Cloud 日本リージョンへの移行方法(qlik-cli利用時の注意点)

先日、本ブログにて、日本リージョンへテナントを移行する方法の全体像をご紹介しました。今回は、コマンドラインのqlik-cliを用いたテナント移行時の注意点と、コマンドやスクリプトの記述例をご紹介します。

  • Qlik Sense
  • Qlik Cloud
  • 開発者
  • 運用者
2024.04.17

Qlik Application Automation活用術:Microsoft Teamsにメッセージを配信する

Qlik Sense SaaSを使用していて、メジャーの結果と事前に設定した閾値を比較して、閾値を超えたら通知を飛ばせたら良いな、と考えたことはありませんか?本記事では、Qlik Sense SaaSの「Qlik Application Automation」でMicrosoft Teamsにメッセージを配信する方法を紹介します。

  • Qlik Cloud
  • Qlik Sense
  • 運用者
2024.04.01

Qlik Cloud 日本リージョンへの移行方法

2024 年 3 月 26 日に QlikTech 社より Qlik Cloud の日本リージョン開設の ニュースリリースが発表されました。本ブログではすでに Qlik Cloud(Qlik Sense Enterprise SaaS) をご利用中のユーザー様に向けて、日本リージョンへテナントを移行する方法をご紹介します。

ページの先頭へ戻る