ExcelのCUBEKPIMEMBER関数は、OLAPキューブに定義されたKPIのプロパティを返す関数です。KPIとはKey Performance Indicatorの略で、重要業績評価指標を意味します。経営ダッシュボードや財務レポートで「売上目標の達成率」「在庫回転の状態」などを数式で取り出したいときに役立ちます。
ピボットテーブルでKPIを表示する方法はよく紹介されています。一方でCUBEKPIMEMBERを使えば、レイアウト自由なダッシュボードを作れますよ。この記事では、CUBEKPIMEMBERの構文・5つのKPIプロパティ・CUBEVALUEとの組み合わせ・実務活用例まで解説します。
CUBEKPIMEMBER関数とは
ExcelのCUBEKPIMEMBER関数は、OLAPキューブ(Analysis ServicesやPower Pivotのデータモデル)に定義されたKPIから、特定のプロパティを返す関数です。返せるプロパティは値・目標・状態・傾向・重みの5種類です。
KPIには「実績値」「目標値」「達成度」「傾向」など複数のプロパティが含まれます。CUBEKPIMEMBERは引数で指定した1つのプロパティを取り出します。
KPIとキューブの関係
KPIは、キューブの中で「実績メジャー」「目標値」「ステータス計算式」「傾向計算式」をまとめたオブジェクトです。Power Pivotなら「KPIの作成」機能で簡単に定義できます。
| 用語 | 意味 |
|---|---|
| キューブ | 多次元データベースの単位(売上・在庫など) |
| メンバー | 次元の構成要素(例: 「2025年4月」「東京支店」) |
| KPI | 業績指標のひとまとまり(実績・目標・状態・傾向) |
| プロパティ | KPIを構成する要素(値・目標・状態など) |
利用できる環境
CUBEKPIMEMBERはExcel 2007以降で利用可能です。Microsoft 365・Excel 2024・Excel 2021でも使えます。お使いの環境がOLAPキューブまたはPower Pivotのデータモデルに接続できるか、確認しておきましょう。
Excel for Macではデータモデル経由のみのサポートとなります。
CUBEKPIMEMBER関数の構文と引数
CUBEKPIMEMBER関数の構文は次のとおりです。
=CUBEKPIMEMBER(connection, kpi_name, kpi_property, )
引数は次の4つです。
| 引数 | 必須 | 説明 |
|---|---|---|
| connection | 必須 | キューブへの接続名(テキスト) |
| kpi_name | 必須 | KPIの名前(テキスト) |
| kpi_property | 必須 | 返すプロパティの番号(1〜6の整数または定数) |
| caption | 任意 | セルに表示する代替テキスト |
connection(接続名)
データモデル使用時は "ThisWorkbookDataModel" を指定します。外部のSQL Server Analysis Servicesなどに接続している場合は、ODCファイルで定義した接続名を指定します。
文字列はダブルクォーテーションで囲むのを忘れないでください。
kpi_name(KPI名)
キューブ側で定義済みのKPI名を文字列で指定します。例えば "売上目標" や "Sales Amount Quota" のような名前です。
kpi_property(プロパティ番号)
返したいKPIプロパティを1〜6の整数で指定します。詳細は次のセクションで解説します。
caption(セル表示用ラベル)
省略するとKPIのメンバー識別子がそのままセルに表示されます。任意のラベルを表示したい場合は、"売上達成率" のように指定しましょう。
KPIプロパティ5種類+現在のメンバー
kpi_propertyには6つの値が指定できます。よく使うのはValue(1)とGoal(2)ですよ。
| 番号 | 定数名 | プロパティ | 意味 |
|---|---|---|---|
| 1 | KPIValue | 値(Value) | KPIの実績値 |
| 2 | KPIGoal | 目標値(Goal) | KPIの目標 |
| 3 | KPIStatus | 状態(Status) | 達成度を示す数値 |
| 4 | KPITrend | 傾向(Trend) | 時間経過の推移 |
| 5 | KPIWeight | 重み(Weight) | 相対的重要度 |
| 6 | KPICurrentTimeMember | 現在のメンバー | 関連する時間メンバー |
Value(1)— 実績値
KPIの実績値を取得します。例えば「今月の売上実績」「現在の在庫回転率」など、現時点での値です。
Goal(2)— 目標値
KPIに設定された目標を取得します。「今月の売上目標」「目標とする在庫回転率」が返ります。
Status(3)— 状態
KPIの達成度を数値で返します。慣例として次の値が使われます。
| 値 | 意味 |
|---|---|
| 1 | 達成(良好) |
| 0 | 注意(要観察) |
| -1 | 未達(要対応) |
ただし、ステータスの値はキューブ設計者が自由に定義できます。アイコンセットの「3つの信号」を使うと視覚的に分かりやすくなりますよ。
Trend(4)— 傾向
KPIの時間経過に伴う変化方向を数値で返します。
| 値 | 意味 |
|---|---|
| 1 | 上昇傾向 |
| 0 | 横ばい |
| -1 | 下降傾向 |
矢印アイコン(↑→↓)と組み合わせるとトレンドが直感的に伝わります。
Weight(5)— 重み
複数のKPIをまとめた総合スコアを計算する場合の、各KPIの重要度を返します。例えば売上KPIに0.6、利益KPIに0.4といった重み付けです。
CurrentTimeMember(6)— 現在のメンバー
KPIに関連付けられた時間メンバー(例: 「2025年4月」)を返します。時系列ダッシュボードで「いつの実績か」を表示する際に役立ちます。
基本的な使い方|CUBEVALUEとセットで使う
ここがCUBEKPIMEMBERの最大のポイントです。CUBEKPIMEMBERは「メンバー名」を返すだけの関数です。数値そのものを取得するにはCUBEVALUE関数(キューブから値を取り出す関数)と組み合わせる必要があります。
ステップ1: CUBEKPIMEMBERでKPIプロパティのメンバーを取得
セルA2に次の数式を入力します。
=CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 1, "売上実績")
このセルには「売上実績」というキャプションが表示されます。内部ではKPIの「Value」プロパティのメンバー識別子が格納されています。
ステップ2: CUBEVALUEで数値を取得
セルB2にCUBEVALUEを書き、A2を参照します。
=CUBEVALUE("ThisWorkbookDataModel", A2)
これでA2のメンバー識別子に対応する数値(売上実績)が取得できます。
ステップ3: 目標値も同じパターンで取得
セルA3とB3に目標値の数式を入れます。
A3: =CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 2, "売上目標")
B3: =CUBEVALUE("ThisWorkbookDataModel", A3)
ステップ4: 達成率を計算
セルC2に達成率を計算します。
=B2/B3
実績÷目標で達成率が算出できます。仮に売上実績が850万円・売上目標が1,000万円なら、達成率は85%(=0.85)になります。
経営ダッシュボードでの実務活用例
ここではCUBEKPIMEMBERを使った経営ダッシュボードの3つの活用例を紹介します。
活用例1: 売上達成率ダッシュボード
部門別の売上達成率を一覧表示するダッシュボードです。
| 部門 | 実績 | 目標 | 達成率 | 状態 |
|---|---|---|---|---|
| 営業1部 | 850万 | 1,000万 | 85% | 注意 |
| 営業2部 | 1,100万 | 1,000万 | 110% | 達成 |
| 営業3部 | 720万 | 1,000万 | 72% | 未達 |
各セルの数式は次のようになります(営業1部の例)。
実績: =CUBEVALUE("ThisWorkbookDataModel", CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 1), "[部門].[営業1部]")
目標: =CUBEVALUE("ThisWorkbookDataModel", CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 2), "[部門].[営業1部]")
達成率: =B2/C2
状態: =CUBEVALUE("ThisWorkbookDataModel", CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 3), "[部門].[営業1部]")
「状態」列に条件付き書式のアイコンセット(3つの信号)を設定すると、信号機のような可視化ができますよ。
活用例2: 利益率トレンド表示
利益率KPIの傾向(Trend)プロパティを使って、時系列の推移を矢印で表示します。
=CUBEVALUE("ThisWorkbookDataModel", CUBEKPIMEMBER("ThisWorkbookDataModel", "利益率", 4))
戻り値が1なら↑、0なら→、-1なら↓のアイコンを表示するように条件付き書式を設定します。
活用例3: 在庫回転KPIの目標差分
在庫回転率の実績と目標の差分を表示します。
A1: =CUBEKPIMEMBER("ThisWorkbookDataModel", "在庫回転", 1, "実績")
B1: =CUBEVALUE("ThisWorkbookDataModel", A1)
A2: =CUBEKPIMEMBER("ThisWorkbookDataModel", "在庫回転", 2, "目標")
B2: =CUBEVALUE("ThisWorkbookDataModel", A2)
C1: =B1-B2
差分がマイナスなら赤、プラスなら青で表示するなどの条件付き書式と組み合わせると、ひと目で状況が把握できます。
CUBE系関数との使い分け
ExcelのCUBE系関数は7種類あります。それぞれの役割を整理しておきましょう。
| 関数 | 用途 | CUBEKPIMEMBERとの関係 |
|---|---|---|
| CUBEVALUE | キューブから値(数値)を取得 | KPIプロパティの数値取得にペアで使う |
| CUBEMEMBER | 次元・階層のメンバーを取得 | KPI以外のメンバー指定に使用 |
| CUBESET | メンバーの集合を定義 | 複数メンバーをまとめて扱う |
| CUBESETCOUNT | セットのメンバー数を取得 | セットのサイズ確認 |
| CUBERANKEDMEMBER | セット内のN番目のメンバーを返す | ランキング表示に使用 |
| CUBEMEMBERPROPERTY | メンバーのプロパティを取得 | メンバー属性の取得 |
| CUBEKPIMEMBER | KPIプロパティのメンバーを返す | KPI管理専用 |
CUBEKPIMEMBER vs CUBEMEMBER
CUBEMEMBERは次元やメジャーのメンバーを返す汎用関数です。CUBEKPIMEMBERはKPI専用で、KPIに紐づく5つのプロパティ(値・目標・状態・傾向・重み)にアクセスできます。
KPIを使わないシンプルな値取得ならCUBEMEMBER、KPI管理ならCUBEKPIMEMBERを選びます。
CUBEKPIMEMBER vs CUBEVALUE
CUBEVALUEは「数値」を返し、CUBEKPIMEMBERは「メンバー名」を返します。CUBEKPIMEMBERだけでは数値を取得できないため、CUBEVALUEとセットで使います。
よくあるエラーと対処法
CUBEKPIMEMBERを使っていると、いくつかのエラーに遭遇します。それぞれの原因と対処法を整理しました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #GETTING_DATA | データ取得中の一時状態 | 自動更新を待つ |
| #N/A | KPI名やプロパティが見つからない | KPI名のスペルとキューブ側の定義を確認 |
| #NAME? | 関数名のスペルミス、文字列の引用符抜け | 構文を確認 |
| #VALUE! | 引数の型が不正 | kpi_propertyに1〜6を指定 |
| #REF! | 接続が無効 | データソース接続を確認 |
#NAME? エラーの典型例
誤: =CUBEKPIMEMBER(ThisWorkbookDataModel, 売上目標, 1)
正: =CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 1)
connectionとkpi_nameは文字列なので、ダブルクォーテーションで囲みましょう。
#N/A エラーの典型例
KPIが定義されていないキューブにCUBEKPIMEMBERを使うと#N/Aが返ります。Power PivotのデータモデルでKPIが作成済みか、確認してください。
#VALUE! エラーの典型例
誤: =CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 7)
正: =CUBEKPIMEMBER("ThisWorkbookDataModel", "売上目標", 1)
kpi_propertyは1〜6の範囲です。7以上を指定すると#VALUE!が返ります。
CUBEKPIMEMBERを使う前のチェックリスト
スムーズに使い始めるためのチェックリストを用意しました。
- [ ] Power Pivotまたは外部キューブに接続済みか
- [ ] キューブにKPIが定義されているか
- [ ] KPI名・プロパティ番号が正しいか
- [ ] 接続名がダブルクォーテーションで囲まれているか
- [ ] 数値取得にはCUBEVALUEと組み合わせているか
特に「CUBEVALUEとセットで使う」点は、初めて使う方が必ずつまずくポイントなので注意しましょう。
まとめ|CUBEKPIMEMBERでKPIダッシュボードを自由に組む
ExcelのCUBEKPIMEMBER関数は、OLAPキューブのKPIプロパティを取得する専用関数です。要点を整理します。
| 項目 | 内容 |
|---|---|
| 構文 | =CUBEKPIMEMBER(connection, kpi_name, kpi_property, ) |
| プロパティ番号 | 1=Value、2=Goal、3=Status、4=Trend、5=Weight、6=CurrentTimeMember |
| 戻り値 | KPIプロパティのメンバー名(数値ではない) |
| 数値取得 | CUBEVALUEとセットで使う |
| 主な用途 | 経営ダッシュボード、KPI管理、達成率可視化 |
ピボットテーブルに依存せず、数式ベースで自由なレイアウトのKPIダッシュボードが組めるのがCUBEKPIMEMBERの魅力です。CUBEVALUEとの組み合わせを覚えれば、実績・目標・状態・傾向の4要素を1画面に集約した経営レポートが作れますよ。
CUBE系関数のシリーズ記事もあわせてチェックしてみてください。
