top of page

最新記事リスト

執筆者の写真Canako

全角を半角に変換して取り込む方法_Mapping関数

更新日:2023年9月26日


全角の日付が混じっている日付項目に対してデータ型変換関数を使用すると、

全角の日付はNULL値となるため、Qlik Sense のシート上に表示することができません。



LOAD
    Date(Date#(日付,'YYYY年MM月DD日')) as 日付
FROM [lib://demo/Book1.xlsx]
(ooxml, embedded labels, table is Sheet1);
 

そのため、日付項目に全角が混じっている場合は Qlik Sense 側で全角を半角に変換して

日付データをとり込む必要あります。

 

Mapping プレフィックスと MapSubString 関数を利用することで全角の値を半角に

変換して取り込むことが可能です。


マッピングテーブルによる文字列の置き換え処理の記述例を以下に記載 いたします。

こちらの内容でデータを読み込むと、「加工後項目」は すべて半角文字となり、

Resident 句を使用して「加工後項目」のデータ型を 変換しています。

※細かい処理の説明はコメントで記載しております。


マッピング:
// テーブル名を設定します。後に MapSubString 関数の引数で使用します。
Mapping
// マッピングテーブルとして使用するため Mapping プレフィックスを指定します。
LOAD 全角, // 1番目に、変換前の文字列をもつ項目を指定します。
     半角  // 2番目に、変換後の文字列をもつ項目を指定します。
          // MapSubString 関数で文字列は左から右にマップされるためです。
Inline [
全角,半角
0,0
1,1
2,2
3,3
4,4
5,5
6,6
7,7
8,8
9,9
];
//Inlineはデータ ロード エディタ上で 簡易的なデータを作成できる機能です。

// 加工するデータを取り込みます。
data:
LOAD 
     日付 as 加工前項目,
     // 比較のために加工前の項目を取り込んでいます。
      MapSubString('マッピング',日付) as 加工後項目
     // マッピングテーブル「map_charactor」にもとづいて文字列を変換します。
FROM [lib://demo/Book1.xlsx]
(ooxml, embedded labels, table is Sheet1);

join

LOAD
     加工前項目,
     Date(Date#(加工後項目,'YYYY年MM月DD日'),'YYYY年MM月DD日') as 日付型変換後項目
     //データ型変換関数を使用するため、Resident句で一時テーブルから加工後項目を再読み込みしています。
Resident data;

<解説>

・Mapping プレフィックス

 対象データをマッピングテーブルとして使用するために LOAD または SELECT ステートメントの  前に指定します。 マッピング テーブルは 2 列構成で、1 列目には比較値(変換前)、2 列目は  マッピング値(変換後) を取り込みます。 なお、マッピング テーブルは一時的にメモリに保存され、  

 スクリプト 実行後に自動的に削除されます。


 今回は、半角文字に置き換えるため、記述例ではインラインロードで「全角,半角」という順番で  読み込んでいます。 実装時には、Excel ファイルや CSV ファイルを用意してご対応 いただくことも  可能です。


・MapSubString('マッピング',日付)

 MapSubString 関数は、先に読み込んだマッピング テーブルに基づき、 指定した項目(または数式)の

 一部を置き換えます。 第 1 引数にはマッピングテーブル名を指定し、第 2 引数で対処となる項目

 (または数式)を指定します。 なお、テーブル名は単一引用符で囲む必要があります。


 今回はマッピングテーブル「マッピング」を使用して、「日付」の文字列にある「全角」の値を  「半角」の値に変換しています。

 

上記の処理で全角→半角に変換した「加工後項目」を作成した後に Date 関数で変換した「日付型変換後項目」を作成しています。「日付型変換後項目」を作成することで

Qlik Sense 側で日付型の項目であると認識し、Year 関数や Month 関数などを利用する

こともできます。

 

今回は数字の置き換えでしたが、MapSubString 関数を利用することでカタカナ等の

置き換えもできます。

是非試してみてください!


閲覧数:55回0件のコメント

関連記事

すべて表示

Comments


bottom of page