viernes 27 de marzo de 2009

Excel Función If

Siguiendo con los artículos de Ofimática, en particular Excel, hoy les mostrare como utilizar una función que es básica para el usuario sofisticado de Excel. La función en ingles se llama If, y en las versiones en español se llama Si, y nos permite indicarle al Excel que el resultado de una formula puede depender de alguna condición.

La función If tiene una lógica que es muy simple y a la vez muy potente. Debemos indicar tres cosas:

1.- La condición (pregunta) que tiene que devolver si o si, Verdadero o Falso
2.- El resultado (respuesta) en caso que la evaluación de la condición sea Verdadero
3.- El resultado (respuesta) en caso que la evaluación de la condición sea Falso

La estructura de la Formula es la siguiente

=IF(1-condición;2-verdadero;3-falso)

Mostremos un ejemplo que es la mejor manera de entender. Digamos que tengo una planilla con alumnos (Columna A) y sus edades (Columna B). Yo quiero agregar una columna donde me informe que ya es mayor de 15 años (Columna C). Asumiendo que los títulos de las columnas están en la Fila 1, en la celda A2 diría "Palmiro Caballasca", en B2 diría "14", y así para abajo.

En la Celda C2 deberíamos ingresar una formula así (recuerden que las formulas siempre ingresan con el signo igual (=) para que Excel entienda que es una formula):

=IF(B2>15;"Mayor de 15";"") ---> En Excel ingles
=SI(B2>15;"Mayor de 15";"") ---> En Excel español

En otras palabras estamos indicando que el resultado de C2 depende de si el contenido de B2 es mayor o menor que 15. Si es mayor, queremos que muestre el texto "Mayor de 15", y sino que no muestre nada (""). Ahora solo copiamos la formula para todas las celdas de la Columna C y listo.

Presten atención que si en la celda B2 dice 15 entonces no muestra "Mayor de 15" puesto que 15 no es mayor que 15, sino que 15 es igual a 15. Si queremos que nos diga cuando ya ha cumplido 15, podemos solucionarlo de dos maneras. La primera es cambiando el 15 por el 14 en la condición. La segunda es cambiando el Mayor (>) por el Mayor o Igual (>=).

Alternativamente podríamos querer que en la segunda opción (el falso) nos muestre algo, por ejemplo el texto "Menor de 15". Entonces la formula quedaría así:

=IF(B2>=15;"Mayor de 15";"Menor de 15")
=SI(B2>=15;"Mayor de 15";"Menor de 15")

También podemos ingresar números (pero hay que hacerlo sin comillas), otras celdas, e incluso formulas.

Veamos un ejemplo nuevo. En una planilla tenemos las siguientes Columnas

Columna A - Cliente
Columna B - IVA
Columna C - Subtotal
Columna D - Total

Y queremos que si en IVA dice S (de Si obviamente) entonces en el Total multiplique el Subtotal por 12% (un sueño no?), y si dice N (o dice cualquier otra letra que no sea la S), entonces no multiplique. La formula en la Celda D2 seria algo así:

= IF(B2="S";C2*1.12;C2)

La lógica es así: Si B2 es igual a S, entonces mostrar en esta celda (D2) el valor de C2 multiplicado por 1.12 para agregarle el 12%. Si no es igual a S, entonces muestra el valor de C2 así como esta.

Un ejemplo mas que fue la inquietud de David, por el cual escribo este artículos. La inquietud fue hacer una formula en la que si el numero es positivo, entonces mostrarlo tal cual esta, pero si es negativo, mostrar un 0. Este es un claro ejemplo de la función IF en Excel. La formula seria algo así, teniendo en cuenta que el valor esta en A2

= IF(A2>0;A2;0)

Tan simple como eso!!!

Por ultimo aclarar que las funciones IF y SI funcionan tanto en Excel (Office) como en Calc (OpenOffice) de la misma manera, y que debes reemplazar los ejemplos por IF o SI dependiendo del idioma en el cual hayas instalado tu Software de Oficina.

