LuckyTemplates の RANKX DAX 関数: 包括的な概要

LuckyTemplates の RANKX DAX 関数: 包括的な概要

、LuckyTemplates で分析情報をランク付けするために最も一般的に使用される DAX 関数です。シンプルな機能ですが、初心者にとってはイライラするほど混乱する可能性があります。ただし、これはレポートに貴重な洞察をもたらす可能性がある非常に強力な機能です。

この記事では、RANKX DAX 関数の詳細を理解します。いくつかのシナリオと例を検討することで、いつ、どのように使用するかを学び、この機能がいかに便利であるかがわかります。

目次

DAX RANKX 関数の定義と構文

RANKX LuckyTemplates DAX 関数は、テーブル引数の各行の数値リスト内の特定の数値のランキングを返します。これは、計算列と計算メジャーの両方の計算で使用できます。以下は、RANKX 式の構文です。

RANKX(
     、 、 、 、
)

table パラメーターには、LuckyTemplates にインポートされた標準テーブル、または DAX を介して計算されたテーブルを入力できます。RANKX は反復関数として、そのテーブルを反復処理し、特定の数値をランク付けします。これは、テーブル内の値の数によって異なります。たとえば、テーブルに 20 個の値がある場合、RANKX には 1 から 20 までのランキング結果が含まれます。

RANKX 関数を理解するための 1 つの鍵は、RANKX 関数がスカラー値を返すということです。式パラメーター内には、スカラー値を返す DAX 式が必要です。この式はテーブル内の各行をループして反復処理し、それに応じてランキング値を提供します。

value パラメータと order パラメータはオプションですが、tie パラメータは、値に同点がある場合にランキングを決定するのに役立ちます。

RANKX と LuckyTemplates DAX の数式の概念

期待どおりのランキング結果を確実に作成するには、よく理解する必要のある概念が多数あります。DAX 計算を実行する際の最も重要な概念である「 context 」について説明します。これを理解できれば、RANKX 関数を効果的に使用する方法がよくわかります。

RANKX は非常にユニークな DAX 関数であり、そのロジックと、特定のコンテキスト (LuckyTemplates 内のテーブルやグラフなど) で計算を実行するときに実際にどのように動作するかについて、より深いレベルで考える必要があります。

DAX RANKX 関数内のさまざまなパラメーターによって、結果の計算方法が変わる可能性があります。この DAX 関数に入力できるパラメーターは複数あり、それぞれが重要と考えられる基になる結果をどのように決定できるかを理解できます。

そのため、RANKX がさまざまな状況でどのように機能するかについての重要な要素と概念を理解することが不可欠です。これにより、計算が正しいこと、および消費者が実際に意味のある洞察を閲覧していることを確認できます。

基本的な RANKX DAX シナリオ

まず、簡単な RANKX の計算を見てみましょう。この例では、販売しているすべてのさまざまな製品にわたる売上 (これは任意の指標に基づくこともできます) に基づいてこれらの製品のランキングを特定しようとしています 。 

LuckyTemplates の RANKX DAX 関数: 包括的な概要

まず、指定した基準に基づいてすべての製品を評価するためのテーブルを RANKX 内に作成する必要があります。ALL 関数Productsテーブル からフィルターを削除し  、すべての単一の製品を評価できます。 

LuckyTemplates の RANKX DAX 関数: 包括的な概要

ただし、フィルター (この場合は ALL 関数) を削除し、単に「Products」を使用すると、異なる結果が表示されます。このため、正しい結果を得るにはALL 関数を使用する必要があります。これは、単純なRANKX計算を解決する方法です  。 

しかし、さらに複雑になったらどうなるでしょうか? 総売上高だけに基づいていないランキング結果が必要な場合はどうすればよいでしょうか? さて、ここでこの計算の現在の状況を理解する必要があります。望む結果を得るためにコンテキストを操作する方法を知る必要があります。

複雑な RANKX DAX シナリオ

まったく同様の計算式 (製品ランキングの尺度) を右側の表に取り込んでみましょう。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

