CUBESET 関数は、Excel のキューブ関数の一つで、Power Pivot または OLAPキューブ に接続されたデータソースから、セット(=複数メンバーの集まり)を定義するための関数です。
✅ 概要
「条件を満たす項目の集まりを定義したい」ときに使います。
たとえば、「売上が多い上位5つの製品」や「すべての地域」などのメンバーのリストを返します。
📘 構文
CUBESET(connection, set_expression, , [sort_order], [sort_by])
| 引数 | 説明 |
|---|---|
connection | データモデルの接続名(例: "ThisWorkbookDataModel") |
set_expression | MDX 形式のセット式(またはメンバーをカンマ区切りで並べた文字列) |
caption | (省略可)表示名(セル上に見せる名前) |
sort_order | (省略可)並び替えの方法(例:1 = 昇順、0 = 降順) |
sort_by | (省略可)並び替えの基準(たとえば [Measures].[Sales]) |
🔍 使用例
基本セット(全ての地域をセット化)
=CUBESET("ThisWorkbookDataModel", "[Geography].[Region].Children", "地域一覧")
上位5製品(売上順)
=CUBESET(
"ThisWorkbookDataModel",
"TopCount([Product].[Product Name].Children, 5, [Measures].[Sales])",
"売上上位5製品"
)
並び替え付きセット(降順)
=CUBESET(
"ThisWorkbookDataModel",
"[Customer].[Customer Name].Children",
"顧客一覧(売上順)",
0,
"[Measures].[Sales]"
)
💡 よくある用途
CUBERANKEDMEMBERと組み合わせて、「上位n項目を順番に表示」CUBESETCOUNTでセットの個数を数えるCUBEVALUEと組み合わせて、セット内の各メンバーの値を個別に取得
⚠️ 注意点
- セット式は MDX構文 なので、書き方に慣れが必要。
- 接続先(Power Pivot または OLAP)がないと使えません。
- セット内でフィルターや条件を指定する場合は
FILTERやTopCount,Orderなどの MDX関数を活用。
🔗 関連関数
| 関数名 | 用途 |
|---|---|
CUBEMEMBER | キューブ内の1つのメンバーを取得 |
CUBERANKEDMEMBER | セットから順位付きで1項目取得 |
CUBEVALUE | 特定メンバーの値(数値など)を取得 |
CUBESETCOUNT | セットのメンバー数を取得 |