top of page

最新記事リスト

文字列の置換を一括対応したい_Mapping関数

更新日:2023年9月26日

Qlik Senseで半角全角の変換や「髙(はしごだか)」などの置換など、文字列の置換を文字のマッピングテーブルを用いて一括対応する方法です。Mapping関数を覚えて面倒なマスタデータの整備などQlik Sense内でやれるようになりました。


 
【やり方】

① Mappingテーブルを指定」して「②置換したい項目にMapSubstringする」という感じです。


①Mappingテーブルの指定は、下記のようなロードスクリプトとなります。

・1行目に「テーブル名」を必ず指定する

・2行目(LOADの前)に「Mapping」句を指定する

置換テーブル:
Mapping
LOAD
    置換前,
    置換後
FROM
    [lib://DataFiles/置換テーブル.xlsx]
    (ooxml, embedded labels, table is Sheet1);

②MapSubstring関数の指定は、下記のようなロードスクリプトになります。

> MapSubstring ('置換テーブル名', 置換対象の項目)

・置換テーブル名:手順①で指定した「テーブル名」です

・置換対象の項目:置換したい元データの項目です

LOAD
    選手名,
    MapSubstring('置換テーブル',選手名) as 選手名2
FROM
    [lib://DataFiles/選手マスタ.xlsx]
    (ooxml, embedded labels, table is Sheet1);

【実際にやってみる】

上記の①②を順番に処理すれば置換テーブルを利用した元データの一括置換が可能です。

//マッピングテーブルの指定
置換テーブル:
Mapping
LOAD
    置換前,
    置換後
FROM
    [lib://DataFiles/置換テーブル.xlsx]
    (ooxml, embedded labels, table is Sheet1);
    
//ココから元データのロード
LOAD
    選手名,
    MapSubstring('置換テーブル',選手名) as 選手名2
FROM
    [lib://DataFiles/選手マスタ.xlsx]
    (ooxml, embedded labels, table is Sheet1);

以下のようなイメージです。

Mapping利用の留意点は次のとおりです ・置換テーブルは2列のみで、1列目が置換前の値、2列目が置換後の値と決められています ・MapSubstringで使用するため、必ずテーブル名をつけます(LOADの前に「テーブル名:」)

 

【オマケ】

個人名で分析をする際に厄介なのがデータの表記ゆれです。いろんなところからデータを集めてくるとどうしても避けて通れなくなり、データ側で整備しようにも毎度Excelで修正するのも大変でした。

例に挙げたように「斎藤、齋藤、斉藤、齊藤」や「渡辺、渡邊、渡邉」「高橋、髙橋」がよく出てきます。特に、斎や邉については、パッと見で違いの分からないレベルで種類も多く元データの修正にも限界がありました。


MapSubstringは、一部文字列の置換にも対応しているので大変便利でした。置換テーブルさえ準備すれば漢字の置換だけでなく、カナや記号の半角全角を置換することも簡単です。


また、Mapping と組み合わせて利用できるのは「MapSubstring」のほかに「ApplyMap」があり、ApplyMapを使うと部分一致ではなく完全一致での置換が可能となります。


【参考情報】


置換前,置換後
髙,高
齋,斎
斉,斎
齊,斎
邉,辺
邊,辺
凛,凜
遙,遥
𠮷,吉
濵,濱
ア,ア
イ,イ
ウ,ウ
エ,エ
オ,オ
カ,カ
キ,キ
ク,ク
ケ,ケ
コ,コ
サ,サ
シ,シ
ス,ス
セ,セ
ソ,ソ
タ,タ
チ,チ
ツ,ツ
テ,テ
ト,ト
ナ,ナ
ニ,ニ
ヌ,ヌ
ネ,ネ
ノ,ノ
ハ,ハ
ヒ,ヒ
フ,フ
ヘ,ヘ
ホ,ホ
マ,マ
ミ,ミ
ム,ム
メ,メ
モ,モ
ヤ,ヤ
ユ,ユ
ヨ,ヨ
ラ,ラ
リ,リ
ル,ル
レ,レ
ロ,ロ
ワ,ワ
ヲ,ヲ
ン,ン
ガ,ガ
ギ,ギ
グ,グ
ゲ,ゲ
ゴ,ゴ
ザ,ザ
ジ,ジ
ズ,ズ
ゼ,ゼ
ゾ,ゾ
ダ,ダ
ヂ,ヂ
ヅ,ヅ
デ,デ
ド,ド
バ,バ
ビ,ビ
ブ,ブ
ベ,ベ
ボ,ボ
ッ,ッ
ャ,ャ
ュ,ュ
ョ,ョ
・,・
ー,ー

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

関連記事

すべて表示

Comentarios


bottom of page