CELLGET
この関数は、指定したエレメントに基づいてキューブの値を返します。この関数は、ODBO および XMLA 対応データベースでのみ使用できます。ROC 式と似ていますが、動的であるという特徴があります。つまり、次元のすべてのエレメントを指定する必要はありません。指定されていない次元にはデフォルトエレメントが使用されます。
この動的である点が、レポートテンプレートに特に関係します。たとえば、テンプレートのデザイナーは、ユーザーがメジャーを含む次元、または期間を含む次元を選択しなければならないよう指定できます。しかし、ユーザーが実際にどの次元を利用できるか、または実際にどの次元を選択するかは、デザイナーには分かりません。そのため、テンプレートデザイナーが挿入する数式では、特定の次元、階層、またはエレメントを参照できません。CELLGET 式の各引数は、変数で提供できます。
また、次元を指定する順序は重要ではありません。CELLGET 式では、個々のセルを参照する代わりに、セルの範囲を参照できます。
CELLGET は 1 つの次元からの複数エレメントの選択をサポートしています。
構文
=CELLGET("data_connection", "cube"{,"slice_element"})
例
=CELLGET( "BestPracticesOLAP", "Analysis", "[Period].[All Years].[2017]",
"[Product].[Car Tires All Season]")
CELLGET を使用して、複数の次元からのエレメントを個別に、または範囲として参照できます。したがって、セル B4、B5、B6、B7 にそれぞれエレメント名が含まれる場合、次の例は同じ結果になります。
=CELLGET("BestPracticesOLAP", "Analysis",B4,B5,B6,B7)
=CELLGET("BestPracticesOLAP","Analysis",B4:B7)
CELLGET 式が含まれるセルの値を変更すると、値がデータベースに書き戻されます。
CELLGET 式を使用してハイパーブロック内のセルを参照できます。
multiselect (複数選択)
CELLGET は multiselect (複数選択) に対応しています。CELLGET 式内の任意のエレメントを、有効な multiselect XML (MLS-XML) への参照に置き換えることができます。これらの参照は、MLS-XML を含むセルまたは変数の参照とすることができます。
次の例では、エレメント 2016 および 2017 が MLS-XML としてレポート変数に格納されます。
=CELLGET("BestPracticesOLAP","ANALYSIS","[CHANNEL].[All Channels]","[MEASURE].[Gross Margin]",
"[POS].[All POS]","[PRODUCT].[All Tires]","[REGION].[All Regions].[Europe]",
ReportVariables.rv_multi.Text,"[VALTYPE].[Variance]")
範囲を使用して次元内の複数のエレメントを指定することもできます。
次の例では、2016 および 2017 エレメントが範囲で指定されています。
=CELLGET("BestPracticesOLAP","ANALYSIS","[CHANNEL].[All Channels]","[MEASURE].[Gross Margin]"
,"[POS].[all pos]","[Product].[all tires]","[region].[all regions].[europe]",
"[Period].[all years].[2016]::[period].[all years].[2017]","[valtype].[variance]")
この関数は、個々のエレメントの値の合計を返します。