. 26.01.17 #Redistribución de tabla
Buenas tardes, señor
La solución que te propongo involucra una columna auxiliar en la hoja de tu tabla original (que asumiré se llama HojaPrincipal, pero -claro- luego colócale la que corresponda a tu libro):
A la izquierda del primer registro de esa tabla coloca la siguiente fórmula:
=CONTAR.SI($D$4:$D5;D5)&D5
Nota el uso del signo pesos que NO está aplicado a la fila del extremo inferior del rango. Esto hace que el rango de conteo se limite hasta la fila donde está la fórmula.
Si copias y pegas esa celda en la inmediata inferior, verás:
=CONTAR.SI($D$4:$D6;D6)&D6
[Considera si usas comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]
Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna.
Esta fórmula básicamente juntará un número de orden individual para cada proceso con la palabra que lo identifica.
El resultado será algo así como esto:
Bien, el paso siguiente es armar la tabla redistribuida como solicitabas.
En la hoja donde quieres tu nueva tabla, arma esta estructura con los procesos en cada columna -escritos tal cual como están en la base original- y una serie creciente de 1 hasta el número de filas que creas que puedas llegar a necesitar a futuro. Ejemplo:
Bien, falta la fórmula que haga el trabajo. En la celda amarilla, escribe esta fórmula:
=BUSCARV($H4&I$3;HojaPrincipal!$B$5:$D$270;2;0)
En el primer argumento de la fórmula dejo fija la columna H (para que busque el ordinal de esa fila) y dejo fija la fila 3 donde están los procesos.
Si no estuvieras familiarizado con la fórmula BUSCARV, hazmelo saber y te amplío el concepto, pero básicamente, lo que hará en esa celda es buscar 1Inversión en la columna auxiliar que agregaste en la base original y traerá el Código que esté en la segunda columna... si encontrara esa combinación de Número de orden + Proceso.
Es lógico suponer que no encontrará algunas de las combinaciones, simplemente porque no existen aún. En tal caso, la fórmula devolverá #N/A!
Para evitar ese problema, le colocaremos un condicional para que capture ese error y no ponga nada.
Entonces tu fórmula final será:
=SI(ESNOD(BUSCARV($H4&I$3;HojaPrincipal!$B$5:$D$270;2;0));"";BUSCARV($H4&I$3;HojaPrincipal!$B$5:$D$270;2;0))
Luego puedes copiar esta celda y pegarla en el resto del cuadro.
Modelo terminado:
Desde luego, tratándose de una solución basada en fórmulas la actualización de la tabla será automática, sin necesidad de macros, supuesto que haya formulas sufientes en ambas tablas.
Coméntame si resuelve lo que buscabas -y, en tal caso, agradeceré que califiques mi contribución- o escribeme de nuevo aquí, si necesitas más apoyo con esto.
Un abrazo
Fernando
.