ご覧のとおり、別の誤った結果が得られました。この背後にある理由は、ここにも顧客名列があるためです。この式をもう一度見てみると、個々の顧客を分類していないことがわかります 。私たちは特定の顧客ごとに製品を評価しているだけです。

Customer Name列を整理してみましょう  。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

顧客名列を整理しても、購入した商品の順位に応じて商品ランキングは変動します。同じ数字がたくさんあります。一例はランク 17 です。この場合、 この特定の顧客が 17 製品しか購入していないことが原因である可能性があります。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

それがこのシナリオで必要なことかもしれません。しかし、それよりももう少し複雑なことが必要な場合はどうすればよいでしょうか? 顧客名と製品コンテキストの1 から不定の値までのランクが必要な場合はどうすればよいでしょうか?

強調したように、 コンテキストと、 望む結果を得るためにコンテキストをどのように操作するかを理解することが重要です。

この例では、2 つのまったく異なるテーブルからの 2 つのディメンションがあります。 Customers テーブルの Customer Name 列 と Products テーブルの Product Name 列があります。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

RANKX ロジック内のこの仮想テーブルのフィルターを 、2 つのテーブルの両方から何らかの方法で削除する必要があります。最初のテーブル (左側) で行ったことを行う必要がありますが、両方の特定のテーブルの顧客名列と製品名列の両方に対して行う必要があります。

そして最終的には、顧客名と製品名の合計売上高から正しいランキングを取得します。この異なるシナリオに使用できる公式は次のとおりです。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

CROSSJOIN関数使用すると、2 つの列を結合したり、2 つのテーブルを結合したりできます。ただし、この場合は列を結合するだけです。

Customers テーブルと Products テーブルの両方からすべてのフィルターを削除し ます 。次に、この仮想テーブル内のすべての行を反復処理し、この特定の顧客名と製品名のサブセットの特定のランクがどこにあるかを評価または特定します。

高度な RANKX DAX の例

前の例でわかるように、RANKX 関数をレポート ページのさまざまなコンテキストに使用すると、貴重な洞察が得られます。ただし、これは LuckyTemplates で使用する際に最もわかりにくい関数の 1 つになる可能性もあります。正しいように見えるさまざまな結果が、実際には間違っている可能性があります。注意しないと、レポート全体を作り直さなければならなくなる可能性があります。

コンテキストをしっかりと理解し、そのコンテキスト内で RANKX を使用する方法を学ぶ必要があります。

場合によっては、RANKX がどれほど複雑になるかについて詳しく説明します。この関数の操作に関するさまざまなニュアンスを理解できるように、例を見ていきます。

以下のビジュアライゼーションには、郡ランキング、州ランキング、および州地域ランキングがあります。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

計算のコンテキストをすべて 1 つの行列で表示したい場合、計算のコンテキストを管理するのは困難になることがあります。表を見てみましょう。州の地域、州、郡に関する情報が含まれていることがわかります。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

この例では、郡のランキングを計算する必要があります。テーブルに郡、郡ランキング、および総売上高だけがある場合は、正しいランキング結果が得られます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

ただし、テーブル内の他のコンテキストを重ね始めると、異なる州および州地域にある郡ごとにランキング結果が蓄積され始めます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

したがって、レポート ページで選択されている内容に関係なく、各郡の正しい総合ランクを確実に取得するには、計算のコンテキストを特定して変更する必要があります。コロラドなどの州を選択すると、数式も更新されます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

州地域を使用して選択することもできます。北東を選択すると、適切なランキングが表示されます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

この例では、郡ランキングを取得するために 2 つの式が使用されます。これは、 RANKX とともにさまざまなDAX 関数を使用することによって生成される結果の違いを理解するのに役立ちます。

式 #1: ALL および ALLSELECTED を使用した RANKX

ALL 関数は、郡ランクを求めるこの式の重要な部分です。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

RANKX 式内のコンテキストを操作します。次に、Regions テーブルを反復処理して、ランキング結果を作成します。この場合、ALL 機能は、初期コンテキストに関係なく、すべての郡にわたって仮想的に機能します。

