Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
このチュートリアルでは、 LuckyTemplates 内で動的にデータをグループ化する、非常に高度なデータ セグメンテーション手法について説明します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
このチュートリアルでは、顧客インサイトに関するラーニング サミット中に私が使用したこのダッシュボードの特定のビジュアライゼーションを具体的に見ていきます。
この場合、売上の割合に基づいて顧客をグループ化またはセグメント化しています。セカンダリ テーブルまたはサポート テーブルを利用し、それを DAX 式と組み合わせてこのグループ化を作成します。
目次
売上比率に基づいた顧客のセグメント化
1 つのグループは上位 20% に属し、別のグループは 25% ~ 80% の間に属し、3 番目のグループは下位 25% に属します。これらのパーセンテージを利用してDAX 式に入力し、 Top、Mid、Bottomのグループを作成しました。
この場合のセグメンテーションは売上に基づいているため、これは特定の期間の売上と利益を示すグラフですが、セグメンテーションは売上によって行われています。
この散布図では、顧客の上位 20% がわかります。それらは濃い青色の点で表されます。中規模の顧客は、売上高の観点から見ると 25% ~ 80% の間に位置します。それらは、チャートの中央部分にある淡い青色の点で表されます。売上ベースで下位 25% の顧客は、グラフの下部にある水色の点です。
これはデータ セグメンテーションの非常に高度な手法であり、計算内に高度なロジックを組み込んで 、存在しないグループを作成します。言い換えれば、当社の生データには、顧客の上位 20 位、下位 25% などを分類するものは何も存在しません。
したがって、サポート テーブルまたはセカンダリ テーブル(私がそう呼ぶところ)を使用してそのロジックを作成する必要があります。このテーブルには、データ モデル内のどのテーブルとも物理的な関係はありませんが、このタイプの分析の鍵となります。
二次テーブルまたは補助テーブルの使用
それでは、表を見てみましょう。これらのグループはおそらくさまざまな方法で作成できますが、このデモンストレーション用に私が設定した方法は次のとおりです。
この補助テーブルまたは二次テーブルには、グループが Top、Mid、Bottom として含まれています。各顧客がどのセグメントに属するかを識別するために、「Low」列と「High」列があります。
このパーセンテージの 2 番目のテーブルは、実際にはさまざまなメジャーにわたって再利用できます。売上を使用することもでき、マージン、利益、コスト、その他の実行可能な計算を簡単に統合することもできます。売上や収益に関連する必要さえありません。
パーセンテージは何にでも使用できるため、ロジックの一部を再利用することもできます。ここで重要なのは、数式内に正しいロジックを作成することです。
それでは、私が(今年) 呼んだ式を詳しく見て、そのロジックをどのように実行したかを見てみましょう。
変数を計算する
まず、変数 ( VAR )を計算する計算の最初の部分を見てみましょう。
最初の変数は、これから作業するRankDimensionを識別することです。この場合、それは顧客です。VALUES関数を使用して、特定の期間内に販売を行ったすべての顧客を反復処理します。
次の変数はTotalCustomersで、実際に販売を行った顧客の数を計算します。すべての顧客をカウントするのではなく、ある程度の売上を上げた顧客だけをカウントしたいと考えています。このロジックでは、 CALCULATE、COUNTROWS、FILTER、およびALL関数を使用しています。
3 番目の変数はCustomerRankで、顧客の売上に基づいて顧客をランク付けします。これが顧客ランク TYの計算式です。
この特定の式は、 RANKX関数を使用して単純なランキングを実行しているだけです。
データセグメンテーションのロジック
それでは、残りの計算を見てみましょう。これが、このデータ セグメンテーション分析を実現するためのロジックです。
CALCULATE関数は各顧客を反復処理し、COUNTROWS 関数と FILTER関数で作成したサポート テーブル ( Customer Groups ) を通じて評価します。
次に、CustomerRank がTotalCustomersより大きいかどうかを評価し、それにCustomer Groups Low列を乗算します。つまり、CustomerRank が下位よりも高いかどうかを尋ねています。
次の行では、CustomerRank が TotalCustomers 以下であるかどうかを強調表示します。 次に、顧客グループ テーブルの上位ビンを乗算します。
それが true に等しい場合、その顧客は維持され、総売上が得られます。
データセグメンテーション式を再利用する方法
この式は少し複雑ですが、非常に興味深いものです。この計算も再利用します。
たとえば、利益率などの別の指標で顧客を調べたい場合は、ここで総売上高を利益率に置き換え、利益率に基づいてランクを変更するだけです。
次に、まったく同じサポート テーブルを利用して、このロジックを実行できます。
DAX を使用して LuckyTemplates でデータをセグメント化およびグループ化する LuckyTemplates で
高度な DAX を使用するセグメンテーションの例
LuckyTemplates の RANKX を使用したランク付けによって顧客を動的にグループ化する
結論
これは、このチュートリアルで説明したデータ セグメンテーションに関するより高度なテクニックです。DAX の機能とサポート テーブルを備えたデータ モデルを利用します。
フォーミュラ全体を使って何ができるかは驚くべきことです。期間は変更でき、設定した特定のパーセンテージで常に顧客を分割します。
このチュートリアルから大きな価値を感じていただき、ご自身の仕事に応用していただければ幸いです。
ではごきげんよう!
***** 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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。