Power BI - 特定の文字列が含まれているか判定するM関数(Text.Contains関数)
Excelだったら
IF関数と「*」(ワイルドカード)を使ったり、
FIND関数やSEARCH関数を使えば、
セルの中に特定の文字列が含まれているか判定できます。
Power BIのクエリエディターで特定の文字列が含まれている行を判定したい場合は、Text.Contains関数を使います。
具体例
ちょっとダサい例ですが、このような売上の管理簿があったとします。
このテーブルのComment列に「セール」と書かれた文字列を含んでいる行だけに、フラグを立てるというのが目的です。
「Comment列でソートかければいいじゃん」と思うかもしれないのですが、ソートをかけてしまうと、その他のレコード(行)が消えてしまいます。
今回の例では、「セール」という文字が含まれていない行も残しておきたい(=分析対象としたい)ので、
新に列を追加して、「セール」という文字がComment列に含まれている行だけにフラグを立てたいというものです。
完成のイメージはこんな感じです↓
(判定列を追加しました)
クエリの書き方(M式の書き方)
Power BIに上記のデータを取り込んで、
クエリエディターを開いた状態はこんな感じです。
列の追加 > カスタム列 から、列を追加します。
使用した主な関数は、Text.Contains関数で、1つ目の引数に検索対象となる列を指定し、第2引数には探したい文字列(今回の場合は「セール」)を指定します。
リファレンスも貼っておきます。
これでOKを押すと、
できました!
おまけ
今回は判定列に「セール」という文字列を追加しましたが、
例えば数字の「1」などを入れておくと、
レポート画面で「セール」と書かれたレコードだけを条件付き書式で色を変えるなど応用が利くようになります。