Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
このチュートリアルでは、LuckyTemplates のファクト テーブルで複数の日付の���算を管理する方法を説明します。 このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
でよくある質問です。
これらの複数の日付には、注文日、出荷日、有効期限、到着日などが含まれます。この情報は、データ セット内の 1 行内にある場合があります。
このテクニックから得られる洞察は次のとおりです。
LuckyTemplates を始めたばかりの場合、この手法の数式の記述は混乱する可能性があります。
このチュートリアルの詳細な例を使用すると、ファクト テーブルで複数の日付計算を管理する方法を理解できます。
目次
公式とモデル
このチュートリアルのデモ データ セットのモデルを見てみましょう。
この種のテーブルは、特に注文日、有効期限、リクエスト日などに対して存在できます。
モデルの設定は非常に混乱する可能性があります。
これは 2 段階のプロセスです。1 つは、モデルが正しい必要があるということです。2 つ目は、計算には正しい DAX 式が含まれている必要があります。
この手法の優れた点は、他の同様のシナリオでも使用できることです。
ここで、計算では、特定の日付に有効な注文の数を示す必要があります。この場合、ライブとは有効期限が切れていない注文を意味します。
数式では、複数の日付の間にある情報をカウントする必要があります。解決しようとしている内容によってコンテキストは異なりますが、テクニックは同じです。
モデルは次のように設定する必要があります。
非アクティブな関係を使用する必要があります。
計算を正しく行うためには、モデル内にアクティブな関係を含めることはできません。
進行中の要素のカウントを含むロジックを計算する場合は、非アクティブな関係が必要です。
この問題を解決するために使用できる最も簡単な方法は、非アクティブな関係を維持することです。積極的な関係を築きたい場合は、新しい式を作成するなど、高度で複雑な方法もあります。ただし、これはお勧めできません。
次に、ファクト テーブルのコンテキストを使用する式を作成し、データ テーブル内の高度なロジックを実行する必要があります。
ビジュアルを通じて理解を深める
この手法がどのように機能するかをよりよく理解するには、次の視覚化を見てください。
ビジュアライゼーションの時間枠は、注文日から有効期限までの間に何件の注文があるかを示しています。
2019 年 4 月から 7 月にかけて、多くの注文が期限切れになったことを示す大きな急増が見られます。
この視覚化により、テクニックが何を行っているかを理解しやすくなります。
アクティブな注文の計算
ここでは、まだ有効な注文の数を計算する方法を説明します。
まず、合計注文数の計算式から始める必要があります。
この数式では関数を使用してデータ テーブルを並べ替えます。
次に、特定の日の注文をカウントできる数式が必要です。
注文日が特定の日より小さく、有効期限が特定の日より大きい場合、その日付範囲内に属するすべての個別の注文がカウントされます。
アクティブなリレーションシップがないため、テーブル内のすべての行について、モデルのファクト テーブルから取得されるコンテキストは現在ゼロです。
式に戻ると、関数と関数はテーブル内のすべての行の日付を返すだけです。
たとえば、2019 年 3 月 21 日の行には 477 件の注文があります。
これは、Date テーブルの 5,700 行内のすべての注文日を反復処理した結果です。有効期限より前の注文と注文日より後の注文が 477 件あります。
Order Between Dates 式では、テーブル内のすべての行に対して同じロジックが使用されます。
ここで、表に表示される合計には日付のコンテキストがありません。
これは、式内のステートメントによって設定された基準に適合する、各日付のすべての注文の単純な合計です。
非アクティブな関係を使用することが重要な理由
非アクティブな関係がモデルを機能させる鍵となる理由に戻りましょう。
モデル内で非アクティブな関係を使用すると、よりクリーンになります。また、特定の計算に必要なものに応じて、任意の関係を簡単にオンにすることもできます。
以下に例を示します。
注文日別に合計注文数を取得したい場合は、日付テーブルとデータ テーブルの間にアクティブなリレーションシップが必要です。
関数を使用すると、数式内でこれら 2 つのテーブル間のリレーションシップを仮想的に有効にすることができます。
表では次のようになります。
3 列目では、各行の 1 日あたりの注文数のみを取得しています。
例として、連続する 2 行の間に 7 つの順序があることがわかります。
テーブル間のリレーションシップを仮想的に有効にすることで、さまざまな数式パターンに分岐することができます。
LuckyTemplates で複数の日付を操作する方法DAX を使用して LuckyTemplates
のマスター仮想テーブルを使用する LuckyTemplates で DAX を使用し
て複数の製品購入を検出する
結論
このチュートリアルでは、特定の数式パターンを使用し、モデル内に非アクティブなリレーションシップを作成することによって、ファクト テーブル内の複数の日付の間の日数を計算する方法を学習しました。
FILTER ステートメントとその特定のパラメーターは、目的の結果を得る鍵となります。
さらに、LuckyTemplates の USERELATIONSHIP 関数を使用してテーブル間のリレーションシップを仮想的に有効にできるため、この手法をさまざまなシナリオで再利用できます。
乾杯、
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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。