top of page

Empleados con y sin salarios iguales

Tenemos el siguiente modelo.














Debemos de crear un reporte con los empleados que tienen el mismo salario, y, otro reporte con los empleados con salarios distintos.


En la celda D2, usamos la función COINCIDIR, como argumento texto buscado, seleccionamos el rango B2:B10, como argumento dentro del texto, volvemos a seleccionar el rango B2:B10, como argumento tipo de coincidencia ponemos exacta.


=COINCIDIR(B2:B10;B2:B10;0)


Obtenemos una matriz desbordada con la posición de cada valor, por ejemplo, el salario 14000, vemos que aparece tres veces.














El salario 11000, aparece dos veces.














Los demás salarios aparecen una sola vez.


Seguimos…


Vamos a usar la función FRECUENCIA, para saber las veces que se repite un valor, para ello, después del signo igual, ponemos la función FRECUENCIA, como argumento datos, es la función COINCIDIR, como argumento grupos, volvemos a poner la función COINCIDIR.


La función FRECUENCIA, siempre devuelve un ultimo valor que es cero.


=FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0))


Obtenemos una matriz desbordada donde vemos que el primer salario 14000 aparece 3 veces, y, donde sigue apareciendo el salario 14000, aparece cero.















Lo mismo para el salario 11000.
















Quiere decir que nos interesan los valores mayores a 1, y, los valores que son 0.


Debemos de usar el operador lógico O, porque se debe cumplir que cada valor sea mayor a 1, o, sea igual a 0, por lo que después del signo igual, ponemos la función BYROW, como argumento array, es la función FRECUENCIA.


=BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0))


Como argumento función, ponemos LAMBDA, declaramos una variable, que almacena el argumento array, como argumento cálculo de LAMBDA, ponemos el operador lógico O, como argumento valor logico1, ponemos la variable “x” y comparamos con mayor a 1, como argumento valor logico2, ponemos, de nuevo, la variable “x” y comparamos con cero.


=BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0));LAMBDA(x;O(x>1;x=0)))


Obtenemos una matriz desbordada con VERDADERO donde hay coincidencia, y, FALSO donde no la hay.















Preguntamos si el resultado de BYROW es VERDADERO, que nos devuelva el rango A2:A10, en caso contrario, que devuelva un texto en blanco.


=SI(BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0));LAMBDA(x;O(x>1;x=0)));A2:A10;"")


Ya tenemos los empelados con el mismo salario, y, en la ultima celda un error por el cero que añade de forma automática.














Usamos después del signo igual la función LET, declaramos una variable, y, almacenamos la expresión anterior.


=LET(a;SI(BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0));LAMBDA(x;O(x>1;x=0)));A2:A10;"")


Quitamos el error con la función SI.ERROR, y, ponemos un texto en blanco.


=LET(a;SI.ERROR(SI(BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0));LAMBDA(x;O(x>1;x=0)));A2:A10;"");"")


Como argumento cálculo de LET, filtramos la variable, siempre que dicha variable sea diferente a blanco.


=LET(a;SI.ERROR(SI(BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0));LAMBDA(x;O(x>1;x=0)));A2:A10;"");"");FILTRAR(a;a<>""))


Pues, ya tenemos los empleados que tienen el mismo salario.














Para los empleados con distinto salario, copiamos la expresión, excepto el signo igual, la pegamos en la celda E2.


Vamos al operador lógico O.


=LET(a;SI.ERROR(SI(BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0));LAMBDA(x;O(x>1;x=0)));A2:A10;"");"");FILTRAR(a;a<>""))


Quitamos el operador lógico O, y, dejamos solo x=1.


=LET(a;SI.ERROR(SI(BYROW(FRECUENCIA(COINCIDIR(B2:B10;B2:B10;0);COINCIDIR(B2:B10;B2:B10;0));LAMBDA(x;x=1));A2:A10;"");"");FILTRAR(a;a<>""))


Aceptamos, y, ya lo tenemos.












Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page