Macro para traspasar de una base de datos a una matriz de excel

Para Dante Amor:

Como puedo hacer una macro para traspasar unos datos que voy cargando y pasarlo automáticamente a una matriz, ¿todo en una hoja de cálculo de excel?

1 Respuesta

Respuesta
1

Se puede resolver sin necesidad de hacer una macro. Necesitas formular la columna de la izquierda de la base de datos de este modo:

En A1 escribes "1", en A6 lo siguiente:

=CONTAR.SI($B$5:B6;B6)+(0,0000001*FILA(B6))

... Y lo arrastras hasta el final de tus datos.

Entonces la tabla de resultados es esta:

La columna "H" no está formulada, es solo una serie empezando por el "1".

En I5 simplemente formulo esto:

=B5

(Suponiendo que tengamos los datos de la BBDD en la misma hoja).

En I6 formulo lo siguiente:

{=SI(ESERROR(CONSULTAV(K.ESIMO.MAYOR($A$5:$A$20;H6);$A$5:$B$20;2;FALSO));"";SI(CONTAR.SI($I$5:I5;CONSULTAV(K.ESIMO.MAYOR($A$5:$A$20;H6);$A$5:$B$20;2;FALSO))>0;"";CONSULTAV(K.ESIMO.MAYOR($A$5:$A$20;H6);$A$5:$B$20;2;FALSO)))}

Tiene que ser fórmula de matriz para que funcione, esto es, introducimos la fórmula y en lugar de pulsar ENTER, tenemos que pulsar CONTROL + SHIFT + ENTER. Escribimos la fórmula sin los {}, si la creamos correctamente excel los añadirá.

... Arrastramos hacia abajo la fórmula.

En la columna "J" formulo esto:

(En J5 y luego arrastro hacia abajo)

=SIERROR(CONSULTAV(I5;$B$5:$C$20;2;FALSO);"")

Entonces para rellenar los ítems, en K5 formulo así:

{=SIERROR(CONSULTAV($I5;SI($D$5:$D$20=K$4;$B$5:$E$20;0);4;FALSO);"")}

... De nuevo se trata de una fórmula de matriz. Arrastramos hacia abajo y hacia la derecha y listo.

Nota que en todas partes he utilizado los rangos hasta la fila 20, deberás adaptar las fórmulas a tu rango de datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas