CELLGET
Cette fonction renvoie les valeurs d'un cube, en fonction des éléments spécifiés. La fonction ne peut être utilisée qu'avec des bases de données compatibles ODBO et XMLA. Elle est similaire à une formule ROC, mais elle est dynamique. Autrement dit, l'utilisateur n'a pas besoin de spécifier tous les éléments d'une dimension. L'élément par défaut est utilisé pour les dimensions non spécifiées.
Ce dynamisme est particulièrement important pour les modèles de rapports. Le créateur d'un modèle peut, par exemple, indiquer que les utilisateurs doivent sélectionner une dimension contenant des mesures ou une dimension contenant des périodes. Toutefois, le créateur ne peut pas connaître les dimensions réelles disponibles pour l'utilisateur ou que l'utilisateur sélectionnera. Ainsi, toute formule insérée par le créateur de modèle ne doit pas faire référence à des dimensions, des hiérarchies ou des éléments spécifiques. Chaque argument d'une formule CELLGET peut être fourni par une variable.
L'ordre dans lequel sont spécifiées les dimensions n'est pas important. Une formule CELLGET permet de référencer une plage de cellules au lieu de référencer chaque cellule individuellement.
CELLGET prend en charge la sélection de plusieurs éléments dans une dimension unique.
Syntaxe
=CELLGET("data_connection", "cube"{,"slice_element"})
Exemple
=CELLGET( "BestPracticesOLAP", "Analysis", "[Period].[All Years].[2017]",
"[Product].[Car Tires All Season]")
La formule CELLGET permet de référencer les éléments de plusieurs dimensions individuellement ou par plage. Ainsi, si les cellules B4, B5, B6 et B7 contiennent chacune un nom d'élément, ces deux exemples produisent le même résultat :
=CELLGET("BestPracticesOLAP", "Analysis",B4,B5,B6,B7)
=CELLGET("BestPracticesOLAP","Analysis",B4:B7)
Lorsque la valeur de la cellule qui contient la formule CELLGET est modifiée, elle est écrite en différé dans la base de données.
Il est possible d'utiliser une formule CELLGET pour référencer une cellule dans un hyperblock.
Multisélection
CELLGET prend en charge la multisélection. Il est possible de remplacer tout élément présent dans une formule CELLGET par des références à des définitions XML (MLS-XML) de multisélection valides. Les références peuvent pointer vers des cellules ou des variables contenant une définition MLS-XML.
Dans cet exemple, les éléments 2016 et 2017 sont stockés sous forme de définition MLS-XML dans une variable de rapport :
=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]")
Il est également possible de définir une plage afin de spécifier plusieurs éléments dans une dimension :
Dans cet exemple, les éléments 2016 et 2017 sont spécifiés dans une plage.
=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]")
La fonction renvoie la somme des valeurs de chaque élément.