Sie sind auf Seite 1von 5

Determinar si un valor existe en un rango de Excel

inShar e

En ocasiones necesitamos determinar si un valor existe en un rango de Excel utilizando frmulas de manera que podamos tomar una decisin posterior en base al resultado. Analizaremos varias alternativas y podrs elegir la que se adapte mejor a tus necesidades. Como ejemplo utilizaremos el rango A1:E11 que contiene los nombres de diferentes ciudades del mundo y el valor que deseamos saber si existe en dicho rango lo colocar en la celda H1.

Solucin con la funcin O


La primera alternativa que podemos utilizar es la funcin O la cual evala todos sus argumentos para devolvernos el valor VERDADERO si al menos una expresin es verdadera. De esta manera, si pedimos a Excel que compare cada celda del rango con el valor buscado y al menos el valor de una de ellas es igual, entonces sabremos si el valor existe dentro del rango. Considera la siguiente frmula:
=O(A1:E11=H1)

Esta frmula debe ser introducida como una frmula matricial por lo que debemos pulsar la combinacin de teclas Ctrl + Mays + Entrar. Excel realizar la comparacin de cada celda del rango y si al menos una celda es igual nos devolver VERDADERO como resultado:

De esta manera la funcin O nos ayuda a determinar si un valor existe en un rango de Excel, pero solamente obtendremos como resultado el valor VERDADERO o FALSO sin importar cuntas veces aparezca el valor dentro del rango.

Solucin con la funcin CONTAR.SI


Una alternativa que me agrada un poco ms que la anterior es utilizar la funcin CONTAR.SI ya que no solamente sabremos si el valor existe dentro del rango sino que conoceremos la cantidad de veces que aparece. La frmula que debemos utilizar es muy sencilla:
=CONTAR.SI(A1:E11, H1)

Como resultado obtendremos el nmero de veces que aparece el valor dentro del rango:

Si el valor de la frmula es cero, quiere decir que el valor no existe dentro del rango, de lo contrario obtenemos la cantidad exacta de apariciones. Esto nos da un poco ms de informacin sobre la existencia del valor dentro del rango sin embargo no podemos saber la ubicacin exacta de dicho valor.

Validar existencia con una macro


Si las alternativas anteriores no son suficientes para solucionar tu problema, sino que necesitas conocer la celda donde se encuentra el valor buscado, entonces es necesario crear una macro que nos ayude a marcar las celdas donde se encuentra el valor. Considera el siguiente cdigo VBA de la subrutina ValorExiste:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Sub ValorExiste() 'Definicin de variables Dim rango As String Dim valor As String Dim resultado As Range Dim primerResultado As String Dim cont As Integer 'Solicitar informacin al usuario rango = InputBox("Ingresa el RANGO a buscar:") valor = InputBox("Ingresa el VALOR a buscar:") 'Inicializar contador de coincidencias cont = 0 'Primera bsqueda del valor dentro del rango Set resultado = Range(rango).Find(What:=valor, _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ SearchFormat:=False) 'Si el resultado de la bsqueda no es vaco If Not resultado Is Nothing Then primerResultado = resultado.Address 'Inicia bucle para hacer varias bsquedas Do cont = cont + 1 'Cambia el color de fondo de la celda resultado.Interior.ColorIndex = 6 'Vuelve a buscar el valor Set resultado = Range(rango).FindNext(resultado) Loop While Not resultado Is Nothing And _ resultado.Address <> primerResultado End If 'Muestra un cuadro de dilogo con el nmero de coincidencias MsgBox "Se encontraron " & cont & " coincidencias."

40 41 42 43 44 45 46 47

End Sub

Este cdigo comienza solicitando al usuario el rango sobre el cual se realizar la bsqueda as como el valor a buscar. Es entonces que hacemos uso de la funcin VBA llamada Find la cual nos ayuda a realizar la bsqueda del valor sobre el rango indicado. En caso de que la funcin Find encuentre una celda que contenga dicho valor, devolver su direccin. Es por eso que implementamos un bucle Do Loop While para seguir buscando el valor dentro del rango hasta que ya no se encuentre ms. Cada vez que encontramos un valor utilizamos la propiedad ColorIndex para marcar la celda con un color de manera que podamos identificar fcilmente la celda encontrada. Dentro del bucle coloqu una variable encargada de llevar la cuenta de las veces que encontramos el valor buscado de manera que al final de la subrutina podamos mostrar un mensaje al usuario indicando el nmero de coincidencias.

Prueba de la macro
Para probar la macro debo pulsar el botn Macros de la ficha Programador y elegir el nombre de la subrutina a ejecutar. Al pulsar el botn Ejecutar se mostrar el primer cuadro de dialogo de la macro solicitando el rango donde se realizar la bsqueda:

Una vez proporcionado el rango de bsqueda pulsamos el botn Aceptar y se mostrar un nuevo cuadro de dilogo solicitando el valor a buscar:

Al pulsar el botn Aceptar la macro realizar la bsqueda y cambiarla el color de fondo de las celdas que contengan el valor buscado. Adems mostrar el cuadro de dilogo indicando el nmero de coincidencias encontradas:

De esta manera, la macro encuentra y resalta las celdas que contienen el valor buscado y adems enva una notificacin indicando la cantidad de coincidencias encontradas. Con los tres mtodos presentados en este artculo tendrs la posibilidad de elegir la solucin que mejor se adapte a tus necesidades y poder determinar si un valor existe en un rango de Excel. Descarga el libro de trabajo que contiene los ejemplos y cdigo de la macro desarrollados. Artculos relacionados Buscar un valor y regresar mltiples resultados

Das könnte Ihnen auch gefallen