Utilisation de la fonction DÉCALAGE pour référencer les hyperblocks

Cette rubrique décrit la fonction DÉCALAGE. Elle se réfère au rapport exemple RP006 dans l'application d'exemple.

La fonction DÉCALAGE n'est pas spécifique à Application Studio, mais s'avère particulièrement utile avec les hyperblocks. En effet, en mode Affichage, les hyperblocks sont dynamiques. En mode Création, un hyperblock est statique, c'est-à-dire qu'il occupe une plage spécifique de cellules. Mais dans le mode Affichage, un hyperblock s'étire et se contracte avec ses contenus ; les références spécifiques de cellule deviennent donc inutiles. Par conséquent, si une formule en dehors d'un hyperblock doit référencer les cellules au sein de l'hyperblock, une formule dynamique est nécessaire.

La fonction OFFSET permet d'identifier les cellules en définissant leur position relative par rapport à la cellule de référence initiale. Leur position est définie par des coordonnées représentant des distances en termes de nombre de lignes et de colonnes à partir de la cellule de référence initiale.

Cet exemple référence la cellule C13 :

=OFFSET(F11,2,-3)

La cellule F11 est la cellule de référence initiale. Le deuxième argument, 2, indique que la cellule de référence est située deux lignes en dessous de F11. Le troisième argument, 3, indique que la cellule de référence est située 3 colonnes à la gauche de F11.

Cet exemple référence également la cellule C13 :

=OFFSET(B21,-8,1)

La cellule B21 est la cellule de référence initiale. Le deuxième argument, -8, indique que la cellule de référence est située 8 lignes au-dessus de B21. Le troisième argument, 1, indique que la cellule de référence est située 1 colonne à la droite de B21.

OFFSET est fréquemment utilisé dans Application Studio pour le calcul des valeurs cumulées, par exemple analyse ABC ou graphiques de Pareto. Pour calculer une valeur cumulée, on ajoute la valeur de la cellule actuelle à celle de la cellule supérieure. Mais dans l'environnement dynamique d'un hyperblock, la cellule située au-dessus ne peut pas être définie avec une référence de cellule statique.

Le rapport RP006 comporte un exemple de calcul de valeurs cumulées à l'aide de DÉCALAGE.

Le rapport RP006 comporte un hyperblock créé à partir de la dimension Produit du cube Analysis de l'application d'exemple.

L'hyperblock comporte deux cellules de valeur. Dans la première, une formule ROC affiche une valeur pour chaque groupe de produits. La seconde cellule de valeur est une formule DÉCALAGE.

Dans le mode Affichage, la cellule duplique les valeurs contenues dans la première cellule de valeur. En effet, la formule DÉCALAGE est incorrecte.

La formule dans la cellule E5 est :

=OFFSET(E5,0,0)+D5

Pour modifier la formule DÉCALAGE afin qu'elle affiche les valeurs cumulées :

  1. Dans le mode Création, cliquer sur la cellule E5.
  2. Dans l'Éditeur de formules, modifier le second argument de la formule DÉCALAGE de 0 à -1. Autrement dit, modifier la formule en =OFFSET(E5,-1,0)+D5 Ici, -1 définit « la ligne supérieure ».

    Dans le mode Affichage, les valeurs cumulées sont affichées et le libellé « Cumulative » s'affiche. Cela est également possible en utilisant une fonction DÉCALAGE dans la cellule E3 qui est imbriquée par une instruction IF.

    L'instruction IF est : =IF(OFFSET(E3,3,0)=OFFSET(E3,3,-1),"","Cumulative")

    Les valeurs de la première ligne des résultats sont toujours égales. Mais, s'il s'agit de valeurs cumulées, les valeurs dans toutes les autres lignes ne sont jamais égales. Par conséquent, l'instruction IF teste si les valeurs dans la ligne 2 sont égales.

    L'instruction IF peut être traduite comme suit : si la valeur de la cellule située 3 lignes en dessous de E3 est égale à la valeur de la cellule située 3 lignes en dessous et une colonne à la gauche de E3, alors rien n'est affiché (""). Sinon, « Cumulative » s'affiche.