Uso de OFFSET para hacer referencia a hiperbloques

En este tema se describe la función OFFSET. Se hace referencia al informe de ejemplo RP006 incluido en la aplicación de ejemplo.

La función OFFSET no es específica de Application Studio, pero es particularmente útil cuando se trabaja con hiperbloques. Esto se debe a que, en modo Vista, los hiperbloques son dinámicos. En modo Diseño, un hiperbloque es estático. Es decir, ocupa un intervalo específico de celdas. Pero en modo Vista, un hiperbloque se expande y se contrae con su contenido, haciendo que las referencias a celdas específicas no tengan sentido. Así, por ejemplo, si existe una fórmula fuera de un hiperbloque que debe hacer referencia a celdas dentro del hiperbloque, se necesita una fórmula dinámica.

Con OFFSET es posible identificar las celdas especificando su posición con respecto a una celda de referencia inicial. La posición se especifica con coordenadas que representan la distancia, en términos de número de filas y columnas, desde la celda de referencia inicial.

Este ejemplo hace referencia a la celda C13:

=OFFSET(F11,2,-3)

Es decir, la celda F11 es la celda de referencia inicial. El segundo argumento, 2, indica que la celda a la que se desea hacer referencia está dos filas por debajo de F11. El tercer argumento, -3, indica que la celda a la que se desea hacer referencia está 3 columnas a la izquierda de F11.

Este ejemplo también hace referencia a la celda C13:

=OFFSET(B21,-8,1)

Es decir, la celda B21 es la celda de referencia inicial. El segundo argumento, -8, indica que la celda a la que se desea hacer referencia está 8 filas por encima de B21. El tercer argumento, 1, indica que la celda a la que se desea hacer referencia está una columna a la derecha de B21.

Un uso habitual de OFFSET en Application Studio es en el cálculo de valores acumulados para su uso, por ejemplo, en análisis ABC o gráficos de Pareto. Para calcular un valor acumulado, se añade el valor de la celda actual al valor de la celda de encima. Sin embargo, en el entorno dinámico de un hiperbloque, la celda de encima no se puede especificar con una referencia de celda estática.

El informe RP006 incluye un ejemplo de cómo utilizar OFFSET para calcular valores acumulados.

El informe RP006 contiene un hiperbloque creado a partir de la dimensión Product del cubo Analysis de la aplicación de ejemplo.

El hiperbloque tiene dos celdas de valor. En la primera celda de valor, una fórmula ROC muestra un valor para cada grupo de productos. En la segunda celda de valor hay una fórmula OFFSET.

En modo Vista, la celda duplica los valores de la primera celda de valor. Esto se debe a que la fórmula OFFSET es incorrecta.

La fórmula en la celda E5 es:

=OFFSET(E5,0,0)+D5

Para cambiar la fórmula OFFSET de forma que muestre valores acumulados:

  1. En modo Diseño, haga clic en la celda E5.
  2. En el editor de fórmulas, cambie el segundo argumento de la fórmula OFFSET de 0 a -1. Es decir, cambie la fórmula a: =OFFSET(E5,-1,0)+D5. Aquí, -1 especifica "la fila de encima".

    En modo Vista, se presentan los valores acumulados y se muestra la etiqueta Acumulado. Esto también se puede lograr utilizando una función OFFSET en la celda E3, anidada dentro de una instrucción IF.

    La instrucción IF es: =IF(OFFSET(E3,3,0)=OFFSET(E3,3,-1),"","Cumulative")

    Sabemos que los valores de la primera fila de resultados siempre son iguales. Pero si se muestran valores acumulados, los valores en todas las demás filas no son iguales. Por lo tanto, la instrucción IF prueba si los valores de la fila 2 son iguales.

    La instrucción IF se traduce en lo siguiente: si el valor de la celda que está 3 filas por debajo de E3 es igual al valor de la celda que está 3 filas por debajo y una columna a la izquierda de E3, no mostrar nada (""). En caso contrario, mostrar "Acumulado".