Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
というシリーズのために作成したテキスト クリーニングのカスタム関数を詳しく見ていきます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
第 2 週では、クリーンアップが必要な乱雑なデータがいくつかあります。ここでの目標は、両方の列のすべてのテキスト値をクリーンアップすることです。
このタスクのために、クリーン テキスト関数を作成しました。
まずは、M コードを簡単に見てみましょう。
この関数は、myText という 1 つのパラメータを受け取ります。以下にリストされているすべての変数がテキスト値を返すわけではないため、その値はテキスト型である必要があり、関数はテキスト値を返す必要があります。
戻り値の型を宣言するとエラーになります。このエラーの発生を防ぐために、今のところはコメントアウトできます。
最初の変数が何を返すかを確認したい場合は、in 句の後に名前で参照するだけです。そこで、ToRemove 変数をコピーし、一番下の行に貼り付けて、[OK] をクリックします。
その関数の結果を確認するには、その関数を呼び出す必要があります。このクエリにカスタム列を追加しましょう。
次に、関数を呼び出し、この結合された列を選択して、[OK] を押します。
目次
空のクエリからリストを作成する
ToRemove ステップでリストが作成されることがわかります。実際には、これは 2 つのリストを組み合わせたものです。
最初のリストは引用符を作成し、2 番目のリストは削除したい文字の範囲を示しています。
このリストはどうやって作成したのでしょうか?
さて、私はTxt.ToListという関数を使いました。
内部関数のドキュメントにアクセスするには、空のクエリを作成し、括弧なしで関数名を入力し、Enter キーを押します。
Text.ToList が指定されたテキスト値から文字値のリストを返すことがわかります。
いくつかのテキストを貼り付けて、この関数を呼び出してみましょう。
新しいクエリが作成され、このリストにはテキスト内に表示されるすべての文字が含まれていることがわかります。
追加のリストを追加したことを覚えていますか? 2 つのリストを結合し、アンパサンドを使用しました。
それを今再現しましょう。アンパサンドとリスト初期化子を使用して、引用符を入力しました。
引用符がこのリストに追加されたことがわかりますが、なぜリストを作成したのでしょうか?
さて、テキスト クリーニング関数の次のステップでは、Text という M 関数を使用しました。削除。
テキストを入力してから、その文字列から削除する文字のリストを入力できることがわかります。
テキストクリーニング機能に戻りましょう。
に。Remove はこれら 2 つのリストを作成し、それらを 1 つのリストに結合しました。
次に、CleanText 変数を貼り付けましょう。'in' 句は M 関数 Text.Remove を呼び出し、myText 変数を渡してから、To.Remove リストを呼び出します。これが何をするのか見てみましょう。
クエリに戻りましょう。これはリストを返さなくなりましたが、いくつかのテキスト値を返します。
Power Query でのトリミング
次のステップはトリミングです。上の画像からわかるように、追加のスペースと最後にある末尾のカンマを削除する必要があります。これを行うには、トリム関数を使用できます。クエリに戻って M コードを調べてみましょう。
M コードでは、2 つのトリム関数をネストしました。最初の文字列関数は、CleanText 変数の先頭と末尾にある追加のスペースを削除します。
残りのテキストについては、結果の文字列からスペースも削除します。
末尾のカンマも削除します。
結果を見てみましょう。変数名をコピーし、「in」句の後に貼り付けて、「完了」をクリックします。クエリを更新すると、追加のスペースが削除され、末尾のカンマが削除されていることがわかります。
クエリの最後のステップでは、いくつかのテキスト値を置き換えただけです。
最後のケースでは、アンダースコアをスペースに置き換えました。それをコピーして、「in」句の後に貼り付けましょう。戻り値の型も再度有効にしました。
クエリに戻って結果を調べてみましょう。これまでのところ、非常に良好です。
さて、関数を呼び出すために新しい列を作成する必要はありませんよね? 私たちができることは、代わりにマージ列の列 1 を変換することです。
このカスタム列ステップを削除します。
次に、UI を使用してコードの大部分を作成します。[変換] タブで両方の列を選択し、[形式] に移動して関数を選択します。
これは UI によって生成される M コードであるため、どの関数が選択されるかは実際には問題ではありません。これで、そのテキストを置き換えることができます。下位機能…
…クリーンテキスト機能を使用します。なぜ fx を前に追加しなければならなかったのか理解していただけたでしょうか。それから始まる「in function」はありません。
OK を押すと、テキストが消去されたことがわかります。これはすごいですね。
結論
なぜカスタム クリーニング関数を作成するのに苦労しなければならなかったのでしょうか? 今後、この手順を繰り返すか、同様のロジックを使用する必要がある可能性がある場合は、この関数クエリを保存できます。
そうすることで、後の段階でのクエリの開発がスピードアップします。もう一つの良い理由は、それが楽しいからです。
このチュートリアルを楽しんでいただければ幸いです。購読した場合は、 LuckyTemplates チャンネルに登録することを忘れないでください。
メリッサ
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。
Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。
LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。
SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。
SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。
ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。
DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。
LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。
このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。