Fórmula para buscar en exel

Hola a todos, Disculpen.. Pero abra manera de hacer esto en exel: si tengo en las celdas siguiente productos como :
En la celda A1 (puede ser cualquier producto)
Celda A2 celda B2 celda C2 celda d2
Arroz azúcar leche canes
En la celda A3 quiero que me salga "1" o "2" o el valor que le otorgue cuando sea verdadero, ingresando en esta celda la función si, de esta manera :
=si(A1=a2;1; si(A1=b2:d2;2))
Bueno lo intente, pero no me funciono, no se si haya alguna forma de mejorar esta función, o de realizar esta acción en exel, muchas gracias.
ATENTAMENTE: (xxxxxx) (xxxxxx)

1 Respuesta

Respuesta
1
Prueba a poner esta fórmula en A3
=SI(A1=A2;1;SI(A1=B2;2;SI(A1=C2;2;SI(A1;D2;2))))
Espero haber entendido tu problema.
Recuerda cerrar la pregunta y valorar la ayuda (si das por terminada la pregunta)
Gracias amigo, por tu ayuda, pero... te quisiera consultar, si es posible tomar varias celdas o en bloque, como te presento en la fórmula que envíe al inicio, porque tengo como 50 productos y no solo tres como te ilustre en el ejemplo, ¿en todo caso serviría hacer la anidación de estos cincuenta que tengo en realidad?, usando la fórmula que me enviaste. Bueno, por ello pensé que era más practico, tomar en bloques para otorgar el valor si fuera verdadero en la "función si" como planteo al inicio.
=si(A1=a2;1; si(A1=b2:d2;2))
Espero vuestra respuesta de todas maneras. Favor de responder.
Saludos y muchas gracias.
Podríamos crear una función para ello, de tal forma que, busque la clda en un rango y si esta le damos un valor y si no la encuentra, le otargamos otro valor. Para crear una función, necesitamos este código
Function SiRango(valor, rango As Range, resultado1, resultado2)
    With rango
        Set c = .Find(valor, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then SiRango = resultado1 Else SiRango = resultado2
    End With
End Function
' nota.- valor=el valor a buscar, rango= el rango en el que buscar, resultado1=el valor que queremos que nos devuelva si encuentra el valor en el rango y el valor2= lo que devuelve si no encuentra lo que busca.
Lo colocamos en un modulo de VBA y al ir a escribir una fórmula, llamaríamos a la función y todo listo.
Si no te aclaras con el tema de las macros, me lo dices y te ayudo o te envío un fichero. Si te decides a que te lo mente en tú fichero. Mejor es que me postees tu dirección y yo te envío la misa para intercambio de ficheros.
Ha! Si, es buena la función, .. pero una ultima consulta: no se si la macro
Function SiRango(valor, rango As Range, resultado1, resultado2)
    With rango
        Set c = .Find(valor, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then SiRango = resultado1 Else SiRango = resultado2
    End With
End Function
Puede permitir anidaciones como en la " función si", en caso se pudiera como podría incluir esta opción en esta macro que me enviaste.
Gracias y saludos cordiales.
ATENTAMENTE: (xxxxxx) (xxxxxx)
Después de contestarte y cuando me dirigía al trabajo, recordé, que todo era más sencillo, ya sabes el dicho que dice ... que hay veces que un árbol no te deja ver el bosque, pues eso, no veía la solución sencilla. Utiliza la siguiente fórmula
=SI(A2=B2;1;SI(ESERROR(BUSCARH(A2;C2:L2;1;FALSO));0;SI(BUSCARH(A2;C2:L2;1;FALSO)=A2;2;FALSO)))
Donde pone c2:l2, es el rango donde tengo yo los datos para realizar la prueba, pero tú pon el rango que quieras...
La respuesta es fantástica!
Pero como se dice, las interrogantes siempre surgen. Y en esta fórmula que planteas la cual esta genial, en el caso de la primer parte de la fórmula
=SI(A2=B2;1;SI(ESERROR(BUSCARH(A2;C2:L2;1;FALSO));0;SI(BUSCARH(A2;C2:L2;1;FALSO)=A2;2;FALSO)))
=SI(A2=B2;1;  SI (  ...................etc,etc
 como  se podria ampliar para una o dos celdas mas..?  y no solo A2 =B2;1 que limitan la comparacion  con esta unica celda B2 ".
De todos modos espero vuestra respuesta, con solución y si no se pudiera con algún comentario al respecto para proceder a finalizar. Gracias y
saludos cordiales.
No se te he entendido bien, pero allí vamos.
Entiendo que quieres conparar la a1 con la b1, la a1 con la c1, la a1 con la d1 y si alguna de ellas se cumple, que me devualva 1 y si esta en el resto 2.
NOTA.- La que viene después de si( es la letra O no es un cero
=SI(O(A2=B2;A2=C2;A2=D2);1;SI(ESERROR(BUSCARH(A2;E2:L2;1;FALSO));0;SI(BUSCARH(A2;E2:L2;1;FALSO)=A2;2;FALSO)))
Hola amigo experto, gracias por la respuesta, la cual no solo es genial sino que esta exacta y satisface plenamente mi necesidad, muchas gracias, creo que en esta página eres una de las personas que no deja pasar una consulta sin respuesta y eso habla del empeño de cada uno de los integrantes de esta página.
Gracias nuevamente y saludos cordiales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas