Posteado por: alfayate | mayo 16, 2009

Trucos de OpenOffice / LibreOffice. Calc: Transponer fórmulas

Ufff… menuda palabreja. Vamos a intentar aclararlo: lo que queremos es que al extender una fórmula (pongamos que horizontalmente, a lo largo de una fila) se actualicen automáticamente las referencias a otras celdas pero no en el mismo sentido en el que extendemos la fórmula (en el ejemplo, imaginemos que esa fórmula se refiere a celdas organizadas en columnas, o sea, mientras la fórmula se extiende horizontalmente, las referencias se actualizan verticalmente)

La solución es copiar la celda que contiene la fórmula, seleccionar el área de pegado (por dónde extendemos la fórmula) y dar a Editar -> Pegado Especial… y marcar la opción de Transponer.

¿Pero qué ocurre si en la fórmula hacemos referencia unos datos que se extienden horizontalmente y otros verticalmente? En este caso debemos emplear la función DESREF (OFFSET en inglés) que nos permite un control total sobre las referencias y el modo de desplazarlas. Su sintaxis es: DESREF(Referencia inicial;desplazamiento en filas; desplazamiento en columnas)

Un ejemplo de uso aplicado al caso anterior sería:

DESREF($I$3;COLUMNA(A1)-1;0)+C$2

con lo que conseguimos que sólo se transpongan las referencias que queramos. Fijémonos en lo que estamos haciendo: en el ejemplo simplemente hacemos una suma referenciando a dos celdas (I3 y C2). Supongamos que queremos extender la fórmula a lo largo de la fila, pero los datos referenciados aparecen en la columna I (o sea el primero es I3, el siguiente I4, I5, etc..) y en la fila 2 (C2, D2, E2, etc…). Al extender la fórmula en la fila, la referencia a C2 se actualiza automáticamente de forma correcta (para mayor seguridad aquí ponemos de forma absoluta la referencia de la fila, pero también valdría si ponemos simplemente C2). Para el caso de la columna I, usamos la función DESREF, primero ponemos la referencia a la celda I3 de forma absoluta, el desplazamiento de la columna es 0 (todos los datos están en la columna I) y para el desplazamiento de la fila usamos paradójicamente la función COLUMNA (no liarse, esto es sólo un ejemplo del uso de una sucesión de números naturales en una fórmula), al extender la fórmula en la fila, vamos cambiando de columna con lo que el valor devuelto por la función COLUMNA se va incrementando (le restamos 1 ya que inicialmente nos referimos a la propia celda I3 con lo que el valor devuelto tendría que ser 0), consiguiendo así que vayamos recorriendo la columna I hacia abajo.

Espero no haber liado mucho el asunto. Que aproveche.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: