ExcelのCUBEMEMBERPROPERTY関数の使い方|メンバーのプロパティを取得する

スポンサーリンク

「キューブに接続してデータを取得したいけど、メンバーの属性情報だけ欲しい…」そんな場面、ありますよね。ピボットテーブルで集計するほどではないけれど、特定のメンバーの表示名や階層情報をセルに取り出したい。そんなときに使えるのが、ExcelのCUBEMEMBERPROPERTY関数です。

この記事では、CUBEMEMBERPROPERTY関数の構文や引数、具体的な使い方、よくあるエラーの対処法まで解説しています。

ExcelのCUBEMEMBERPROPERTY関数とは?

CUBEMEMBERPROPERTY関数は、OLAP(オンライン分析処理)キューブに接続して、指定したメンバーのプロパティを返す関数です。

読み方は「キューブ メンバー プロパティ」です。CUBE・MEMBER・PROPERTYの3つの単語に分けると覚えやすいですよ。

たとえば、売上データのキューブから「東京店」というメンバーの店舗面積や開店日といった属性情報を取得できます。ピボットテーブルを使わずに、セル上で直接プロパティを表示できるのがポイントです。

CUBEMEMBERPROPERTY関数を使うための前提条件

この関数を使うには、ExcelからOLAPキューブに接続している必要があります。OLAPキューブとは、大量のデータを多次元で集計・分析するための仕組みのことです。

対応する接続先は、次のとおりです。

  • SQL Server Analysis Services
  • Power Pivotのデータモデル
  • その他のOLAP対応データソース

対応バージョンはExcel 2007以降、またはMicrosoft 365です。お使いのバージョンが対応しているか、確認しておきましょう。

CUBEMEMBERPROPERTY関数の書き方(構文と引数)

基本構文

=CUBEMEMBERPROPERTY(接続, メンバー式, プロパティ)

引数は3つあり、最初の2つが必須です。3つ目のプロパティは省略できます。

引数の一覧

引数必須/省略可説明
接続必須OLAPキューブへの接続名(テキスト文字列)
メンバー式必須キューブ内のメンバーを識別するMDX式
プロパティ省略可取得するプロパティ名(省略時はキャプション)

接続

ブック内に設定されたOLAPキューブへの接続名を指定します。「データ」タブの「接続」から確認できますよ。

メンバー式

キューブ内のメンバーを一意に識別する多次元式(MDX)を指定します。MDXとは、OLAPキューブを操作するための専用言語のことです。

たとえば "[店舗].[都道府県].&[東京]" のように記述します。通常はCUBEMEMBER関数の結果を参照するのが便利です。

プロパティ

取得したいプロパティの名前を指定します。省略するとキャプション(表示名)が返されます。

CUBEMEMBERPROPERTY関数の使い方

基本的な使い方

まずはシンプルな例から見てみましょう。キューブの接続名が「売上データ」で、東京店の店舗面積を取得する場合です。

=CUBEMEMBERPROPERTY("売上データ", "[店舗].[店舗名].&[東京店]", "店舗面積")

この数式は「売上データ」キューブから、東京店の「店舗面積」プロパティの値を返します。

CUBEMEMBER関数と組み合わせて使う

実務では、メンバー式を直接書くよりも、CUBEMEMBER関数と組み合わせるのが一般的です。

たとえば、セルA1にCUBEMEMBER関数でメンバーを取得しておきます。そのプロパティを別のセルで参照しましょう。

A1: =CUBEMEMBER("売上データ", "[店舗].[店舗名].&[東京店]")
B1: =CUBEMEMBERPROPERTY("売上データ", A1, "店舗面積")
C1: =CUBEMEMBERPROPERTY("売上データ", A1, "開店日")

こうすると、A1のメンバーを変えるだけでB1やC1のプロパティも自動的に切り替わります。メンテナンスもしやすいですよ。

取得できるプロパティの一覧

プロパティ引数には、キューブで定義されたカスタムプロパティのほか、以下の標準プロパティも指定できます。

プロパティ名取得できる情報
CAPTIONメンバーの表示名
MEMBER_KEYメンバーのキー値
MEMBER_UNIQUE_NAMEメンバーの一意の名前
PARENT_UNIQUE_NAME親メンバーの一意の名前
CHILDREN_CARDINALITY子メンバーの数
LEVEL_NUMBER階層レベルの番号

階層構造の情報を取得したいときは、PARENT_UNIQUE_NAMEやLEVEL_NUMBERが便利です。

よくあるエラーと対処法

CUBEMEMBERPROPERTY関数で表示されやすいエラーと対処法をまとめました。

エラー原因対処法
#N/Aメンバー式が無効、またはメンバーが存在しないメンバー式のスペルや階層パスを確認する
#VALUE!接続名が無効、またはキューブに接続できない「データ」タブの「接続」で接続名を確認する
#NAME?関数名のスペルミスCUBEMEMBERPROPERTYの綴りを確認する

一番多いのは#N/Aエラーです。メンバー式はスペルが1文字でも違うとエラーになります。CUBEMEMBER関数でメンバーが正しく取得できているか、まず確認してみてください。

接続名が合っているのに#VALUE!が出る場合は、キューブ側のサーバーが停止している可能性もあります。ネットワーク接続も含めて確認してみましょう。

他のCUBE関数との使い分け

ExcelのCUBE関数は全部で7種類あります。それぞれ役割が異なるので、目的に応じて使い分けましょう。

関数名役割
CUBEMEMBERメンバーまたは組を返す
CUBEMEMBERPROPERTYメンバーのプロパティを返す(本記事)
CUBESETメンバーのセットを定義する
CUBESETCOUNTセット内のアイテム数を返す
CUBERANKEDMEMBERセット内のN番目のメンバーを返す
CUBEVALUEキューブの集計値を返す
CUBEKPIMEMBERKPI(重要業績評価指標)のプロパティを返す

よくある組み合わせは次のとおりです。

  • メンバーの属性を調べたい → CUBEMEMBER + CUBEMEMBERPROPERTY
  • 集計値を取得したい → CUBEMEMBER + CUBEVALUE
  • セットから順番に取り出したいCUBESET + CUBERANKEDMEMBER

CUBEMEMBERPROPERTY関数は「プロパティ(属性情報)」を取得する関数です。「集計値」を取得したい場合はCUBEVALUE関数を使いましょう。

まとめ

CUBEMEMBERPROPERTY関数は、OLAPキューブからメンバーの属性情報を取得するための関数です。

ポイントをおさらいしましょう。

  • 構文は =CUBEMEMBERPROPERTY(接続, メンバー式, プロパティ)
  • CUBEMEMBER関数と組み合わせて使うのが実務では一般的
  • プロパティを省略するとキャプション(表示名)が返される
  • #N/Aエラーはメンバー式の記述ミスが原因であることが多い

CUBE関数群は、Excelでデータ分析の幅を広げてくれる便利なツールです。まずはCUBEMEMBER関数と組み合わせて試してみてください。

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