top of page

Nombres y dias semana

Tenemos los siguientes datos, donde en una columna tenemos una serie de nombres, y, en una segunda columna dias de la semana asignados a cada nombre.



























Debemos de crear un cuadro donde en vertical aparezcan los nombres únicos, y, en horizontal vamos a tener los dias de la semana de lunes a sábado, debemos de poner “X” en el día asignado a cada nombre.


Vemos que hay nombres que no tienen asignados ningún día de la semana.



















Pues, lo primero que vamos a hacer es deshacernos de dichos nombres, para ello, en la celda F3, usamos la función FILTRAR, como argumento array, seleccionamos el rango B2:B23, como argumento include, seleccionamos el rango C3:C23, ponemos el símbolo de comparación indistinto, y, ponemos comillas dobles, es decir, vamos a filtrar los nombres, siempre que la columna día de la semana, sea diferente a blanco.


=FILTRAR(B3:B23;C3:C23<>"")


Obtenemos una matriz desbordada con los nombres que si tienen asignados dias de la semana.





















Nos quedamos con los valores únicos, y, ordenamos.


=ORDENAR(UNICOS(FILTRAR(B3:B23;C3:C23<>"")))


Ya tenemos los nombres con los que trabajar.













En el rango G2:L2, ponemos los dias de la semana desde lunes a sábado.


En la celda G3, abrimos un paréntesis, seleccionamos el rango C3:C23 e igualamos a G2, cerramos paréntesis.


=(C3:C23=G2)


Tenemos una matriz desbordada con VERDADERO donde el día de la semana es lunes, y, FALSO donde no lo es.












Ponemos el símbolo de asterisco, que ya sabemos que es igual que el operador lógico Y, abrimos otro paréntesis, seleccionamos el rango B3:B23, e, igualamos a F3, cerramos paréntesis.


Es decir, estamos buscando un nombre en la columna B, que sea igual a Dominique House, y, cuyo día de la semana sea igual a lunes.


=(C3:C23=G2)*(B3:B23=F3)


Ahora, obtenemos 0 donde no hay coincidencia, y, 1 donde la hay.












Después del signo igual, ponemos LET, creamos una variable, y, almacenamos la expresión anterior.


=LET(a;(C3:C23=G2)*(B3:B23=F3)


Como argumento cálculo de LET, filtramos la variable “a”, siempre que dicha variable sea igual a 1.


=LET(a;(C3:C23=G2)*(B3:B23=F3);FILTRAR(a;a=1))


Ya tenemos lunes marcado para Dominique House, ahora, usamos SUSTITUIR, como argumento texto, es la función FILTRAR, como argumento texto original, ponemos 1, como argumento texto nuevo, entre comillas dobles, ponemos “X”.


=LET(a;(C3:C23=G2)*(B3:B23=F3);SUSTITUIR(FILTRAR(a;a=1);1;"X"))


Fijamos C3:C23, B3:B23, la referencia F3, donde tenemos los nombres, solo fijamos la columna, para que al arrastrar hacia la derecha la columna no se actualice, porque los nombres siempre van a estar en la columna F.


=LET(a;($C$3:$C$23=G$2)*($B$3:$B$23=$F3);SUSTITUIR(FILTRAR(a;a=1);1;"X"))


Rellenamos el argumento si vacío de FILTRAR, y, ponemos un texto en blanco.


=LET(a;($C$3:$C$23=G$2)*($B$3:$B$23=$F3);SUSTITUIR(FILTRAR(a;a=1;"");1;"X"))


Seleccionamos la celda, pulsamos CTRL mas C, seleccionamos el rango donde vamos a pegar la función, y, pulsamos CTRL más V para pegar.


Desplegamos formato condicional, desplegamos reglas para resaltar celdas, hacemos clic en es igual a.



















En la ventana de la izquierda ponemos “X”, en la ventana de la derecha, seleccionamos un formato.







Aceptamos, y, ya tenemos nuestro ejemplo, o, ejercicio resuelto.












Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page