ExcelのCUBERANKEDMEMBER関数の使い方|セット内のN番目を取得

スポンサーリンク

ExcelのCUBERANKEDMEMBER関数、聞き慣れない名前ですよね。「CUBE関数シリーズは難しそう…」と感じる方も多いのではないでしょうか。

でも実は、やっていることはシンプルです。CUBERANKEDMEMBER関数は、データの中から「1番目」「2番目」と順位を指定してメンバーを取り出す関数です。売上ランキングのトップ3を自動で表示したいときなどに活躍しますよ。

この記事では、CUBERANKEDMEMBER関数の基本的な書き方から実践的な活用パターンまで、初めての方にもわかるように解説していきます。

ExcelのCUBERANKEDMEMBER関数とは?

CUBERANKEDMEMBER関数は、ExcelのCUBE関数シリーズのひとつです。CUBESET関数で作成したセット(データの集まり)から、指定した順位のメンバーを取得します。

たとえば「売上の多い順に並べたセット」から「1位の商品名」「2位の商品名」を取り出す、といった使い方ができます。

CUBERANKEDMEMBER関数の読み方

読み方は 「キューブ ランクド メンバー」 です。

「Cube(キューブ)」はデータの立方体、「Ranked(ランクド)」は順位付けされたという意味です。「Member(メンバー)」は要素のことですね。つまり「順位を指定してメンバーを取り出す関数」ということです。

CUBERANKEDMEMBER関数でできること

CUBERANKEDMEMBER関数を使うと、次のようなことができます。

  • セット内の1番目・2番目…とランキング順にメンバーを取得する
  • 売上トップ3の商品名や地域名を自動表示する
  • CUBESET関数と組み合わせて動的なランキング表を作る

CUBERANKEDMEMBER関数を使う前に

CUBE関数シリーズは、Power Pivot(パワーピボット)のデータモデルか、外部のOLAPキューブへの接続が必要です。通常のExcelシートのデータだけでは動作しないので注意してくださいね。

Power Pivotやデータモデルの基本については、CUBEMEMBER関数の記事で詳しく解説しています。

CUBERANKEDMEMBER関数の構文と引数

基本構文

=CUBERANKEDMEMBER(接続, セット式, ランク, [キャプション])

引数は4つあり、最初の3つが必須です。ひとつずつ見ていきましょう。

引数の一覧

引数必須/省略可説明
接続必須キューブへの接続名を文字列で指定します
セット式必須メンバーのセットを指定します
ランク必須取得するメンバーの順位を整数で指定します
キャプション省略可セルに表示するテキストを指定します

引数「接続」の詳細

「接続」には、データモデルやOLAPキューブへの接続名を指定します。

Power Pivotのデータモデルを使う場合は、接続名は "ThisWorkbookDataModel" です。この接続名はブック内のデータモデルに対して共通なので、覚えておくと便利ですよ。

引数「セット式」の詳細

「セット式」には、順位付けの対象となるセットを指定します。

指定方法は主に2つあります。

  • CUBESET関数のセル参照: CUBESET関数の結果が入ったセルを参照する方法(推奨)
  • MDX式の直接入力: MDX(多次元式)のセット式を文字列で直接指定する方法

実務ではCUBESET関数と組み合わせる方法が一般的です。

引数「ランク」の詳細

「ランク」には、セットの中から何番目のメンバーを取得するかを整数で指定します。

  • 1 を指定すると、セットの先頭(1番目)のメンバーが返されます
  • 2 なら2番目、3 なら3番目…という具合です

ランキングの並び順は、セット式で指定したセットの順序に従います。降順(大きい順)で取得したい場合は、CUBESET関数の並べ替え引数で並び順を制御してくださいね。

引数「キャプション」の詳細(省略可)

「キャプション」には、セルに表示する代替テキストを指定できます。

省略すると、データモデルから取得したメンバー名がそのまま表示されます。「売上1位」「トップ商品」のようにわかりやすい表示名を付けたいときに便利です。

CUBERANKEDMEMBER関数の使い方(実践例)

基本例:セットの1番目のメンバーを取得する

まず、CUBESET関数でセットを作っておきます。

A1: =CUBESET("ThisWorkbookDataModel","[商品].[カテゴリ].Children")

次に、CUBERANKEDMEMBER関数で1番目のメンバーを取得します。

