Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
このチュートリアルでは、DAX 数式を記述できる 2 つの場所について説明します。これら 2 つの場所は計算列とメジャーです。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
一度に 1 つずつ説明し、計算列から始めます。
目次
計算列の使用
計算列は、生データ ソースには存在しない追加の列です。
これは、データテーブルに物理的に追加する必要があることを意味します。
これを行うには、DAX 数式ロジックを列に追加して追加の列を作成します。これは Excel での作業に非常に似ており、数式を含む別の列を追加します。
この例では、小売店でのすべての売上を含むファクト テーブルを使用し、製品の価格を追加します。
価格は実際にはここの Products テーブルにすでに存在しており、そこには元の販売価格と現在の価格が含まれています。
ただし、計算列の作成方法を示すために、これを Sales テーブルにも追加します。
これらの例の多くでは、特に計算列の場合、実際にはこれらの列を作成する必要はありません。
Excel のバックグラウンドを持っている場合は、そうする必要があると思うかもしれませんが、LuckyTemplates ではその必要はありません。これは、計算列とは何かを示すためだけに行っています。
ただし後ほど、実際にメジャーを使用してこれらの計算を実行する方法と、データ テーブル内に物理列を追加する方法を説明します。
最初の例として、ここに価格を追加してみましょう。
計算列を作成するには、「モデリング」リボンを開き、「新しい列」を選択します。
この列に価格を取得するための非常に単純なロジックをここに書きます。これを Sales Price という名前にし、RELATED関数を使用して列名を参照します。
この場合、 「現在の価格」列を参照します。これにより、販売されたすべての商品の販売価格がわかります。
RELATED関数は、個々の製品の価格をもたらします。
そして、ここに新しい列を作成して、それをTotal Revenueと呼ぶことができます。次の式を使用します。
総収益 = 売上[数量] * 売上[販売価格]
これらは、計算列を作成する方法のほんの一部の例です。
データ モデル内の任意のテーブルに計算列を作成することもできます。ファクトテーブルや売上テーブルだけである必要はありません。LOOKUP テーブル内に含めることもできます。
たとえば、この詳細な日付テーブルにジャンプします。これらの列は、DAX メジャーのフィルターとなる列と考えてください。
このテーブルを見ると、現在存在しないディメンションがここにあることがわかります。これをビジュアライゼーションの一部に取り入れたいと思うかもしれません。
計算列を作成する別の方法を紹介するために、MonthName 列を使用します。
ここの MonthName は完全な月ですが、必要なのは各月の最初の 3 文字だけです。
そこで、 [モデリング]リボンの[新しい列]に移動し、この列をShort Monthという名前にします。
Excel でよく知られているロジックをいくつか使用します。LEFTを使用して、月の名前を検索します。その月の名前の最初の 3 文字のみを使用します。
ここで横に移動すると、「Short Month」列が表示されます。ここには各月の最初の 3 文字だけが表示されます。
私はこれを、分析にディメンションを追加することと呼びたいと思います。これは、基本的に、今後行う分析全体で使用できる別のフィルターを作成したからです。
データ モデルに戻ると、Dates テーブルに Short Month 列が存在し、この Sales テーブル内で行うことをすべてフィルターできることがわかります。
したがって、計算を実行して数量をカウントアップすると、短期月でフィルターできるようになります。
これらの計算はすべてメモリ内で実際に作成できるため、ここでこれらの列を作成することはお勧めできません。
メジャーを作成することで、テーブル内に物理的に配置することなく、これらの内部計算を行うことができます。
これは、データ テーブル上に DAX 数式を記述する方法を学習する際に覚えておくべき重要な点です。
メジャーの使用
次に、対策についてお話します。
メジャーを仮想計算として考えてください。実際にはモデルの内部に配置されるのではなく、モデルの上に配置されます。
メジャーを使用する場合、メジャーは使用時にのみ計算を実行します。
Excel では、列またはセルで計算を実行するたびに、常に再計算が行われます。ただし、LuckyTemplates では、メジャーは必要な場合にのみ計算されます。
メジャーは、ビジュアライゼーションで使用する場合にのみ有効になるストアド計算プロシージャのようなものです。
そこで、その点を強調する簡単なメジャーを作成してみましょう。まず、Sales テーブルを選択し、そこにある列を選択します。
新しいメジャーを作成するには、[モデリング]リボンに移動し、 [新しいメジャー]をクリックします。
アイコンをクリックすると、この数式バーが開き、数式を入力できます。
「Total Quantity Sold」を入力して、Sales テーブルの Quantity 列の合計を取得します。
これで、非常に単純な尺度が得られ、実質的に計算が完了しました。
また、メモリ内のすべてを計算しています。言い換えれば、これは、期間を通じて販売したアイテムの合計を計算しているということです。
ここで覚えておくべき重要な点は、このメジャーはモデル内に保存されているだけで、レポート ページにドラッグしない限り、実際には計算を実行しないということです。次に、仮想的に計算を実行します。
したがって、この場合、このメジャーは仮想的に Sales テーブルに移動し、そのテーブルの Quantity 列に移動して、その列全体の合計を計算します。
これは実際には集計メジャーと呼ばれるもので、すぐに説明します。
ここで、新しいメジャーを作成し、これをTotal Salesという名前にします。次に、 SUMXという反復関数を使用します。これについては、別のモデルですぐに説明します。
Sales テーブルを参照して、次の式を考え出しました。
総売上高 = SUMX( 売上高, 売上[数量] * RELATED( 製品[現在の価格] )
覚えていると思いますが、この関連する現在価格をデータ テーブル内に物理的に入れたわけではありません。ただし、この場合は、このメジャーに組み込むことで、仮想的にデータ テーブル内に入れています。
次に、反復関数SUMX がSales テーブルに移動し、数量と関連する現在の価格を乗算したテーブル内のすべての行を選択します。
この合計売上高から結果が得られます。
データ型が一番上にある [モデリング] タブで書式設定を行うこともできます。
LuckyTemplates スライサーの選択内容を収集して他のメジャー内で使用する方法を学ぶLuckyTemplates の日付テーブルに勤務日と週末の日の番号を配置する LuckyTemplates で 現在日付または特定の日付までの結果を表示する
結論
DAX 式を記述できる計算列とメジャーについて説明しました。
計算列で重要なのは、データの列をモデルに物理的に配置することです。一部の大きなテーブルでこれを行うと、列が非常に大きくなる可能性があります。
これらの計算列はモデル内で多くのメモリを占有する可能性があることを認識することが重要です。
ファイル サイズが大きくなる可能性があり、テーブルの大きさによってはパフォーマンスに影響を与える可能性があります。
ただし、メジャーを効果的に使用してこれらの計算の多くを仮想的に実行することで、これに対抗できます。これらの計算列を記述した場合と同じ結果が得られます。
このチュートリアルで、DAX 数式を記述できる 2 つの場所と、DAX 数式を記述する際の考慮事項がより明確になれば幸いです。
これは、LuckyTemplates 内の分析に DAX を組み込む方法を理解するのにも役立ちます。
レビューをお楽しみください。
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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。