Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
このブログ投稿では、LuckyTemplates 内の DISTINCTCOUNT などのいくつかの関数を使用して、経時的に販売する顧客の数を計算する方法を説明します。実際には計算方法がいくつかあります。そのため、いくつかのことを紹介するために、それに関する短いチュートリアルを作成したいと思いました。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
この例では、設定したデータ モデルを回避する方法を理解することが重要です。そのため、これをどのように設定したかを必ず示します。これは顧客テーブルに COUNT を配置するほど簡単ではないため、重要です。顧客数が時間の経過とともにどのように変化するかを示したいので、結果が日付テーブルによってもフィルターされていることを確認する必要があることに注意してください。
目次
DISTINCTCOUNT を使用して顧客を数える
この投稿では、比較的単純なDAX 式をいくつか見ていきます。これらがどのように論理的に計算されるのか、そして DAX がデータ モデルとどのように連携するのかを考えてみましょう。そこで、データ モデルを簡単に確認します。一番下に Sales テーブル、一番上にファクト テーブルがあります。ルックアップ テーブルとして、日付テーブル、製品テーブル、地域テーブル、顧客テーブルがあります。これらのテーブルはすべて接続されています。
1 日に何人の顧客に販売しているかを確認したいと考えています。ここでは、この数式で発生する可能性のあるわずかな問題を紹介しますが、実際にいくつかの方法で問題を解決する方法を説明します。そうすることで、データ モデルで何が起こっているかを理解できるようになります。
計算式 #1: 1 日あたりの顧客数を計算する
まず最初に行う必要があるのは、1 日に実際に何人の顧客に販売したかを確認することです。できることは、メジャーを作成してそれをTotal Customers という名前にし、DISTINCTCOUNT と Customer Name を使用することです。
論理的には、これがあなたが行う必要があると考えられることです。毎日何人の顧客に販売しているかを数えてください。ここでの問題は、毎日まったく同じ結果が得られることです。
これが得られる理由は、数式が Customer テーブルに送られ、毎日の個別の顧客数を示しているためです。問題は、Dates テーブルが Customer テーブルとまったく関係がないことです。これらのテーブルの両方にある唯一の関係は、Sales テーブルとの関係です。毎日DISTINCTCOUNT を実行すると、Dates テーブルに配置されたすべてのフィルターについて Customer テーブルでは何もフィルターされないため、まったく同じ結果が得られます。
特定の日に販売した顧客の数を調べたい場合は、この式を多少変更する必要があります。Date テーブルが接続されている場所である Sales テーブルを参照するように変更する必要があります。何らかのコンテキストが結果に配置されると、コンテキストはリレーションシップを介して流れ、接続先のテーブル (この場合は Sales テーブル) に流れます。
式 #2: 関係を示す新しい式を作成する
これを達成するために、別の数式を作成し、それをTotal Customers 2と呼びます。再び DISTINCTCOUNT を使用しますが、Customer テーブルを使用する代わりに、Sales テーブル内の顧客名インデックスを見つける必要があります。
この新しいメジャーをテーブルにドラッグすると、毎日の固有の顧客名インデックスの数が表示されます。
式 #3: 拡張されたテーブルの使用
ということで、簡単な方法でやってみます。実は、まったく同じ結果を生成する別の方法があります。LuckyTemplates で答える方法は実際には 1 つだけということはありません。望ましい結果を達成するには、常にいくつかの方法があり、場合によってはそれ以上の方法もあります。
別のメジャーを作成し、Total Customers 3という名前を付けてみましょう。CALCULATE 内で行うことは、作成した最初の Total Customers メジャー (毎日 50 を生成するメジャー) を参照し、Sales テーブル全体をフィルターとして追加することです。
Enter キーを押してテーブルにドラッグすると、計算が少し複雑になるため、計算に時間がかかることがわかります。しかし、ご覧のとおり、実際には正しい総顧客数 2 とまったく同じ結果が生成されています。
これは、拡張テーブルと呼ばれる概念によるものです。ここで Sales テーブルが実際に表すものは、データ モデルのフラット ファイル全体です。Dates、Products、Regional、Customersを含む 1 つの巨大なフラット ファイルがあります。この手法とこの数式を利用することで、基本的にDAX 言語で展開された Sales テーブル全体にわたってTotal Customers メジャーを再計算できるようになります。
最初の小節ではつながりがなかった。そこで、正しい結果を生成するために、計算ステートメント内で Sales 展開テーブルを参照することにより、3 番目のメジャーに接続を作成しました。
データの視覚化
通常は、面グラフを使用して視覚化を開始できるように、作成した #2 のオプションを選択します。
1 日に実際に何人の顧客に販売しているかを時間の経過とともに確認できます。LuckyTemplates 内の組み込み分析関数を使用して傾向線を描くこともできます。1 日あたり平均して 8 ~ 9 人の顧客がいることがわかります。
これもすべて動的であるため、追加したい追加のコンテキストを取り込むことができることに注意してください。
いくつかの概念を説明しましたが、それらはさまざまな用途に使用できます。顧客ではなく、製品、地域、または販売員である可能性があります。その中心となるのは、DISTINCTCOUNT の動作を理解し、正しい結果を計算していることを確認するために舞台裏でデータ モデルを理解することです。
結論
この手法により興味深い洞察が得られ、最終的にはこれをさまざまな方法で利用して視覚化することができます。思い浮かぶ方法の 1 つは、シナリオ分析によるものです。過去の顧客数から将来を予測する予測に基づいて、販売する顧客の数を増やした場合に業績にどのような影響が出るかを確認できます。推定平均販売価格を使用してこれに対してシナリオを実行し、顧客ごとの平均値を導き出すことができます。本当に強力なものです。これで私と同じチャンスが得られることを願っています。
この種の洞察を視覚化するもう 1 つの方法は、時間の経過に伴う比較を示すことです。販売した顧客の数を累積的に表示し、先月または前四半期と比較したい場合があります。ここから開始して、タイム インテリジェンス関数を使用して「分岐」します。
コースでは、常時インテリジェンス関数を使用してこの時間比較分析を完了する方法を説明します。
これの実装を頑張ってください。何かご意見があれば、以下のコメント欄でお知らせください。
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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。