Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
LuckyTemplates 休日カレンダーの作成は、インテリジェンス計算を頻繁に行う場合に非常に重要です。このチュートリアルでは、DAX メジャーを使用して特定の休日の日付を計算する方法を説明します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
この例は、 「今週の問題」と呼ばれるイニシアチブの 1 つから来ています。このプロジェクトでは、毎月実際の DAX または Power Query の問題を取り上げ、それを詳細に分析します。
ラバーダックデバッグと呼ばれる手法を使用しました。通常はデバッグに使用されますが、LuckyTemplates のような複雑な問題を解決するために使用する最初のフレームワークを考え出すのにも非常に価値があることがわかりました。
それは基本的に、ゴム製のアヒルや話し相手を使って、自分が思い描いている解決策を大声で言い、問題にどう取り組むか計画を立てるだけです。
声を出すだけで、問題を解決できることがよくあります。場合によっては、デバッグの状況では、自分が何をしているのか、それが意味があるのかどうかを認識し、問題に対処して問題を解決する方法を見つけるのに役立ちます。
以下は、この特定の課題に対する実際の DAX 問題です。ここには、月と日で 10 の祝日が含まれる表があります。特定の日もあれば、相対的な日もあります。休日の日付と祝祭日の対策を考え出す必要があります。
これを行うには、Day フィールドを 2 つのコンポーネントに解析する必要があります。最初の解析は出現 (3 番目、最後、最初、2 番目) であり、2 番目の解析は日 (月曜日、木曜日) です。これらは分離する必要がある 2 つの重要な情報です。
目次
LuckyTemplates 休日カレンダーでの特定の日付の計算
通常、これを Power Query で区切り文字で分割するだけで実行しますが、DAX で実行しているため、別の方法で実行する必要があります。(このチャレンジでは Power Query を使用することは許可されていないことに注意してください。)
指定された年、月、日の名前の最小日付と最大日付を計算する必要があります。この場合、たとえば、2027 年、1 月、第 3 月曜日と言えます。特定の月の最小日を取得したら、第 2 月曜日までに 7 日、第 3 月曜日までに 14 日、第 4 月曜日までに 21 日を追加できます。
この課題に関連して皆さんと共有したいもう 1 つのテクニックは、メジャーを作成するときに私が呼んでいる「Build in Parts」です。これは、変数が多く、構築するコンポーネントがたくさんある複雑な測定において非常に役立つと思います。
私がいつもやっているのは、最後に結果変数 ( VAR Result )を持ち、最後のステートメントは単なるReturn Resultです。これにより、構築した変数に戻ってテストすることが非常に簡単になります。部分的に調べて追跡し、解決することができます。
最後に皆さんと共有したいテクニックは、私が「未知の関数の検索」と呼んでいるテクニックです。たとえば、この LuckyTemplates の休日カレンダーの課題にどの関数を使用すればよいかわからない場合は、[外部ツール]タブに移動し、「 SQLBI DAX ガイド 」に移動します。
ここにはグループ(左側)と呼ばれる非常に優れた機能があり、関数がタイプごとにグループ化されています。したがって、たとえばテキスト文字列の解析を考えている場合は、「テキスト関数」を検索することができます。
DAX が持つすべてのテキスト関数を提供します。これは、メジャーに必要なDAX 関数をすばやく見つけるための優れた方法です。
LuckyTemplates ホリデー カレンダーの DAX 対策
Holiday Dateメジャーの場合、スライサーから日付、休日の月、月番号、Date テーブルから日を取得して、 この一連のを作成しました。
) 関数を使用して、選択した日の長さを取得します。この場合、テキストが返されたため、そのテキストを数値に変更するには、で囲む必要がありました。
次に、関数を使用してスペースの位置を取得し、それを VALUE で囲みますが、選択した日内のスペースを位置 1 から検索して、その文字列が見つからない場合は 0 を返します。
CharsBeforeSpace (スペースの前の文字)は単なる SpacePosition です。CharsAfterSpace (スペースの後の文字)の数は、文字列の長さ ( SelDayLen ) からスペースの位置を引いたものになります。そこから、FirstParseとSecondParseを実行できます。
この時点で、2 つの変数があり、1 つは出来事を表し、もう 1 つは日を表します。
次に、Dates テーブルからフィルターを削除する基本的な ( Calc1st ) があります。次に、スライサーから選択した年のフィルター、月名、次に実行した 2 番目の解析からの曜日のフィルターを適用します。
同様に、最後の計算 ( VAR CalcLast )に対しても同じことを行います。
ステートメントに進み、最後の部分は RETURN Result です。
最後に、チャレンジの追加ボーナスとしてのCelebrated Onメジャーについて説明したいと思います。これは、前のメジャーで計算した休日の日付を取得し、Dates テーブルに移動して、曜日の名前を検索する単純なLOOKUPVALUE ですそして、 DayLookupの結果を取得するSWITCHステートメントを実行しました。最後に、 RETURN DateAdjustで締めくくります。
LuckyTemplates で祝日のカレンダー テーブルを作成する
LuckyTemplates カスタム カレンダー: 月ごとの変化の計算 –
LuckyTemplates の非標準日付テーブルの 445 カレンダー時間比較
結論
前述したように、この 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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。