11 comentarios:

  1. Hola amigo,muchas gracias por tu ayuda
    excelente era lo que necesitaba.

    Mil Gracias

    David.
    ResponderSuprimir
  2. Pregunta mi amigo si algun dato estuviera en otra
    hoja , me pudiera decir como seria la formula.

    gracias
    David.
    ResponderSuprimir
  3. David, me alegra que te haya servido y espero que le sirva a otros tambien. Con respecto a tu nueva pregunta, la respuesta vendra en otro post. Ten paciencia! Si lo necesitas urgente avisa.
    ResponderSuprimir
  4. una pregunta, si tengo una columna con diferentes valores Xs y Ys, y quiero que se sume en una celda solo los valores Xs y Ys(usando la funcion logica) como se haria?
    ResponderSuprimir
  5. Anonimo, para suma de elementos de una columna de manera condicional, te recomiendo usar la funcion SUMAR.SI que es muy facil. Si tienes alguna duda puedes volver a consultar.
    ResponderSuprimir
  6. Muchas gracias, lo primero de todo felicitarte porque está muy bien explicado. Te dejo un acertijo que me trae un poco loco:

    Imagina que mi celda A2 contiene lo siguiente:
    =Si(A1>=3;"hola";"adios")

    A1=1 muestra adios
    A1=4 muestra hola

    A1= pepe
    ¿que muestra?
    pues muestra hola, lo cual en mi opinión carece de lógica... (formato de celda en general)

    ¿me ayudas? Muchas gracias!
    ResponderSuprimir
  7. Anónimo, me alegro que te guste la explicación y te invito a seguirnos en Seguidores o por el Feed para recibir mas articulos sobre Informatica y Ofimatica.

    No estoy seguro que parte de Excel no sabes para resolver tu problema, pero asumo la mas dificil, para lo cual escribi un artículo con tu desafio: Si Condicional Anidado.

    Espero que te sirva, sino deja un comentario en ese articulo para que te siga ayudando.
    ResponderSuprimir
  8. en la columnaa d4 tengo la antiguedad, como saco el porcentaje por cada 5 años de antiguedad el 15%
    ResponderSuprimir
  9. como devuelvo la cantidad en numero convertida el letra k formula empleo
    ResponderSuprimir
  10. Mi consulta es la siguiente:
    Tengo 4 productos que tienen un distinto valor, por lo cual expongo en la funcion en excel como ejemplo =si(B2="Zapato";1000) hasta hay voy bien y me entrega el resultado si este concueda ocn la funcion, pero mi problema se genera cuando la quiero ampliar al resto de los productos. el cual lo hago de la siguiente forma de ejemplo:
    =si((B2="Zapato";1000);si(B2="Zapatilla";2000);si(B2="Bota";3000))
    Cuando aplio la funcion me genera el #¡VALOR!
    Como puedo solucionarlo??
    ResponderSuprimir
  11. Claudio, tu problema es que estás anidando la función "si condicional" FUERA DEL PARENTESIS:

    =SI(CONDICIÓN;VERDADERO);FALSO_SI(CONDICION;VERDADERO);FALSO_SI etc etc

    Cuando deberías anidar los SI CONDICIONALES dentro del paréntesis:

    =SI(CONDICION;VERDADERO;FALSO_SI(CONDICION;VERDADERO;FALSO_SI(CONDICION;VERDADERO;FALSO)))

    NO TE OLVIDES DE CERRAR TODOS LOS PARENTESIS AL FINAL!!!!

    Deja un comentario si te sirvió, o bien repregunta el problema
    ResponderSuprimir

Por favor para dejar un comentario identifiquense por lo menos con Nombre, traten de no usar la opcion Anonimo. Ademas no dejen direcciones de email, si quieren dejarme su direccion o quieren hacer una pregunta, pueden usar el Formulario de Consulta y les contestare por email.

Resolver Problemas de Excel en menos de 72 horas!!!