この問題は、スライサー コンテキストを重ね始めると複雑になります。を使用すると、スライサーでの選択に応じてランキングが自動的に更新されます。また、結果に追加のコンテキストを配置したり、計算のコンテキストを変更したりするには、

LuckyTemplates の RANKX DAX 関数: 包括的な概要

コンテキストは、CALCULATE 関数内のフィルターに基づいて調整されます。これにより、州および州地域のスライサーからのコンテキストに基づいてランキングが調整されます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

式 #2: ALL と VALUES を使用した RANKX

次に、[郡 (更新)] 列を見てみましょう。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

スライサーで何が選択されているかに関係なく、この列には全体的なランクが表示され続けるようにしたいと考えています。すべての郡には固有の番号が必要です。

使用される式は次のとおりです。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

この例では、一意の郡を解読する方法がなかったため、別の列が作成されました。[全郡] 列には、郡、州、地域が含まれます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

これにより、郡を明確に区別できます。このようにして、データ内の郡の仮想テーブルを操作できるようになります。これを行う前に、Regions テーブルから ALL コンテキストを削除する必要があります。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

したがって、リージョンのテーブルから取得されるコンテキストは、この時点では存在しません。関数を使用すると、Full County 列のコンテキストを再度追加できます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

1 つのオプションは、ALL 関数を使用してすべての列を参照することですが、より良い代替案は、地域からすべてのコンテキストを削除し、全郡のみを戻すことです。CALCULATE 内でコンテキストが操作されると、RANKX 関数はそこから作業を開始します。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

RANKX は、すべての行のすべての郡を総売上高とともに調べてランク付けします。これにより、County (Updated) 行の下に 1 から X までの値が取得されます。その結果、フィルターとスライサーは無視されるように数式が設定されているため、フィルターとスライサーは重要ではなくなり、ランキングに影響を及ぼしません。

その他の実践的な RANKX 測定 LuckyTemplates の例

RANKX と LuckyTemplates DAX の概念の基本を学習したので、RANKX の使用例をさらに見てみましょう。まず、RANKX を使用して上位値と下位値を見つける例を見てみましょう。次の例では、結果をセグメント化またはグループ化する方法として RANKX を紹介します。

RANKX を使用した上位値と下位値の検索

RANKX の一般的な使用法は、上位または下位の値を確認する場合です。たとえば、上位の顧客または下位の製品を見つけたい場合は、RANKX を他の DAX 関数と併用できます。

関数と組み合わせ���、静的な期間だけでなく経時的にも上位の顧客が誰であるかを確認する方法を示します。次に、上位 10 社の顧客の売上マト​​リックスでそれを紹介します。

四半期と年 と 総売上 高のメジャーをマトリックスに入れると、すべての結果が得られます。これは素晴らしいことですが、洞察を確認して傾向を特定するのは非常に難しい場合があります。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

私たちは傾向を見て、この期間のトップ 10 の顧客が誰かを判断したいと考えています。たとえば、ある期間は当社のトップ顧客の 1 人であったものの、完全に離れてしまった顧客はいませんか? 私たちが求めているのはこのような洞察です。

これは 1 つの公式を使用して実行できます。これは、上位 10 位以内の顧客の総売上高を計算するためにCALCULATE 関数を使用して作成したメジャーです。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

ランキング ロジックを使用して、 この顧客がトップ 10 に入っている場合にこの総売上高を返すというランキング ロジック インジケーターを作成する必要があります。LuckyTemplates で RANKX を使用する以外に、FILTER 関数を使用し、次に VALUES を使用して、単一の顧客ごとに内部テーブルを作成します。

次に、ここにどのようなロジックを書くかを考える必要があります。「現在のランクが総売上高と等しい 10 以下の場合、そうでない場合は空白に等しい」というものです。このようなフィルター ステートメントの優れている点は、この種のロジックを内部に記述できることです。

したがって、特定のコンテキストで各顧客をランク付けするため、RANKX 関数と ALL Customer Names を使用します。ALL では顧客名に関するフィルターがすべて削除されるため、このランキングを完了できます。

