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

ではごきげんよう、

過酷なアニル・ジョシ


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて