Qlik Senseで特定文字列が含まれているか判断して分類する_SubStringCount関数
初期のデータ分析ではマスタが粗く、様々なカテゴリや分類をする項目が準備されていないことがよくあります。また、そういうケースに限ってコード体系も十分でなく、マスタ名称項目しかないことが多いです。ここでは、項目値に特定の文字列が含まれているか判断して分類項目を作成する手法を記します。
※2024年1月時点のQlik Sense Businessを利用しています。
<商品名を分類して集計したいときの例>
下図では「商品名」列に明細商品名が入っていますが表記が様々で規則性が乏しいです。「店頭用」の商品とそれ以外で集計して比較しようにも分類項目がないのでデータ準備が必要です。
表記に厳密な規則性があれば、Left関数やSubstring関数などできれいに分類できることもありますが、上記のデータは「店頭」の文字列が入っているというだけで、出現位置や表記がバラバラです。
<サンプル数式>
今回はSubstringCount関数とIF分岐を利用して、
商品名に ’店頭’ の文字列が入っていたら '店頭用' とし、なければ '店頭外' とする
ような分類項目を準備します。
■SubstringCount関数を使う
▼SubstringCount関数の構文
=SubstringCount(文字列項目,'判定文字列')
※文字列項目に、判定文字列が出現する数を返します。
判定文字列が含まれていない場合は 0 となります。
上記サンプルデータの例)
=SubstringCount (商品名,'店頭')
下記のような結果が返されます。
■IF文で分岐する
SubstringCountで返された値が 0 だったら「店頭外」と表示し、それ以外なら「店頭用」と表示します。
=If (SubstringCount (商品名,'店頭')=0,'店頭外','店頭用')
★分析のコツ★
今回のようなマスタデータの準備は、シート上で動きが確認できたら、ロードスクリプトで実装してデータとして実体を持つようにしましょう。アプリ内にデータの実体を持つことで、シート上で特定の値として選択できるようになります。
【参考】
Qlik Cloudヘルプ:SubStringCount関数
以上です
Comentários