CUBEVALUE 関数
適用対象: Microsoft Excel 2010, Excel Web App, SharePoint Online for enterprises, SharePoint Online for professionals and small businesses
説明
書式
CUBEVALUE(接続, [メンバー式 1], [メンバー式 2], …)
- 接続 必ず指定します。キューブへの接続名を表す文字列です。
- メンバー式 省略可能です。キューブのメンバーまたは組を表す多次元式 (MDX) の文字列です。CUBESET 関数で定義したセットを指定することもできます。メンバー式をスライサーとして使用して合計値を返す対象となるキューブの部分を定義します。メンバー式でメジャーが指定されていない場合は、そのキューブの既定のメジャーが使われます。
解説
- CUBEVALUE 関数を使用して評価する場合、すべてのデータを取得する前に、一時的にセル内に "#GETTING_DATA..." というメッセージが表示されます。
- メンバー式にセル参照が使用され、そのセル参照に CUBE 関数が含まれている場合、メンバー式は参照セルのアイテムに対して、参照セルに表示される値ではなく MDX 式を使用します。
- 接続名がブックに格納されている有効なブック接続でない場合は、エラー値 #NAME? を返します。オンライン分析処理 (OLAP) サーバーが実行されていない、利用できない、またはエラー メッセージを返す場合も、エラー値 #NAME? を返します。
- 組内の少なくとも 1 つの要素が無効な場合、エラー値 #VALUE! を返します。
- 次の場合、CUBEVALUE はエラー値 #N/A を返します。
- メンバー式の書式に誤りがある。
- メンバー式で指定されたメンバーがキューブに存在しない。
- 指定された値に共通部分がなく、組が無効である (同一階層にある複数の要素を使用するときに発生する場合があります)。
- セット内に他のメンバーと異なるディメンションを持つメンバーが少なくとも 1 つ含まれる。
- 集計メンバーや名前付きセットなど、ピボットテーブル内のセッションベースのオブジェクトを参照すると、エラー値 #N/A が返されることがあります。これは、接続が共有されていて、そのピボットテーブルが削除された場合、または [オプション] タブの [ツール] で [OLAP ツール] をクリックし、次に [数式に変換] をクリックして、数式に変換された場合です。
Microsoft Office Excel 2007 では、セルの内容を変更したり内容を削除してデータがない場合、セルには空の値が含まれます。多くのデータベース システムでは、空の値のことを Null 値と呼びます。空の値も Null 値も、文字どおり「値がない」ことを意味します。ただし、数式が空の文字列や Null 値を返すことはできません。数式は常に、数値、文字列値 (長さ 0 の文字列を含む)、エラー値 (#NUM!、#VALUE など) のいずれかを返します。
オンライン分析処理 (OLAP) データベースに接続されている CUBEVALUE 関数が含まれる数式があり、このデータベースに対するクエリの結果が Null 値であった場合、Excel はこれを長さ 0 の文字列に変換します。これは、数式が Null 値以外の数値を返す場合でも同じです。そのため、ある範囲のセルに数値と長さ 0 の文字列が混在する結果になり、このセル範囲を参照する他の数式の結果に影響することがあります。たとえば A1 と A3 に数値が含まれ、A2 に CUBEVALUE 関数を使った数式が含まれている場合に、関数が長さ 0 の文字列を返した場合、次の数式はエラー値 #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("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]")="", 0, CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]"))
SUM 関数では、合計値を計算する際に長さ 0 の文字列は自動的に無視されるため、このテストを実行する必要はありません。
使用例
=CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]")
=CUBEVALUE($A$1,"[Measures].[Profit]",D$12,$A23)
=CUBEVALUE("Sales",$B$7,D$12,$A23)
- CUBEVALUE 関数のページへのリンク