El proceso funciona sin problemas si el rango a transponer contiene sólo valores
y por lo general también si el rango contiene fórmulas. En el ejemplo de arriba, la celda C3 (Enero/Norte) contiene la fórmula
=SUMAPRODUCTO((Mes=$B3)*(Sucursal=C$2)*Ventas)
donde "Mes", "Sucursal" y "Ventas" son nombres definidos que se refieren a los rangos que contienen los datos.
En la tabla transpuesta las ventas de Enero de la zona norte se encuentran en la celda C13 que contiene la fórmulas
=SUMAPRODUCTO((Mes=C$12)*(Sucursal=$B13)*Ventas)
Pero hay casos en que Excel puede dar resultados incorrectos como en este ejemplo. Los datos en el rango D2:E6 se refieren a los datos del rango B2:B11
El valor en D2 está ligado a B2; E2 a B7; D3 a B3; etc.
Dado que las referencias son relativas, al transponer el rango Excel "reordena" las referencias
Podemos transponer copiando sólo lo valores (Pegado Especial-Valores-Transponer), pero si queremos conservar las referencias/fórmulas podemos aplicar esta técnica que publicó Chandoo en su blog:
- Seleccionamos el rango a transponer (D2:E6 en nuestro ejemplo);
- usamos Buscar y Reemplazar (Ctrl+L) para reemplazar los "=" por "#"
- copiamos (Ctrl+C) y transponemos el rango modificado;
- en el rango transpuesto reemplazamos los "#" por "="
Al reemplazar los "=" por "#", las referencias se convierten en constantes; al reemplazar los "#" por "=" en el rango transpuesto, convertirmos las constantes nuevamente en referencias. Este video muestra el proceso
Este método es útil sólo si los símbolos "=" aparecen al principio de la referencia/fórmula.