Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
今日のブログでは、 LuckyTemplates フォーラムで常に寄せられる質問について説明します。拡張日付テーブル列のフィールドを適切に並べ替えるにはどうすればよいでしょうか? このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
エキスパートの 1 人である Melissa Dekorte によって開発された M コード ショーケースの拡張日付テーブルを指します。
このブログ投稿の例は、7 月に始まる会計年度で 2018 年から 2020 年まで実行される単純なアプリケーションです。メンバーは、月の名前を並べ替える方法を知りたいと考えていました。また、月に関連するフィールドの 1 つを並べ替えようとしていました。
これは、日付テーブルの列を効果的に並べ替える方法です。
拡張日付テーブルには多くのフィールドがあります。率直に言って、それらを整理整頓するのは難しい場合があります。
これが、特定の日に各フィールドがどのように見えるか、その形式と内容を示すこのチートシートを作成した理由です。
ほとんどの場合、これを使用して、あるフィールドを別のフィールドに基づいて並べ替える方法を理解できます。
私たちは月の名前を持っていますが、フォーラムのメンバーはそれを整理するためにMonthnyearを使用しようとしていました。
拡張日付テーブルで月の名前を見つけてみましょう。[フィールド] ペインで[月名]を選択し、[列による並べ替え]に移動して、Monthnyearを探します。
これをクリックすると、Month Name の同じ値に対して Monthn Year に複数の値を含めることはできないというエラー メッセージが表示されます。
これは粒度の問題に帰着します。並べ替えようとしているフィールドと並べ替えに使用しているフィールドの間には 1 対 1 の関係が必要です。
この場合、2018、2019、および 2020 の特定の月について、Monthnyearフィールドに 3 つの異なる値を設定できます。このため、1 対 1 の関係を持つものを見つける必要があります。
チートシートに戻ると、Monthofyear が単なる月の数値であることがわかります。これにより、私たちが探している 1 対 1 の関係が得られます。これは、1 月は 1、2 月は 2 などに対応することを意味します。
「列で並べ替え」をクリックし、「年の月」で並べ替えると、フィールドまたはテーブルの列が適切に並べ替えられます。
次の月と年は少し難しくなります。これは、短い月と年を含む複合フィールドです。
まず年ごとに並べ替え、次に月ごとに並べ替えるものを見つける必要があります。[フィールド] ペインで[Monthnyear]をクリックし、 [列で並べ替え]に移動すると、最初に使用しようとしたMonthnyear が完全に一致します。
Month & Year テーブル列では、すべてが完全にソートされていることがわかります。
これで最初の 2 つが完了しました。しかし、最後は本当に行儀の悪い分野です。
これにはいくつかの理由から問題があります。2 つのテキスト フィールドが連結されており、会計月フィールドは埋め込まれていません。
最終的には、 4 桁の会計年度があり、その後に 2 桁の会計月が埋め込まれた、このMonthnyearと同様のものを実現したいと考えています。
これを行う最も簡単な方法は、パワー クエリを使用することです。
「データの変換」に進みます。
次に、Dates テーブルに移動し、カスタム列を追加します。
このカスタム列を「会計年度会計月ソート (FYFM ソート)」と呼びましょう。
まず、テキストの接頭辞 (年の最初の 2 桁を表す 20) を指定し、それをTex.Middleという関数と連結します。この関数は、より大きなテキスト文字列から部分文字列を抽出します。これはDAX 関数 MIDに似ていますが、この 2 つの違いを説明します。
これを会計年度フィールドで使用します。
DAX では、部分文字列を取得する場合、1 から始まるインデックスが使用されます。3 番目の文字を取得するには、3 を使用する必要があります。パワー クエリでは、これは 0 から始まるインデックスなので、3 番目の文字は 012 になります。
3 番目の文字である 2 から始めます。会計年度フィールドから 2 番目の数字のペアを取得するために、2 つの文字を返したいと考えています。
次のステップでは、これをパッドされた会計月フィールドと連結します。
DAX では、LENGTH 関数と IF 関数を使用する必要があるため、手動でパディングできます。
パワークエリには、そのすべてを実行する関数があります。これはText.PadStartです。
会計期間は数値フィールドであるため、 Text.Fromという関数を使用して、数値を埋め込み可能なテキスト値に変換する必要があります。次に、会計期間フィールドを取得します。
文字が 2 つあることを確認したいと思います。1 文字の場合は 0 で埋められます。
「OK」ボタンをクリックすると、4 桁の会計年度が表示され、次に 2 桁が埋め込まれた会計月が表示されます。
次に、 「ホーム」に戻り、「閉じて適用」をクリックします。
FM & FY フィールドを列ごとに並べ替えると、会計年度、会計月の順に完全に並べ替えられるようになります。
結論
このブログでは、LuckyTemplates で日付テーブルの列を並べ替える方法について説明しました。これは、いくつかのカスタム関数を構築することから得られた、難しい分野に適した戦略です。この一般的なツール セットが独自のレポート開発に役立つことがわかっていただければ幸いです。
まだ登録していない場合は、LuckyTemplates TVチャンネルに登録してください。今後、さらに多くのコンテンツが公開される予定です。
乾杯!
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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。