B1: =CUBERANKEDMEMBER("ThisWorkbookDataModel", A1, 1)

A1セルのCUBESET関数が返すセットの中から、1番目のカテゴリ名が表示されます。

応用例:売上トップ3をランキング表示する

CUBESETで売上順に並べ替えたセットを作り、CUBERANKEDMEMBERで1位から3位まで取得する方法です。

A1: =CUBESET("ThisWorkbookDataModel","[商品].[カテゴリ].Children","売上順セット",1,"[Measures].[売上合計]")

このCUBESET関数では、並べ替え順序に 1(降順)を指定しています。これで売上が多い順にセットが作成されます。

B1: =CUBERANKEDMEMBER("ThisWorkbookDataModel", $A$1, 1, "1位")
B2: =CUBERANKEDMEMBER("ThisWorkbookDataModel", $A$1, 2, "2位")
B3: =CUBERANKEDMEMBER("ThisWorkbookDataModel", $A$1, 3, "3位")

ランク引数を 1, 2, 3 と変えるだけで、トップ3が取得できます。キャプション引数に「1位」「2位」「3位」と設定すれば、セルに順位が表示されるので見やすくなりますよ。

さらに、隣のセルでCUBEVALUE関数を使えば、各メンバーの売上金額も取得できます。

C1: =CUBEVALUE("ThisWorkbookDataModel","[Measures].[売上合計]", B1)

CUBE関数ファミリーとの使い分け

CUBERANKEDMEMBER関数は、CUBE関数シリーズの中で「セットから順位指定で取り出す」役割を担っています。他の関数との関係を整理しておきましょう。

関数役割CUBERANKEDMEMBERとの関係
CUBEMEMBER特定のメンバーを取得名前で直接指定する場合はこちらを使用
CUBESETメンバーのセットを作成CUBERANKEDMEMBERの入力として使う
CUBEVALUE集計値を取得ランキング結果と組み合わせて金額等を取得
CUBEMEMBERPROPERTYメンバーのプロパティを取得ランキング結果の属性情報を取得
CUBESETCOUNTセット内のアイテム数を取得ランク引数の上限確認に使える

ポイントは、CUBERANKEDMEMBERは単独では使わないということです。必ずCUBESET関数でセットを準備してから、順位を指定して取り出す流れになります。

よくあるエラーと対処法

CUBERANKEDMEMBER関数を使っていると、いくつかのエラーに遭遇することがあります。慌てなくて大丈夫ですよ。

#N/Aエラー

最もよく見かけるエラーです。主な原因は次の通りです。

  • ランクがセットの範囲外: セットに5つしかメンバーがないのにランクに 6 を指定した場合に発生します。CUBESETCOUNT関数でセット内のアイテム数を確認しておくと安心です
  • セット式が無効: CUBESET関数の参照先が正しくない場合にも発生します

#VALUE!エラー

引数に不正な値が含まれている場合に発生します。

  • ランクに整数以外の値(文字列や小数)を指定していないか確認しましょう
  • セット式のMDX構文にエラーがないかも確認してみてください

#NAME?エラー

接続名が正しくない場合に発生します。

  • Power Pivotデータモデルの場合は "ThisWorkbookDataModel" と正確に入力されているか確認してください
  • スペルミスや余分なスペースがないかチェックしましょう

#GETTING_DATA…の表示

これはエラーではありません。データモデルからデータを取得している最中の一時的な表示です。しばらく待つと結果が表示されますよ。

まとめ

ExcelのCUBERANKEDMEMBER関数について解説しました。ポイントを振り返っておきましょう。

  • CUBERANKEDMEMBER関数は、セット内のN番目のメンバーを取得する関数
  • 基本構文は =CUBERANKEDMEMBER(接続, セット式, ランク, [キャプション])
  • CUBESET関数と組み合わせて使うのが基本パターン
  • ランキング表を作る場合は、ランク引数を1, 2, 3…と変えるだけでOK
  • Power PivotデータモデルまたはOLAP接続が必要

CUBE関数シリーズは最初はとっつきにくいですが、パターンを覚えてしまえばデータモデルの分析がぐっと効率的になります。まずはCUBEMEMBER関数CUBESET関数から試してみてくださいね。

対応バージョン: Excel for Microsoft 365 / Excel 2024 / Excel 2021 / Excel 2019 / Excel 2016

タイトルとURLをコピーしました