Validación de datos con criterios múltiples

miércoles, noviembre 27, 2013

Un lector me consulta como aplicar validación de datos con más de un criterio. Por ejemplo, que en un rango determinado se pueda ingresar valores entre 1 y 10 y que no haya duplicados.

Antes de mostrar la solución, es importante señalar el punto central que el mecanismo de Validación de Datos funciona con fórmulas que dan como resultado VERDADERO o FALSO. Para que el valor a introducir sea aceptado, la fórmula de la validación debe evaluar a VERDADERO.

En nuestro ejemplo queremos que las dos condiciones se cumplan simultáneamente. Para eso debemos usar la función Y. Si queremos aplicar la validación de datos múltiple en el rango B3:B10 usaremos la fórmula

=Y(CONTAR.SI($B$3:$B$10,B3)<2,Y(B3>=1,B3<=10))



Esta fórmula funciona de la siguiente manera:

CONTAR.SI($B$3:$B$10,B3)<2 evalúa si el valor a introducir aparecerá más de una vez. Si el valor ya aparece en el rango, el resultado de esta fórmula es FALSO.

Y(B3>=1,B3<=10)) verifica que el valor a introducir sea mayor o igual a 1 y menor o igual a 10.

Finalmente, la función Y al principio de la fórmula combina ambos resultados dando VERDADERO solamente si ambas condiciones se cumplen.

Si queremos evitar valores duplicados y los valores permitidos van de 1 a 10 y de 20 a 25, es decir, dos intervalos de números, ampliamos nuestra fórmula con la función O

=Y(CONTAR.SI($B$3:$B$10,B5)<2,O(Y(B5>=1,B5<=10),Y(B5>=20,B5<=25)))

La función O da VERDADERO si alguna de las funciones Y que son sus argumentos da VERDADERO.


2 comments:

Anónimo,  28 noviembre, 2013 02:32  

Hola Jorge, he despejado mis dudas en cuanto a la validación de datos, por lo cual agradezco tu colaboración. Podría enviarte un archivo para que lo analices y me pudieras ayudar en lo siguiente:

Quiero utilizar un userform con Vba para evitar la duplicidad de los datos y ahora no consigo que en ese userform me detenga al intentar vaciar un numero que no corresponde.

te repito que lo he logrado con la validación y deseo hacerlo con un userform utilizando if then else.

Espero no incomodar,

Saludos.

Jorge Dunkelman 28 noviembre, 2013 16:55  

Publicaré una nota sobre el tema

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP