top of page

Crear modelo normalizado

Tenemos el siguiente modelo:





Debemos de crear un modelo con seis columnas, en la primera columna, deben de aparecer los grupos, en la segunda columna los periodos de cada grupo, en la siguiente columna, los grupos, en las siguientes, marca1, marca2, u, una ultima columna, llamada total, con la suma de marca1 y marca2.


Lo primero va a ser traernos los encabezados únicos, para ello, usamos UNICOS, como argumento matriz, seleccionamos el rango A1:M1, como argumento by col, seleccionamos VERDADERO, es decir, devolver columnas únicas.


=UNICOS(A1:M1;VERDADERO)


Usamos APILARH, como argumento matriz1, es la función UNICOS, como argumento matriz2, entre comillas dobles, ponemos “Total”.


=APILARH(UNICOS(A1:M1;VERDADERO);"Total")


Obtenemos el encabezado más la palabra Total.




En la celda B7, usamos el condicional SI, como argumento prueba lógica, seleccionamos el rango B1:M1, igualamos al valor de la celda B6 (Periodo).


=SI($B$1:$M$1=B6

Como argumento valor si verdadero, seleccionamos el rango B2:M4, como argumento valor si falso, ponemos un error.


Fijamos B1:M1, y, B2:M4.


=SI($B$1:$M$1=B6;$B$2:$M$4;NOD())


Obtenemos una matriz desbordada de tres filas, y, 12 columnas, donde tenemos el periodo para cada grupo.





Usamos la función ENCOL, e, ignoramos blancos, errores.




















Arrastramos hacia la derecha.














En la celda F2, seleccionamos el rango D7#, y, sumamos con E7#.












¿Cómo podemos crear los grupos?


Vamos a la expresión de B7.


En el argumento valor si verdadero, antes de B2:M4, ponemos A2:A4, y, concatenamos con un espacio, y, con B2:M4.


=ENCOL(SI($B$1:$M$1=B6;A2:A4&” “&$B$2:$M$4;NOD());3)


Usamos LET, creamos una variable, almacenamos la expresión anterior, como argumento calculo de LET, usamos APILARH, como argumento matriz1, usamos IZQUIERDA, como argumento texto, ponemos la variable “a”, omitimos el argumento numero de caracteres, de esta forma, nos extraerá solo un carácter por la izquierda, como argumento matriz2, ponemos la función DERECHA, como argumento texto, ponemos la variable “a”, como argumento numero de caracteres, ponemos 2.


Aceptamos, movemos la función a la celda A7, y, ya lo tenemos.


=LET(a;ENCOL(SI($B$1:$M$1=B6;A2:A4&" "&$B$2:$M$4;NOD());3);APILARH(IZQUIERDA(a);DERECHA(a;2)))











Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page