次に、総売上高で降順にランク付けし、10 以下になります。そうする、総売上高と同じになるようにし、そうでない場合は空白にします。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

最後に、上位 10 社のクライアントを総売上高に置き換えます。単一期間ごとに上位 10 クライアントを確認し、条件付き書式設定を実装して視覚的に改善することができます。条件付き書式設定を使用して、より説得力のある洞察を取得することもできます。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

クライアントに何度も販売する場合は、期間を短縮する必要があります。しかし、顧客に年に 2 ~ 3 回販売するのが自分だけの場合は、長期的な期間から物事を分析する必要があります。

TOPN と呼ばれる別の DAX 関数があり、これも分析情報のランク付けに使用されます。依然として大きな違いがあります。TOPN はテーブル関数であるのに対し、RANKX はスカラー値を返すことに注意してください。重要なのは、これらの関数を配置するコンテキストを理解することです。

LuckyTemplates RANKX を使用した動的グループ化の結合

RANKX を使用するもう 1 つの優れた方法は、コンテキストなしで結果を単独で表示するのではなく、結果をセグメント化またはグループ化することです。

この例では、一般的な販売結果を単に表示するのではなく、顧客が上位にランクされた結果に含まれているかどうかを確認し、それが時間の経過とともに変化するかどうかを確認したいと考えています。当社の売上のうち、上位 5 位のクライアント、上位 5 位から 20 位までのクライアント、そして残りのクライアントからの売上がどのくらいかを把握したいと考えています。

傾向が起こっているかどうかを確認するには、動的なグループを作成し、それらを長期的に評価する必要があります。これは、特に Excel で作業している場合には非常に困難です。しかし、DAX をよく理解していれば、書くのにまったく時間がかからない数式を書くことができ、それは何度も使えるパターンになります。

このシナリオ用に作成したメジャーは次のとおりです。

LuckyTemplates の RANKX DAX 関数: 包括的な概要

CALCULATE がなければ何も起こらないため、CALCULATE 関数から始めます。次に、合計売上高を追加します。これが合計するものだからです。

次に、顧客名のテーブルをフィルター処理して、すべての顧客を反復処理し、そのランキングを評価し、そのランキングが先ほど作成した MIN と MAX より上か下かを確認する必要があります。

次のステップでは、関数と FILTER 関数を再度使用します。次に、私が作成したテーブルである Customer Groups を選択します。

次に、RANKX を使用してこのテーブルを反復処理します。一番上で総売上高を計算していますが、実際には顧客グループのテーブルがランキングです。これらの個々の顧客のランキングを取得し、顧客グループ テーブル内のいずれかのグループにそれらの顧客が含まれているかどうかを確認する必要があります。

次に、総売上高によってそれらをランク付けし、次に DESC を選択して、最高の場合は 1、最低の場合は 200 としてランク付けします。その後、最高ランクの顧客のを超える金額で取引を終了します。以下のロジックを使用します。

適用可能な多くのシナリオで繰り返し使用できます。RANKX を使用すると、動的なランキング テーブルを作成でき、驚くべきランキングに関する洞察が得られます。

結論

RANKXはシンプルな機能ですが、使いやすい機能ではありません。重要なのは、機能をよりよく理解できるようにそのニュアンスに焦点を当てることです。DAX 計算で RANKX 関数を使用するには、特にさまざまな関数と組み合わせた場合、さまざまな方法があります。LuckyTemplates 内でこの関数がいかに柔軟であるかに驚かれるでしょう。

このブログで紹介した例は、特にランキング タイプ分析の計算における多用途性に関して、RANKX を実証する最良の方法であることは間違いありません。さまざまなシナリオで使用できます。

ここで重要なのは、RANKX 関数が配置されるコンテキストを本当に理解する必要があるということです。

この内容が役に立ち、ご自身の作業環境に活用していただければ幸いです。

乾杯!


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 ゲートウェイとは何ですか? 知っておくべきことすべて