Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
今日は、年間累計 (YTD) の計算に関する特定の問題の解決策について説明します。での質問から生じたものです。確認したい場合は、フォーラムのディスカッションへのリンクを下に残しておきます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
このフォーラムの投稿はここでご覧いただけます–
Year to Date (YTD) は、今年の初めから年末前の指定された日付までの期間を指します。これは基本的に、暦年または会計年度の初めから指定された日付までの日数に基づいています。通常、財務報告の目的で使用されます。
このシナリオでは、 YTD の売上を評価しようとしていますが、発生した可能性のある最後の売上を超えるものは評価したくありません。最後の販売までの累計 YTD 合計のみを表示したいと考えています。
これは LuckyTemplates 内の固有のシナリオであり、おそらく何らかの方法、形、形式で解決する必要があります。
主要な問題を見てみましょう。
目次
今年度累計の計算に関する主な問題点
ここのサンプルTotal Salesでわかるように、実際には結果がない場合は空白が返されます。2018 年に数日しか表示されなかったのはこのためです。ここでは、1 月 6 日までしか表示されていないこともわかります。
ここで、 Salesの単純な年間累計計算を実行してみましょう。[モデリング]タブの[新しいメジャー]をクリックし、メジャーにYTD Sales という名前を付けます。
TOTALYTD関数を使ってみましょう。これにより、年の初日から始まり、指定されたフィルター (この場合は Dates ) を適用した後の指定された日付列の最後の日付で終わる期間にわたって、指定された式 (この場合は Total Sales ) が評価されます。。
確かにとてもシンプルで便利な機能です。ただし、このように実装すると、ある問題が発生します。
ご覧のとおり、その年のすべての日付について累積合計が継続的に予測されます。これにより、最終的には平坦化された数値が得られます。
さて、これを視覚化したいとすると、何も存在せず、単なる無意味な視覚化であることがわかります。
これを改善するには、前回の販売を超えたすべての結果を空白にする必要があります。
したがって、売上は明らかに更新されます。ただし、何らかの理由により、前回の売上に基づいて計算したくない場合もあります。
売上がなかったり、祝日があったり、その他の理由が考えられます。この場合、平坦化された数値を表示する代わりに、最後の購入日に移動することをお勧めします。
売上年累計メジャーの作成
その特定の問題を解決するために使用できるテクニックを次に示します。
まず最初に、最後の販売日の数式を作成し、このメジャーにSales YTDという名前を付ける必要があります。
次に、変数を作成して、LastSalesDateという名前を付けましょう。
次に、 MAXX 関数を使用します。MAXX は、特に日付に関して、非常に具体的なものを見つけるのに最適な方法です。これは、テーブルの各行の式を評価した結果として得られる最大の数値を返します。
その後、ALL関数を使用して、すべての購入日を繰り返し処理します。
次に、実際の最終購入日を評価します。
これを使用しない場合、最終購入日は文字通り毎日その日になります。
ここでALL 関数を使用する必要がある主な理由は、これにより常に 1 月 6 日(最後の購入日) が検索されるためであり、それがまさに私たちが望んでいることです。私たちはこれを常に1 月 6 日としたいと考えています。
次に、ここに変数を作成し、YTDSalesという名前を付けます。
したがって、以前に作成した年初から現在までの売上高の計算式とまったく同じ式を作成します。TOTALYTD を使用して、合計売上高と日付を調べてみましょう。
次に、前のVARステートメントで定義された変数を処理するRETURNキーワードを使用します。
IF ロジックを使用した年間累計売上高の計算
ここでは、 MIN DATE がLastSalesDate 以下であるかどうかを評価するIFロジックを作成します。したがって、この特定のケースでは、これは1 月 6 日以下になります。
結果が true の場合は、YTDSalesを返します。
ステートメントが false の場合は、空白の値を返す必要があります。
これが、実際の販売があった最終日以降の結果を基本的に除外するか、表示しない方法です。
要約すると、私たちがしなければならなかったのは、何らかの方法でLastSalesDate をIF ステートメントに統合することだけでした。
ここで、実際にこのメジャーをSalesテーブルに取り込んでみると、結果が実際に最後の購入日の後に切れて、希望どおりの空白の値が表示されていることがわかります。
間にYTD 売上高メジャーを入れずにこれを見ると、以下の画像のような、より切り詰められたテーブルが得られます。
これを視覚化すると、現在の最終購入日まで保存されます。場合によっては、最後の購入日まで保存することもできます。
結論
このような問題を解決する方法について少しは学んでいただけたでしょうか。空白はビジュアライゼーションに表示されないため、何らかの方法で表に空白を表示するロジックを作成する必要があることに注意してください。
この手法を適切なタイミングでメジャーに実装しないと、ビジュアライゼーションが少し奇妙に見える可能性があります。
この手法は、YTD、QTD、MTD などの現在の日付までの累計を表示するという非常によく似た状況にも適用できます。
独自のモデルで利用できる他のユニークな LuckyTemplates トピックやテクニックについて詳しく知りたい場合は、をチェックすることを忘れないでください。
***** 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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。