【M言語は難しくない】今回は、TEXT関数の中から、2つの事例を紹介したいと思います。通常のエクセル関数と同じ様に、M言語でも文字列を操作する関数は多数あります。興味のある方はぜひ、こちらのMicrosoft社のページも参照してみてください
目次
文字列の有無を判定する関数
Text.Contains関数は、ある文字列の中に指定した文字列があるかとうかを判定し、「TRUE」か「FALSE」で返す関数です
以下の一文は、Microsoft社のページからの抜粋になります
Text.Contains(“Hello World”, “Hello”)
上の ように記述した場合には、「TRUE」を返します
次もMicrosoft社のページからの抜粋になりますが、この場合は「FALSE」を返します
Text.Contains(“Hello World”, “hello”)
ちなみに、
M言語では、大文字と小文字の違いは考慮されますので、この点は注意が必要です
![](https://analytic-vba.com/wp/wp-content/uploads/2021/03/使用データ-5.jpg)
上の画像のデータから、Text.Contains関数で文字列「0」を含む行を判定し、「TRUE」もしくは「FALSE」を返してみます
まず、「列の追加」タブからカスタム列・作成画面を開きます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/03/カスタム列作成画面-2.jpg)
こちらの画面でカスタム列の式に「Text.Contains」と入力します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/03/Text.Conatins.gif)
上のGIF画像のように「Text.Con・・・」と入力する途中で、該当の関数が出てきますので、Tabキーで確定します
次にText.Contains関数の丸括弧の中を、以下の画像のように確定します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/03/関数中味.jpg)
すると、エディタ内に「0」が含まれる行を判定した列が追加されます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/03/判定結果.jpg)
文字列を置き換える関数
Text.Replace関数は、ある文字列の中から、指定した文字列を発見して置き換える関数です
以下の一文は、Microsoft社のページからの抜粋になります
Text.Replace(“the quick brown fox jumps over the lazy dog”, “the”, “a”)
この場合、返される文字列は次のようになります
“a quick brown fox jumps over a lazy dog”
上記の場合、”the”が”a”に置き換えられています
では、Text.Contains関数と同じデータを使用して、「0」を「a」に置き換えて見ましょう!
こちらもText.Contains関数と同じ様に、カスタム列作成画面からM関数を使用します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/03/Replace.jpg)
上の図では、カスタム列作成画面に次のような式を入力しています
=Text.Replace([抽出],”0″,”a”)
では、上記の式を入力してカスタム列作成画面のOKボタンを押します
すると、エディタ内に文字列が置き換えられた列が追加されます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/03/0置換.jpg)
<まとめ>
今回は、Text関数の中から2つだけ事例を紹介しました
1つ目は、文字列が含まれるかどうかを判定する「Text.Contains関数」でした
2つ目は、文字列を置き換える「Text.Replace関数」でした
もし、通常のメニューにない操作をM関数で行う場合には、前述のMicrosoft社のページをぜひ参照してみてください
ちなみに、カスタム列作成画面でM関数を入力する際に、自動で候補の関数が表示されます
該当の関数を選択した場合、Text関数の場合であれば「TextText」と重なってエラーになるケースがあります
こちらのエラーについては、注意が必要です
今回の解説は以上となります
長文を最後まで読んでいただき誠にありがとうございました
![にほんブログ村 資格ブログ ビジネススキルへ](http://qualification.blogmura.com/businessskill/img/businessskill88_31.gif)
![にほんブログ村 IT技術ブログ VBAへ](http://it.blogmura.com/vba/img/vba88_31.gif)
Text.Containsの2番目の引数に渡せるのは一つだけでしょうか?
リストとか?
{”A”,”B”,”C”,”D”}みたいな?