determinar si un valor existe en un rango de excel
DESCRIPTION
determinarTRANSCRIPT
![Page 1: Determinar Si Un Valor Existe en Un Rango de Excel](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55cf9bea550346d033a7d6ff/html5/thumbnails/1.jpg)
Determinar si un valor existe en un rango de ExcelinShare
En ocasiones necesitamos determinar si un valor existe en un rango de Excel utilizando fórmulas de manera
que podamos tomar una decisión posterior en base al resultado. Analizaremos varias alternativas y podrás 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.
Solución con la función O
La primera alternativa que podemos utilizar es la función O la cual evalúa todos sus argumentos para devolvernos
el valor VERDADERO si al menos una expresión 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 fórmula:
=O(A1:E11=H1)
Esta fórmula debe ser introducida como una fórmula matricial por lo que debemos pulsar la combinación de teclas
Ctrl + Mayús + Entrar. Excel realizará la comparación de cada celda del rango y si al menos una celda es igual nos
devolverá VERDADERO como resultado:
![Page 2: Determinar Si Un Valor Existe en Un Rango de Excel](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55cf9bea550346d033a7d6ff/html5/thumbnails/2.jpg)
De esta manera la función 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 cuántas veces aparezca el valor dentro
del rango.
Solución con la función CONTAR.SI
Una alternativa que me agrada un poco más que la anterior es utilizar la función CONTAR.SI ya que no solamente
sabremos si el valor existe dentro del rango sino que conoceremos la cantidad de veces que aparece. La fórmula
que debemos utilizar es muy sencilla:
=CONTAR.SI(A1:E11, H1)
Como resultado obtendremos el número de veces que aparece el valor dentro del rango:
![Page 3: Determinar Si Un Valor Existe en Un Rango de Excel](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55cf9bea550346d033a7d6ff/html5/thumbnails/3.jpg)
Si el valor de la fórmula 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 más de información sobre la existencia del valor dentro del
rango sin embargo no podemos saber la ubicación 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 código VBA de la subrutina ValorExiste:
123456789101112131415161718192021222324252627282930313233343536373839
Sub ValorExiste()
'Definición de variablesDim rango As StringDim valor As StringDim resultado As RangeDim primerResultado As StringDim cont As Integer
'Solicitar información al usuariorango = InputBox("Ingresa el RANGO a buscar:")valor = InputBox("Ingresa el VALOR a buscar:")
'Inicializar contador de coincidenciascont = 0
'Primera búsqueda del valor dentro del rangoSet resultado = Range(rango).Find(What:=valor, _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ SearchFormat:=False)
'Si el resultado de la búsqueda no es vacíoIf Not resultado Is Nothing Then primerResultado = resultado.Address
'Inicia bucle para hacer varias búsquedas 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 <> primerResultadoEnd If
'Muestra un cuadro de diálogo con el número de coincidenciasMsgBox "Se encontraron " & cont & " coincidencias."
![Page 4: Determinar Si Un Valor Existe en Un Rango de Excel](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55cf9bea550346d033a7d6ff/html5/thumbnails/4.jpg)
4041424344454647
End Sub
Este código comienza solicitando al usuario el rango sobre el cual se realizará la búsqueda así como el valor a
buscar. Es entonces que hacemos uso de la función VBA llamada Find la cual nos ayuda a realizar la búsqueda del
valor sobre el rango indicado.
En caso de que la función Find encuentre una celda que contenga dicho valor, devolverá su dirección. Es por eso
que implementamos un bucle Do … Loop While para seguir buscando el valor dentro del rango hasta que ya no se
encuentre más. Cada vez que encontramos un valor utilizamos la propiedad ColorIndex para marcar la celda con
un color de manera que podamos identificar fácilmente 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 número de
coincidencias.
Prueba de la macro
Para probar la macro debo pulsar el botón Macros de la ficha Programador y elegir el nombre de la subrutina a
ejecutar. Al pulsar el botón Ejecutar se mostrará el primer cuadro de dialogo de la macro solicitando el rango donde
se realizará la búsqueda:
Una vez proporcionado el rango de búsqueda pulsamos el botón Aceptar y se mostrará un nuevo cuadro de diálogo
solicitando el valor a buscar:
![Page 5: Determinar Si Un Valor Existe en Un Rango de Excel](https://reader031.vdocuments.pub/reader031/viewer/2022020208/55cf9bea550346d033a7d6ff/html5/thumbnails/5.jpg)
Al pulsar el botón Aceptar la macro realizará la búsqueda y cambiarla el color de fondo de las celdas que
contengan el valor buscado. Además mostrará el cuadro de diálogo indicando el número de coincidencias
encontradas:
De esta manera, la macro encuentra y resalta las celdas que contienen el valor buscado y además envía una
notificación indicando la cantidad de coincidencias encontradas.
Con los tres métodos presentados en este artículo tendrás la posibilidad de elegir la solución 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 código de la macro desarrollados.
Artículos relacionadosBuscar un valor y regresar múltiples resultados