top of page

Modelo en columnas

Debemos de transformar la tabla de problemas en una tabla de resultados, como sigue:














En la celda E2, poneos LET, creamos una variable, usamos la funcion FILTRAR, como argumento array, seleccionamos el rango A2:B12, como argumento Include, seleccionamos el rango B2:B12 y comparamos con indistinto a blanco.


Probamos variable.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");a)


Obtenemos las columnas id de empleado y nombre.















Creamos otra variable, volvemos a usar la funcion FILTRAR como argumento array, seleccionamos el rango C2:C12, como argumento Include, preguntamos si es numero el rango A2:A12.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");b;FILTRAR(C2:C12;ESNUMERO(A2:A12));b)


Obtenemos una matriz desbordada con los departamentos y cero donde no hay coincidencia.

















Creamos otra variable, usamos SCAN, omitimos el argumento valor inicial, como argumento array, es la variable “c”, como argumento funcion ponemos LAMBDA, declaramos dos variables, como argumento calculo de LAMBDA preguntamos si la variable “b” es igual a 0, en ese caso, que nos devuelva la variable “a”, en caso contrario, que nos devuelva la variable “b”.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");b;FILTRAR(C2:C12;ESNUMERO(A2:A12));c;SCAN(;b;LAMBDA(a;b;SI(b=0;a;b)));c)


Tenemos una matriz desbordada donde los ceros han sido sustituidos por Sales, Purchasing y HR.

















Vemos que aparece cuatro veces Sales, cuando solo debe de aparecer tres veces, usamos la funcion EXCLUIR, como argumento matriz es la funcion SCAN, como argumento filas, ponemos 1.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");b;FILTRAR(C2:C12;ESNUMERO(A2:A12));c;EXCLUIR(SCAN(;b;LAMBDA(a;b;SI(b=0;a;b)));1);c)














Ahora nos falta una ultima celda con e departamento HR, el cual, podemos añadir manualmente con la funcion APILARV.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");b;FILTRAR(C2:C12;ESNUMERO(A2:A12));c;APILARV(EXCLUIR(SCAN(;b;LAMBDA(a;b;SI(b=0;a;b)));1);"HR");c)


Creamos otra variable, nos traemos los valores únicos de la variable “c”.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");b;FILTRAR(C2:C12;ESNUMERO(A2:A12));c;APILARV(EXCLUIR(SCAN(;b;LAMBDA(a;b;SI(b=0;a;b)));1);"HR");d;UNICOS(c );d)









Creamos otra variable, usamos FILTRAR, como argumento array, seleccionamos le rango A2:A12, como argumento Include, preguntamos si es texto el rango A2:A12.


Tenemos los grupos.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");b;FILTRAR(C2:C12;ESNUMERO(A2:A12));c;APILARV(EXCLUIR(SCAN(;b;LAMBDA(a;b;SI(b=0;a;b)));1);"HR");d;UNICOS(c );e;FILTRAR(A2:A12;ESTEXTO(A2:A12));e)









Creamos otra variable, usamos BUSCARX, como argumento valor buscado ponemos la variable “c”, como argumento matriz de búsqueda, ponemos la variable “d”, como argumento matriz devuelta, ponemos la variable “e”.


Tenemos los grupos que pertenecen a cada departamento.

















Como argumento cálculo de LET, usamos APILARH, como argumento matriz1, ponemos la variable “a”, como argumento matriz2, ponemos la variable “c”, como argumento matriz3, ponemos la variable “f”.


=LET(a;FILTRAR(A2:B12;B2:B12<>"");b;FILTRAR(C2:C12;ESNUMERO(A2:A12));c;APILARV(EXCLUIR(SCAN(;b;LAMBDA(a;b;SI(b=0;a;b)));1);"HR");d;UNICOS(c );e;FILTRAR(A2:A12;ESTEXTO(A2:A12));f;BUSCARX(c;d;e);APILARH(a;c;f))


Aceptamos, y, ya lo tenemos.













Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page