Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
このチュートリアルでは、進行中のイベントに対するLuckyTemplates DAXメジャーを作成する方法を説明します。これらのイベントは、レポートの性質に応じて、進行中の注文または進行中の販売の形で表示される場合があります。
基本的に、ここでの課題は、ファクト テーブル内に複数の日付がある場合の結果を計算することです。同様の要素が存在すると結果にエラーが発生する可能性があるため、それを回避する方法を見てみましょう。
目次
同じテーブル間の 2 つのリレーションシップの処理
Salesテーブルは次のようになります。
ご覧のとおり、ここにはOrder DateとShip Date という2 つの日付列があります。
ここに 2 つの日付テーブルがあるという事実により、さらに優れた分析が可能になります。現在、注文日から出荷日までの間に何件の注文がありますか? 現在進行中の注文は何件ありますか?
このタイプの分析は、必ずしもこの特定のシナリオにも適用する必要はありません。同じパターンが何度も繰り返されることがわかっているアプリケーションの世界があります。DAX 式の作業を開始すると、そのパターンが何であるかがわかります。
ただし、式に入る前に、特にテーブル間の関係に関して検討すべきことがいくつかあります。それでは、何が起こっているのかをよりよく理解するためにデータ モデルを見てみましょう。
進行中のイベント パターンは、 DateテーブルとSalesテーブルの間に複数のリレーションシップを作成する必要があることを意味します。
最初の関係は、DateとOrder Dateの間です。
また、 「Date」列と「Ship Date」列の間にリレーションシップを作成する必要があります。
ただし、一方の関係を別の関係よりも優先させることはできないため、これら 2 つの関係を非アクティブにする必要もあります。そうしないと、レポートで問題が発生します。
ここに例を示します。Total Salesメジャーをレポートにドラッグすると、奇妙な結果が得られることがわかります。日付全体の合計売上が表示されます。
このように表示される理由は、何をフィルタリングすればよいのかわからないためです。それは、背景にある 2 つの関係が互いに打ち消し合っているためです。このような進行中のイベントを適切に実行するには、2 つのオプションのどちらかを選択する必要があります。
最初のオプションは、この計算専用の別のテーブルを作成することです。関数を使用してコア メジャーを計算するステートメントを作成することです。
進行中のイベントに対する LuckyTemplates DAX の測定
2 番目のオプションに取り組んでみましょう。これは、このシナリオに適用できる進行中のイベントのメジャーを作成することです。
まず、 Total Revenueのを使用するCALCULATEステートメントから始めます。次に、USERELATIONSHIP関数を使用して、Sales DataテーブルのOrder Date列を参照します。
これは、進行中のイベントの式で使用するパターンをマークします。繰り返しますが、これは、モデル内に別のDateテーブルを再作成する必要がないことを意味します。
Sales in Progressで試してみましょう。
Total Sales を別のコンテキスト内で計算する必要があるため、 CALCULATE を使用してTotal Salesを参照します。
次に、分析を行う 2 つのフィルターを作成する必要があります。関数から始めて、Order Dateにを使用します。次に、 Order Date が Date以下であることを追加します。
2 番目のフィルターには、今回は出荷日を使用します。 Date以上である必要があります。
これをテーブルに追加すると、まだ正しい結果が返されていないことがわかります。
それは、主要な指標として総売上高があるとしても、それをまだ計算していないからです。私たちのモデルにはTotal Salesはなく、Total Revenueのみがあります。
したがって、これから行うことは、Total RevenueのSUMを取得してTotal Salesを取得することです。
これで、実際のSales in Progressが表示されます。
これをグラフに変換して、数値が時間の経過とともにどのように変化するかを視覚的に表現できるようにしましょう。
LuckyTemplates DAX メジャーの再利用
このメジャーを再利用することがいかに簡単であるかを見てください。先ほどは、進行中の販売状況について説明しました。技術的には、まだ進行中であるという事実は、まだ収益がないことを意味します。注文が実際に発送された場合にのみ支払いが行われます。
これは、もう 1 つの優れた分析を示しています。請求書を送信して支払いを受け取る前に、製品を製造するためにどのようなキャッシュフローが必要ですか? これを確認するために、進行中の注文数を計算してみましょう。ここでメジャーの名前を変更するだけです。
次に、 Total Salesを計算する代わりに、 関数を使用してSales Dataを参照します。
基本的に、この新しい測定は、処理されている注文の数を計算するだけです。これを表の列として取り込むつもりはありませんが、レポートに視覚化したものがあるとよいでしょう。
それでは、 Sales in Progressのグラフをコピーして貼り付け、値をOrders in Progressに変更しましょう。
これで、実際に進行中の注文の数がわかります。これは、特定の日に注文されたものの、まだ出荷されていない商品の数を把握するのに役立ちます。
追加のフィルターの作成
レポートにフィルターを追加することで、これまでに確認した内容以外にも追加の洞察を得ることができます。有効なフィルターの 1 つは、 Product Nameです。これにより、特定の製品の注文数の傾向を確認できるようになります。
それでは、製品 6 を注文した人の数と、それから期待される収益を確認したい場合はどうすればよいでしょうか? フィルターにチェックを入れるだけなので簡単です。
探している分析の種類に応じて、他にも便利なフィルターがあります。たとえば、顧客用のフィルターを使用できます。これは、最大の顧客が誰であるかを判断するのに役立ちます。地域のフィルターを追加して、これらの注文の送信元を特定することもできます。
DAX メジャー分析: 長い DAX メジャーの分割
LuckyTemplates の DAX メジャー メジャー分岐の使用
レポートへの DAX メジャー グループの実装 – LuckyTemplates モデリングのレビュー
結論
このようにLuckyTemplates DAX メジャーを使用する場合、舞台裏で多くのロジックが実行されます。メジャーが Sales テーブルのすべての行を評価しながら、注文日と販売日の適切な条件を満たしているかどうかを確認しているという事実だけでも、非常に印象的です。
だからこそ、パターンを学習して何度も再利用することをお勧めします。こうすることでパターンに慣れることができ、長期的には楽になります。さまざまな方法で分析を実際にスライスし、さらに優れた洞察を実現できるように、必ずフィルターも追加してください。
ではごきげんよう、
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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。