Inicio > Microsoft Excel > cadipas > formula para buscar en exel

formula para buscar en exel

Experto:
Usuario: Anónimo Fecha: 18/06/2009
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
05/06/2009
Usuario
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                     azucar                         leche             canes
 en la celda  A3   quiero que me salga "1"  ó  "2"  ó  el valor  que le otorgue cuando sea verdadero, ingresando en esta celda la  funcion 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 funcion,  o de realizar esta accion en exel,  muchas  gracias.
ATTE: carlocarlos       horade@hotmail.com
05/06/2009
carlocarlos, experto respondiendo en Microsoft Excel
Experto
Prueba a poner esta formula 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)
Saludos
05/06/2009
Usuario
gracias  amigo, por  tu  ayuda,  pero...  te quisiera consultar, si es posible  tomar  varias  celdas o  en  bloque, como te presento en la  formula   que   envie al inicio, porque   tengo como 50 productos   y no solo tres   como te ilustre en el ejemplo,  en todo  caso  serviria  hacer  la anidacion de estos  cincuenta  que tengo en realidad?, usando la formula  que  me enviaste.  Bueno,  por ello  pense  que  era mas   practico, tomar    en  bloques  para otorgar el valor si   fuera verdadero   en la  "funcion 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.
08/06/2009
carlocarlos, experto respondiendo en Microsoft Excel
Experto
Podríamos crear una funcion 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 funcion, 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 formula, llamariamos a la funcion y todo listo.
Si no te aclaras con el tema de las macros, me lo dices y te ayudo o te envio un fichero. Si te decides a que te lo mente en tú fichero. Mejor es que me postees tu dirección y yo te envio la misa para intercambio de ficheros.
09/06/2009
Usuario
ha! si, es buena la funcion, ..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 " funcion si", en caso  se pudiera  como podria    incluir   esta  opsion  en esta  macro que  me enviaste.
gracias  y saludos cordiales.
ATTE: carlocarlos                horade@hotmail.com
09/06/2009
carlocarlos, experto respondiendo en Microsoft Excel
Experto
Hola carlos, despues de contestarte y cuando me dirigia al trabajo, recorde, que todo era más sencillo, ya sabes el dicho que dice ... que hay veces que un arbol no te deja ver el bosque, pues eso, no veia la solución sencilla. Utiliza la siguiente formula
=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...
Espero que te valga la formula...
16/06/2009
Usuario
LA RESPUESTA ES FANTASTICA!!!
pero como  se dice, las interrogantes siempre surgen. y en esta formula que planteas  la cual  esta genial,  en el caso  de la primer parte de  la formula
=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 algun    comentario al respecto para  proceder  a finalizar. gracias y
saludos cordiales.
16/06/2009
carlocarlos, experto respondiendo en Microsoft Excel
Experto
No se te he entendido bien, pero alli 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 despues 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)))
18/06/2009
Usuario
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  pagina  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 pagina.
gracias nuevamente y saludos cordiales.
Enlaces patrocinados