CUBEVALUE 関数

ここでは、Microsoft Excel の CUBEVALUE 関数の書式および使用法について説明します。

説明

キューブの集計値を返します。

書式

CUBEVALUE(接続, [メンバー式 1], [メンバー式 2], …)

CUBEVALUE 関数の書式には、次の引数があります。

  • 接続    必ず指定します。キューブへの接続名を表す文字列です。

  • メンバー式    省略可能です。キューブ内のメンバーまたは組を表す多次元式 (MDX) の文字列です。または、メンバー式は CUBESET 関数で定義したセットでもかまいません。メンバー式をスライサーとして使用して、合計値が返されるキューブの部分を定義します。メンバー式でメジャーが指定されない場合は、そのキューブの既定のメジャーが使用されます。

解説

  • CUBEVALUE 関数を使用して評価する場合、すべてのデータを取得する前に、一時的にセル内に "#GETTING_DATA..." というメッセージが表示されます。

  • メンバー式にセル参照が使用され、そのセル参照に CUBE 関数が含まれている場合、メンバー式は参照セルのアイテムに対して、参照セルに表示される値ではなく MDX 式を使用します。

  • 接続名がブックに格納されている有効なブック接続でない場合は、エラー値 #NAME? を返します。オンライン分析処理 (OLAP) サーバーが実行されていない、利用できない、またはエラー メッセージを返す場合も、エラー値 #NAME? を返します。

  • 組内の少なくとも 1 つの要素が無効な場合、CUBEVALUE はエラー値 #VALUE! を返します。

  • 次の場合、CUBEVALUE はエラー値 #N/A を返します。

    • メンバー式の書式に誤りがある。

    • メンバー式で指定されたメンバーがキューブに存在しない。

    • 指定された値に共通部分がなく、組が無効である (同一階層にある複数の要素を使用するときに発生する場合があります)。

    • セット内に他のメンバーと異なるディメンションを持つメンバーが少なくとも 1 つ含まれる。

    • 計算メンバーや名前付きセットなど、ピボットテーブル内のセッションベースのオブジェクトを参照すると、エラー値 #N/A が返されることがあります。これは、接続が共有されていて、そのピボットテーブルが削除された場合、またはピボットテーブルが数式に変換された場合です ([オプション] タブの [ツール] で [OLAP ツール] をクリックし、次に [数式に変換] をクリック)。

問題点: Null 値は長さ 0 の文字列に変換されます。

Excel では、データを変更していないため、または内容を削除したために、セルにデータがない場合、セルには空の値が含まれます。多くのデータベース システムでは、空の値のことを Null 値と呼びます。空の値も Null 値も、文字どおり "値がない" ことを意味します。ただし、数式が空の文字列や Null 値を返すことはできません。数式は常に 3 つの値のいずれかを返します。数値、文字列値 (長さ 0 の文字列の場合があります)、またはエラー値 (#NUM! や #VALUE など) です。

数式にオンライン分析処理 (OLAP) データベースに接続された CUBEVALUE 関数が含まれ、このデータベースへのクエリ結果が Null 値の場合、Excel は、数式がそれ以外の数値の値を返す場合であっても、この Null 値を長さ 0 の文字列に変換します。これにより、ある範囲のセルに数値と長さ 0 の文字列値が含まれるようになる場合があり、このような状況はその範囲のセルを参照している他の数式の結果に影響することがあります。たとえば、A1 と A3 に数値が含まれ、A2 には長さ 0 の文字列を返す CUBEVALUE 関数の数式が含まれる場合は、次の数式は #VALUE! エラーを返します。

=A1+A2+A3

エラーを回避するには、次の例のように ISTEXT 関数と IF 関数を使用して長さ 0 の文字列かどうかをテストし、条件に応じて文字列を数値 0 に置き換えます。

=IF(ISTEXT(A1),0,A1)+IF(ISTEXT(A2),0,A2)+IF(ISTEXT(A3),0,A3)

または、次の例のように CUBEVALUE 関数を IF 条件に入れ子にして、関数の結果が長さ 0 の文字列に評価される場合に値 0 を返すようにすることもできます。

=IF (CUBEVALUE("売上","[単位].[利益]","[時間].[2004]","[すべての製品].[飲料]")="", 0, CUBEVALUE("売上","[単位].[利益]","[時間].[2004]","[すべての製品].[飲料]"))

SUM 関数では、合計値を計算する際に長さ 0 の文字列は自動的に無視されるため、このテストを実行する必要はありません。

使用例

=CUBEVALUE("売上","[単位].[利益]","[時間].[2004]","[すべての製品].[飲料]")

=CUBEVALUE($A$1,"[単位].[利益]",D$12,$A23)

=CUBEVALUE("売上",$B$7,D$12,$A23)

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×