Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
このチュートリアルの目的は、LuckyTemplates で距離と方位を計算する方法、およびそれらを地理空間分析に効率的に使用する方法について説明することです。
距離の計算方法はウェブ上でたくさん見つかります。このデモンストレーションでは、サプライ チェーン ネットワーク プロジェクトの 1 つで構築する必要があったソリューションの簡略化された例を使用します。
配達拠点からサービス拠点までの直線距離の計算も示します。
ここでは、 DAX メジャーを使用して距離を選択するスライサーがあります。これにより、選択した距離内の顧客、フロー、重量、収益、およびその他の値を動的に分析できます。
ハーバーサイン公式としても知られる大圏距離の計算は、このチュートリアルの中核的な尺度です。このテクニックをマスターすれば、必要な距離と方位の計算に取り組むことができます。
私はほとんどの計算を Power Query で行うことを好みますが、選択可能な距離に基づいてデータを動的に分析する必要がある場合は、DAX メジャーを使用する必要があります。
利用可能な場合は、実際の距離が優先オプションになる可能性があります。ただし、直線距離で十分なため、多くの場合はこれは必要ありません。
Google または Bing API を使用して、Power Query で実際の距離と直線距離の両方の距離を追加できます。地理空間ツールボックスにさらに多くのツールを含めることをお勧めします。ただし、LuckyTemplates への API の適用については、このチュートリアルでは説明しません。
目次
シナリオを理解する
私は、最寄りの企業間の宅配ロッカーをサービス エンジニアの自宅住所に割り当てる手伝いを依頼されました。
サービス エンジニアは、時間の経過とともに変更される可能性がある事前に定義された作業エリアで働き、自宅からその仕事を始めました。
夜間、緊急のスペアパーツが宅配ロッカーに補充されました。翌朝、エンジニアは作業エリアに向かう途中で小包ロッカーからスペアパーツを受け取りました。
通常、この種の分析にはGIS (地理情報システム) ソフトウェアを使用します。ここでは、LuckyTemplates を使用して動的割り当てモデルを取得してみます。また、直線距離と方位の計算の両方を使用しました。
GISでは 、方位角はナビゲーションや方向に使用されます。この例では、距離自体では完全な解決策が提供されない ため、方向 ( Orientation )に変換される方位を追加しました。
最寄りの宅配ロッカーは、作業エリアとは反対方向に位置している場合があります。なので、方向性も表示したいと思いました。
これにより、ロッカー割り当ての選択を、作業エリアに対応する地理的見出しに基づいて制限することができます。
例として、作業エリアは自宅の北にあります。したがって、優先宅配ロッカーの場所は同じ方向にある必要があります。
距離と方位データセットの分析
この単純化された例では、データセットはオランダの住所と無料の宅配ロッカーの場所で構成されています。
これには、緯度と経度(行き先と出発地)、拠点、名前、部品値、および需要の列が含まれます。
最初のテーブルの隣には、Excel での計算列と距離計算があります。まず、ラジアンを計算しました。
次に、ラジアンとハーバーサインの公式を使用して、マイルとキロメートルの両方の実際の距離の計算を作成しました。
距離と方位の計算: デモ データの作成
方位の計算では、最初は度単位の 10 進数が得られます。したがって、これをより実用的なものに変換する必要があります。
1 ~ 360 の度数を含むテーブル列を作成しました。コンパスに従って方向を示す列も追加しました。
さらに、LuckyTemplates で方向を時計回りに並べ替えるためのSORT列を追加しました。
その後、sourceNLデータセットと方向テーブルを Power Query に読み込みました。
sourceNLテーブルを見てみましょう。
列の追加
まず、インデックス列を追加しました。エディターで変換を行うときは、参照または並べ替えのためにインデックス列を追加します。
次に、緯度と経度を 4 桁に四捨五入しました。これは、より大きなデータセットでは重要です。こうすることで、 11 メートルの精度が得られますが、それでも十分です。
この例では、マップを表示するために各ステップを別の計算列に追加しました。Excel で行ったのと同じように、緯度と経度の値のラジアンを計算しました。
次に、Haversine の公式を適用して、マイルとキロメートルの両方の距離を計算しました。
方位と方向
ベアリングの計算は、Web から取得した別の式です。このシナリオの目的に合わせて少し調整しただけです。
最初は、この計算はラジアン単位で行われます。まったく無駄です。したがって、変換する必要があります。
これはベアリングの前段階です。これは、計算の次のステップでラジアンを変換するためです。
次のステップでは、負の数値を変更し、この計算を適用して修正しました。
その後、Bearing を四捨五入して整数を取得しました。
Bearing (rad)、Bearing pre、およびBearing列を削除しました。次に、Naar boven afronden 列の名前をBearing Roundupに変更しました。
これで、このテーブルのBearing Roundup列をOrientationテーブルのBEARING列とマージできるようになりました。
そうすることで方向性が見えてくるのです。
これで、次のモデルに使用する方位 ( Bearing Roundup ) 列と方向 ( Orientation_Direction ) 列ができました。
Power Query での結果は次のとおりです。
距離と方位を計算するための R スクリプト
この例では、 R スクリプトを使用したソリューションを使用します。これは、マイルとキロメートルで計算された距離を含むデータセットです。
私はこのR スクリプトを実行していますが、これは数式よりもはるかに短く、クリーンです。
R スクリプトを実行すると、テーブルが 3 つになりました。
これが出力です。こちらも丸めておきました。
ご覧のとおり、R スクリプトの計算と Excel の計算の結果は似ています。
マップビジュアルの追加
最後に、最終結果に視覚的な表示を追加します。
これを行うために、 LuckyTemplates レポートの手順を繰り返しました。テーブルに 3 つの場所をロードしました。また、Orientationテーブルとデータセット ( selectionNL )をSort列とともにロードしました。次に、Orientationの列を結合しました。
これで最終モデルが完成します。
地理空間分析 – LuckyTemplates データ視覚化に関する新しいコース
LuckyTemplates – ツールチップの動的マップ 空間
分析のための 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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。