ExcelのCUBESETCOUNT関数、聞き慣れない名前ですよね。「CUBE関数シリーズって何だか難しそう…」と思って敬遠している方も多いのではないでしょうか。
でも安心してください。CUBESETCOUNT関数は、セットに含まれるアイテムの件数を数えるだけのシンプルな関数です。引数もたった1つなので、CUBE関数シリーズの中でもっとも覚えやすい関数ですよ。
この記事では、ExcelのCUBESETCOUNT関数の使い方を基本の書き方から実践例、よくあるエラーの対処法まで丁寧に解説していきます。
ExcelのCUBESETCOUNT関数とは?
CUBESETCOUNT関数は、ExcelのCUBE関数シリーズのひとつです。CUBESET関数で作成したセット(データの集まり)に含まれるアイテムの数を返します。
たとえば「関東エリアの店舗一覧」というセットを作った場合、そのセットに何店舗含まれるかをCUBESETCOUNT関数で確認できます。データモデルを使った集計レポートで、対象件数の表示に便利ですよ。
CUBESETCOUNT関数の読み方
読み方は 「キューブ セット カウント」 です。
「Cube(キューブ)」はデータの立方体、「Set(セット)」は集合、「Count(カウント)」は数えるという意味ですね。つまり「セット内のアイテムを数える関数」ということです。
CUBESETCOUNT関数でできること
CUBESETCOUNT関数を使うと、次のようなことができます。
- CUBESET関数で定義したセット内のアイテム数を取得する
- 条件別にセットを作り、それぞれの件数を比較する
- レポートに「対象: ○○件」と件数を自動表示する
CUBESETCOUNT関数を使う前に
CUBE関数シリーズは、Power Pivot(パワーピボット)のデータモデルか、外部のOLAPキューブへの接続が必要です。通常のExcelシートのデータだけでは動作しないので注意してくださいね。
Power Pivotやデータモデルの基本については、CUBEMEMBER関数の記事で詳しく解説しています。まだ読んでいない方は、先にそちらを確認しておくとスムーズですよ。
対応バージョン: Excel for Microsoft 365 / Excel 2024 / Excel 2021 / Excel 2019 / Excel 2016
Power Pivotを利用するには、Professional以上のエディションが必要です。お使いのバージョンが対応しているか、確認しておきましょう。
CUBESETCOUNT関数の構文と引数
基本構文
=CUBESETCOUNT(セット)
引数は「セット」の1つだけです。CUBE関数シリーズの中ではもっともシンプルな構文ですね。
引数の一覧
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| セット | 必須 | CUBESET関数で定義されたセットへの参照、またはCUBESET関数式を直接指定します |
引数「セット」の詳細
「セット」には、CUBESET関数の結果を指定します。指定方法は主に2つあります。
1. セル参照で指定する(推奨)
CUBESET関数の結果が入ったセルを参照する方法です。数式がシンプルになるので、こちらがおすすめですよ。
=CUBESETCOUNT(A1)
A1セルにCUBESET関数が入っている場合、そのセットの件数を返します。
2. CUBESET関数を直接ネストする
CUBESET関数を引数の中に直接書く方法です。1つのセルで完結しますが、数式が長くなりがちです。
=CUBESETCOUNT(CUBESET("ThisWorkbookDataModel","[商品マスタ].[カテゴリ].children","カテゴリ一覧"))
NOTE
CUBESETCOUNT関数の引数にはCUBESET関数の結果のみ指定できます。CUBEMEMBER関数の結果や通常のセル値を指定すると、#VALUE!エラーになるので注意してください。
CUBESETCOUNT関数の使用例
ここからは、実際の使い方を3つのパターンで見ていきましょう。
例1: CUBESETのセル参照でカウントする
もっとも基本的な使い方です。まずCUBESET関数でセットを定義し、そのセルを参照してカウントします。
手順:
- A1セルにCUBESET関数でセットを定義する
=CUBESET("ThisWorkbookDataModel","[商品マスタ].[カテゴリ].children","全カテゴリ")
- B1セルにCUBESETCOUNT関数を入力する
=CUBESETCOUNT(A1)
A1セルには「全カテゴリ」と表示され、B1セルにはカテゴリの件数(例: 5)が表示されます。セットの中身を確認したいときに使える基本パターンですよ。
例2: CUBESET関数を直接ネストする
セル参照を使わず、1つのセルで完結させるパターンです。
=CUBESETCOUNT(CUBESET("ThisWorkbookDataModel","[売上].[地域].children","地域一覧"))
この数式では、売上テーブルの「地域」列に含まれる子メンバーの件数を返します。別のセルにCUBESET関数を用意する必要がないので、スペースを節約したいときに便利ですね。
例3: 条件を変えてセットの件数を比較する
CUBESETCOUNTの実務的な使い方として、条件別のセットを作って件数を比較するパターンを紹介します。
| セル | 数式 | 結果の例 |
|---|---|---|
| A1 | =CUBESET("ThisWorkbookDataModel","Filter([商品マスタ].[商品名].children,[Measures].[売上高]>100000)","高売上商品") | 高売上商品 |
| A2 | =CUBESET("ThisWorkbookDataModel","Filter([商品マスタ].[商品名].children,[Measures].[売上高]<=100000)","低売上商品") | 低売上商品 |
| B1 | =CUBESETCOUNT(A1) | 8 |
| B2 | =CUBESETCOUNT(A2) | 15 |
この例では、売上高10万円を境に商品を2つのセットに分け、それぞれの件数を比較しています。「高売上商品は8件、低売上商品は15件」のように、データの分布を一目で把握できますよ。
CUBERANKEDMEMBER関数と組み合わせれば、件数を確認したうえで上位N件の具体的なメンバー名も取り出せます。
CUBE関数シリーズとの組み合わせ
CUBESETCOUNT関数は単独でも使えますが、他のCUBE関数と組み合わせると活用の幅が広がります。CUBE関数シリーズ全6関数の役割を一覧で確認しておきましょう。
| 関数 | 役割 | CUBESETCOUNTとの関係 |
|---|---|---|
| CUBESET | セットを定義する | CUBESETCOUNTの引数に使う(必須の組み合わせ) |
| CUBEMEMBER | メンバーを取得する | セットの条件指定に活用 |
| CUBEVALUE | 集計値を返す | 件数と集計値を並べてレポート作成 |
| CUBERANKEDMEMBER | セット内のN番目を返す | 件数を確認してから個別メンバーを取得 |
| CUBEMEMBERPROPERTY | メンバーの属性を返す | 取得したメンバーの詳細情報を補完 |
たとえば、こんな流れで組み合わせると便利です。
- CUBESET関数 で「売上トップの商品セット」を作る
- CUBESETCOUNT関数 でセットの件数を確認する
- CUBERANKEDMEMBER関数 で1位〜N位の商品名を取り出す
- CUBEVALUE関数 で各商品の売上金額を取得する
このように、CUBESETCOUNTはセットの件数を把握する「入口」の役割を果たします。件数がわかれば、CUBERANKEDMEMBERで何番目まで取り出すかの判断もしやすくなりますよ。
よくあるエラーと対処法
CUBESETCOUNT関数を使っていてエラーが出たときの対処法をまとめました。
#N/Aエラー
原因: セット式が無効か、CUBESET関数がまだ評価中の場合に表示されます。
対処法:
- 参照先のCUBESET関数が正しく動作しているか確認する
- CUBESET関数自体がエラーを返していないかチェックする
- 再計算(Ctrl+Alt+F9)を実行して、計算順序の問題を解消する
#VALUE!エラー
原因: セット以外の値を引数に指定した場合に表示されます。
対処法:
- 引数にCUBESET関数の結果が入っているか確認する
- CUBEMEMBER関数の結果や通常のセル値を指定していないかチェックする
- セル参照が正しいセル(CUBESET関数のセル)を指しているか見直す
#NAME?エラー
原因: 関数名のスペルミス、またはCUBE関数が利用できない環境で発生します。
対処法:
- 関数名が「CUBESETCOUNT」と正しく入力されているか確認する
- Power PivotまたはOLAP接続が設定されているか確認する
- Excelのバージョンが対応しているかチェックする
NOTE
CUBESETCOUNT関数はデータの取得中に「#GETTING_DATA...」と表示されることがあります。これはエラーではなく処理中のステータスなので、しばらく待てば結果が表示されますよ。
まとめ
ExcelのCUBESETCOUNT関数は、CUBESET関数で定義したセット内のアイテム数を取得する関数です。
ポイントをおさらいしましょう。
- 構文:
=CUBESETCOUNT(セット)--- 引数は1つだけ - 引数にはCUBESET関数の結果のみ指定できる(CUBEMEMBERや通常の値は不可)
- セル参照で指定するのが基本(数式がシンプルになる)
- 条件別のセットを作って件数比較に活用できる
- CUBERANKEDMEMBER関数やCUBEVALUE関数と組み合わせると、さらに実践的な分析ができる
CUBE関数シリーズは最初はとっつきにくいですが、まずはCUBESETでセットを作り、CUBESETCOUNTで件数を確認するところから始めてみてください。データモデルの分析がぐっと楽になりますよ。
