Utilizar OFFSET para fazer referência a hiperblocos

Este tópico descreve a função OFFSET. Ela faz referência ao modelo de relatório RP006 no aplicativo Samples.

A função OFFSET não é específica do Application Studio, mas é especialmente útil ao trabalhar com hiperblocos. A razão disso é que, no Modo de exibição, os hiperblocos são dinâmicos. No Modo de design, um hiperbloco é estático. Ou seja, ele ocupa um intervalo específico de células. No entanto, no Modo de exibição, um hiperbloco se expande e se contrai com seu conteúdo, tornando as referências de célula específicas insignificantes. Assim, se, por exemplo, você tiver uma fórmula fora de um hiperbloco que deve fazer referência a células dentro do hiperbloco, será necessária uma fórmula dinâmica.

Com a função OFFSET, você identifica células, especificando sua posição em relação a uma célula inicial de referência. Especifique a posição dessas células com coordenadas que representam a distância, em termos do número de linhas e colunas a partir da célula inicial de referência.

Este exemplo faz referência à célula C13:

=OFFSET(F11,2,-3)

Ou seja, a célula F11 é a célula inicial de referência. O segundo argumento, 2, indica que a célula referida fica duas linhas abaixo da F11. O terceiro argumento, 3, indica que a célula referida fica 3 colunas à esquerda da F11.

Este exemplo também faz referência à célula C13:

=OFFSET(B21,-8,1)

Ou seja, a célula B21 é a célula inicial de referência. O segundo argumento, -8, indica que a célula referida fica 8 linhas acima da B21. O terceiro argumento, 1, indica que a célula referida fica 1 coluna à direita da B21.

Um uso comum da função OFFSET no Application Studio é calcular valores cumulativos para uso, por exemplo, em gráficos Análise de ABC ou Análise de Pareto. Para calcular um valor cumulativo, adicione o valor da célula atual ao valor da célula acima. No entanto, no ambiente dinâmico de um hiperbloco, a célula acima não pode ser especificada com uma referência de célula estática.

O relatório RP006 tem um exemplo de como usar a função OFFSET para calcular valores cumulativos.

O relatório RP006 tem um hiperbloco, criado a partir da dimensão Produto do cubo Análise do aplicativo Samples.

O hiperbloco tem duas células de valor. Na primeira célula de valor, uma fórmula ROC exibe um valor para cada grupo de produtos. Na segunda célula de valor, há uma fórmula de OFFSET.

No Modo de exibição, a célula duplica os valores da primeira célula de valor. A razão disso é que a fórmula de OFFSET está incorreta.

A fórmula na célula E5 é:

=OFFSET(E5,0,0)+D5

Para alterar a fórmula de OFFSET para que exiba valores cumulativos:

  1. No Modo de design, clique na célula E5.
  2. No Editor de fórmula, altere o segundo argumento da fórmula de OFFSET de 0 para -1. Ou seja, altere a fórmula para: =OFFSET(E5,-1,0)+D5. Aqui, -1 especifica "a linha acima".

    No Modo de exibição, são exibidos os valores cumulativos e o rótulo Cumulativo. Isso também é possível usando uma função OFFSET na célula E3, aninhada em uma instrução IF.

    A instrução IF é: =IF(OFFSET(E3,3,0)=OFFSET(E3,3,-1),"","Cumulative")

    Nós sabemos que os valores na primeira linha dos resultados serão sempre iguais. No entanto, se valores cumulativos forem exibidos, os valores em todas as outras linhas não serão iguais. Assim, a instrução IF testa se os valores na linha 2 são iguais.

    A instrução IF é interpretada da seguinte forma: se o valor da célula que fica 3 linhas abaixo de E3 for igual ao valor na célula que fica 3 linhas abaixo e uma coluna à esquerda de E3, nada será exibido (""). Caso contrário, será exibido "Cumulativo".