RANKX の詳細: LuckyTemplates DAX 関数

RANKX の詳細: LuckyTemplates DAX 関数

今日は、 LuckyTemplates のスカラー DAX 関数である RANKX について詳しく説明します。RANKX を使用すると、数値のリストの一部を形成するテーブルの各行の特定の数値のランキングを返すことができます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

目次

サンプルシナリオ

内でテーブル全体とフィールド名をいつ参照するかなど、最も重要なシナリオのいくつかを分析します。

また、粒度のレベルが低下した場合と、フィールドに並べ替え順序が適用された場合に何が起こるかについても調べます。最後に、テーブル名またはテーブルに沿ったフィールド名を参照する際のベスト プラクティスと、バックエンドでのランキングの評価方法について詳しく見ていきます。

RANKX シナリオ 1: 顧客ランキング

最初のシナリオでは、顧客のランキングを計算し、RANKX 関数内で顧客のテーブル全体を参照します。最終的には、結果がどのように評価されるかがわかります。

まず、LuckyTemplates を開いて、[主要なメジャー]タブの下にある[総売上高]オプション ボタンをクリックし、 [新しいメジャー]に移動します。顧客ランキングの尺度を記述します (例: 「顧客ランキング =」)。

顧客ランキングのメジャーをテーブル内にドラッグすると、結果を表示できます。

RANKX の詳細: LuckyTemplates DAX 関数

しかし、これがあらゆるシナリオに最適なアプローチなのでしょうか? 同じ名前の別の都市に 2 人の人物がいる場合はどうなりますか? あるいは、同じ名前で領域が異なる 2 つの場所がある場合はどうなるでしょうか?

RANKX シナリオ 2: 都市ランキング V1

ここで、同じアプローチを最初のシナリオに適用してみましょう。ただし、今回は、同じ名前を持つ 2 つの異なる場所にある 2 つの都市がある地域テーブルに適用します。

RANKX の詳細: LuckyTemplates DAX 関数

上の画像からわかるように、地域テーブル内には同じ名前の 2 つの都市がありますが、それらは 2 つの異なる地域で利用可能です。では、前のシナリオと同じ手順を適用するとどうなるでしょうか?

結果は次のようになります。

RANKX の詳細: LuckyTemplates DAX 関数

ここで、ランキングの式に問題があることがわかり始めました。RANKX 関数はテーブルのセット全体を反復処理するため、2 つの異なる地域で利用可能な同じ名前の都市の結果を統合することはできません。これにより、最終的にエラーが発生します。

この問題を解決するには、下の図のように、RANKX 関数内のフィールド名とテーブル名を参照する必要があります。

RANKX の詳細: LuckyTemplates DAX 関数

それで、どうやってエラーを修正したのでしょうか?RANKX 関数内でフィールド名を参照すると、テーブル全体ではなく、その列のみで反復処理されます。

2 つの都市が 2 つの異なる地域で利用可能である場合でも重複が削除され、それらが 1 つの都市として統合されます。

RANKX シナリオ 3: テリトリーのランキング

では、粒度のレベルが低下すると何が起こるでしょうか?

この場合、地域レベルでのランキングの計算中にエラーが発生します。その理由は、テーブル名のみを参照し、列名を再び無視すると、テーブル全体に対して反復処理が行われるため、テリトリアル レベルで結果を統合できなくなるためです。

地域レベルで正しい結果を取得するには、地域テーブル内の地域フィールドを参照する必要があります。しかし、テーブルのテーマ全体を参照し、テーブルとともにフィールド名を含める必要があるのはどのような場合でしょうか?

ランク付けが最も低い粒度レベルで適用される場合、テーブル名を参照し、フィールド名を無視できます。

RANKX の詳細: LuckyTemplates DAX 関数

しかし、粒度のレベルが下がると、テーブル名とともに列名も参照する必要があります。これまでのところ、単一のビジュアル、つまり表でのみ結果を分析しています。

Cities RankingV2: スライサーを使用したより良いアプローチ

2 番目のシナリオを複製してみましょう。ビジュアルの左側はテーブル名のみを参照し、右側は RANKX 関数内の列名を参照します。次に、そのページにテリトリーの形式でスライサーを導入して結果を比較します。その結果、以下の画像が得られます。

RANKX の詳細: LuckyTemplates DAX 関数

スライサーで選択を行うと、テーブル ビジュアルの左側で、RANKX が領域のテーブル全体を反復処理しているため、結果がシリアル順序で提供されていないことがわかります。ただし、テーブル ビジュアルの右側には、結果が順番に表示されます。

その理由は、RANKX が特定のテーブル列のみを反復処理し、スライサーでの選択ごとに結果をフィルターで除外できるためです。これは覚えておくべき最も重要なことの 1 つでもあります。

全体的なランキング結果を確認したい場合は、 RANKX 関数内のテーブル名のみを参照できます。

ただし、スライサーでの選択に従って結果をシリアル順にしたい場合は、関数内で列名を参照する必要もあります。

RANKX シナリオ 4: 製品のランキング

最後に、最後のシナリオに進みましょう。特定のフィールドに製品を注文すると何が起こるか、そして RANKX がバックエンドでどのようにランキングを評価するかを調べてみましょう。

このシナリオでは、製品テーブルの製品名を使用して、最もパフォーマンスの高い製品を分析します。

したがって、最初のシナリオと同様に、製品のランキング基準を作成する必要があります (この場合は、製品ランキングを適切に使用します)。製品ランキングの尺度をビジュアル内に取り込むと、次の画像のような結果が表示されます。

RANKX の詳細: LuckyTemplates DAX 関数

RANKX 関数内で製品名フィールドを参照しているにもかかわらず、結果が正しく評価されていないことがわかります。では、なぜこのようなことが起こっているのでしょうか? この質問に答えるには、 DAX Studioを開く必要があります。

RANKX シナリオ 5: DAX Studio

それでは、DAX スタジオを開いて、RANKX がバックエンドでランキング結果をどのように評価するかを見てみましょう。

以下の画像では、パフォーマンス アナライザーを介してテーブル ビジュアルのクエリをコピーし、DAX スタジオに貼り付けています。このクエリでわかるように、product テーブル内には並べ替えフィールドである product インデックスもあります。

RANKX の詳細: LuckyTemplates DAX 関数

したがって、テーブル ビジュアルでは製品名、総売上高、およびランキング指標のみを表示しましたが、このフィールドはランキング計算のバックエンドでデフォルトで参照されます。

それでは、RANKX 関数内の並べ替えフィールドを参照して製品ランキングの基準を修正し、最後に結果を見てみましょう。

RANKX の詳細: LuckyTemplates DAX 関数

上の画像からわかるように、製品名の結果が正しく評価されるようになりました。したがって、フィールドを別のフィールドで並べ替える場合は常に、今日説明したすべてのシナリオに基づいて、RANKX 関数内で両方のフィールドを参照する必要があります。

結論

これらは、DAX 計算で RANKX 関数を使用する場合のシナリオの一部です。全体として、広範な関数でそれを実行できる方法はさらにたくさんあります。

覚えておくべき最も重要なことは、RANKX 関数が配置されているコンテキストを理解する必要があるということです。

RANKX は、LuckyTemplates 内であらゆるランキング タイプの分析を計算する際に非常に多用途です。また、レポートやビジュアライゼーションの消費者に感動を与える高度な洞察も可能になります。

ではごきげんよう、

過酷なアニル・ジョシ

Leave a Comment

Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。