martes, 16 de junio de 2009

Ejemplo SI: La función condicional-Introducción.

Seguro que todos hemos oido alguna vez de esta función SI, y quizá sepamos para qué puede servir. Dedicaremos unos segundos a explicar y analizar, en esta introducción, algo sobre el SI(prueba_lógica;valor_si_verdadero;valor_si_falso), la función condicional.
Vemos que realmente es una función muy sencilla en cuanto a argumentos, lo que hacemos con ésta es preguntar una prueba_lógica y le indicamos que ejecutar en el caso que se cumpla la prueba lógica o no. Entendemos que por definición cualquier slonos devuelve dos posibles resultados, o se cumple o no, o es cierto o es falso, i.e., prueba_lógica verdadera o prueba_lógica falsa; es decir, nuestros dos restantes argumentos.
Visto así es muy fácil pensar que sirve para poco, nada más lejos de la realidad. Esta función SI es, sin duda alguna, una de las funciones fundamentales de Excel, ya que nos permite infinidad de combinaciones y posibilidades, así como incluir otras funciones dentro de ella (concepto de anidar funciones). Como curiosidad mencionar que podremos 'anidar' siete funciones SI cada una de ellas como argumento de verdadero y/o falso de al anterior.
Hoy expondremos un ejemplo sencillo de SI (aunque sin duda en posteriores entradas profundizaremos e ésta).
Tenemos un listado de cuentas contables con sus respectivos saldos (un balance de comprobación) y dseamo conocer cuál es el saldo de las cuentas de tesorería (cuentas del subgrupo 57):


haz click en la imagen


Pra resolver nuestro sencillo ejemplo aplicaremos en la columna contigua la siguiente función:
=SI(IZQUIERDA(A2;2)="57";C2;0)
en la que hemos anidado en el argumento principal, i.e., como prueba lógica, una función de texto que nos extrae de una celda dada el número de caracteres que le indiquemos, en nuestro caso 2 caracteres por la izquierda (ya que nos interesan aquellas cuentas que comiencen por 57), mencionar que estas funciones de texto nos devuelven texto, por lo que al aplicar posteriormente sobre este resultado parcial una nueva función, habrá que enerlo en cuenta.


Podemos ver en el documento adjunto explicado en los dos pasos como llegamos al resultado buscado.

Función SI: condicional
Función SI: condic...
Hosted by eSnips


Excel nos proporciona algunas funciones adicionales que podremos utilizar para analizar los datos basándose en una condición. Ya hemos visto alguna de éstas en nuestro blog, CONTAR.SI para contar el número de veces que aparece una cadena de texto o un número dentro de un rango de celdas (CONTAR.SI); o la función SUMAR.SI para calcular una suma basándose en una cadena de texto o un número dentro de un rango (SUMAR.SI).

34 comentarios:

  1. quisiera un ejercicio resulto de la funcion si

    ResponderEliminar
  2. Buenas noches,
    hay varios ejercicios resueltos en el blog empleando la función SI; si no es lo que buscas estaré encantado de darte una solución a tu problema.
    Un saludo

    ResponderEliminar
  3. Hola como estas?,
    Excelente tu foro,

    Necesito hacer algo y pienso que lo puedo hacer con SI condicional,te indico lo que debo hacer

    Tengo una serie de datos que debo completar de la siguiente manera
    DatoS / RESULTADO BUSCADO
    300T-1 /T0001
    300T-1A /T0001A
    300T-33 /T0033
    300T-33A/T0033A
    300T33 /T0033
    34T33 /T0033,

    Basica la data puede contener guion o no, y puede contener letras al final que deben ser mantenidas,lo que debo garantiza es que el numero de caracteres numericos despues de la primera letra debe ser 4 ,por lo que debo completar con en el caso que lo necesite.

    Tengo la idea pero no se como hacer para que excel cuente o distinga entre un caracter numero o letra dentro de un valor alfanumerico

    Betty

    ResponderEliminar
  4. Hola Betty,
    ya quedó subido un post con una posible solución
    http://excelforo.blogspot.com/2010/01/ejemplo-de-la-funcion-encontrar.html
    Saludos

    ResponderEliminar
  5. HOLA ME GUSTARIA QUE FUERA MAS EXPLICATIVO PARA PODER ENTENDERLOI MRJOR. GRACIAS POR TU COLABORACION

    ResponderEliminar
  6. Destino_canada, como nuestro estimado excel_foro todavia no te ha respondido, has con un si anidado, para que definas ese intervalo ejm si(lacelda<=numero,colocas solo el valor verdadero, y luego abres otro si

    ResponderEliminar
  7. Hola Luis...
    gracias por el aporte... realmente se contestó en su momento, explicándolo con un post.
    Un saludo cordial!!!

    ResponderEliminar
  8. Hola... Te expongo mi caso (Función SI): deacuerdo a los datos de la columna A, deseo que en la columna B me ponga: "L" si es un número positivo o cero; "V" si es un número negativo; y en blanco si no he puesto nada (aquí me identifica con cero). Gracias.

    ResponderEliminar
  9. Hola,
    prueba con:
    =SI(A1="";"";SI(A1>=0;"L";"V"))
    se trataría de aplicar un SI anidado.
    Slds

    ResponderEliminar
  10. Mil gracias. Funcionó perfecto.

    ResponderEliminar
  11. HOLA TENGO ESTE EJERCICIO Y ME PIDEN ACERLO CON FUNCION SI
    FECHA DE INGRESO...
    CATEGORIA...
    ANTIGUEADAD...

    CATEGORIA:A-1100 B-900 C-700

    ResponderEliminar
  12. Hola,
    necesitaría más datos para poder ayudarte, sobre todo cuales son las condiciones a aplicar sobre los campos (FECHA, CATEGORIA, ANTIGÜEDAD) y cuales son los valores esperados.
    envíame los datos a excelforo@gmail.com adjuntando un fichero excel
    Slds

    ResponderEliminar
  13. como resuelvo auxilio
    si A4>=1000 >= 2000 escribe sobresueldp
    si A4<=1000escribe sueldo bajo
    si A4>2000 escribe sueldo exorbitante
    necesito una sola formula para que calcule todo ayudenme por favor

    ResponderEliminar
    Respuestas
    1. Hola,
      necesitas aplicar un condicional SI, sería:
      =SI(A4<=1000;"bajo";SI(A4<=2000;"sobresueldo";"exorbitante"))
      Slds

      Eliminar
  14. Hola! Tengo una inquietud y no sé como resolverla.

    Tengo unos códigos, que corresponden a unos precios determinados, ej:

    A1= Código ("1", "2", "3", hasta "7") B1=Costo (10, 11, 12, hasta 17) C1, precio de venta ("=Costo*1.5", para darle un porcentaje de ganacia)

    Ahora, tengo otra tabla, con encabezados "Título", "Código" y "Precio". En precio necesito que aparezca, que, dependiendo del código, me de el costo correspondiente en la otra tabla, multiplicado por 1.5. Serían siete códigos. Espero no haberte complicado, no creo que haya sido claro en mi explicación. Si me ayudas, te lo agradecería mucho.

    Saludos!

    ResponderEliminar
    Respuestas
    1. Hola,
      creo que deberías emplear en la segunda tabla la función BUSCARV.
      En concreto, en la columna de Precio de esta segunda tabla, tendrías que relacionar con
      =BUSCARV(codigo2tabla; tabla1;3;0)
      siendo tabla1 la compuesta de los campos 'Código', 'Costo' y 'PrecioVenta'...
      Espero haberte orientado en tu cuestión.. sin ver la estructura de ambas tablas es complicado.
      Slds

      Eliminar
  15. !hola¡ quiero ver si me puedes ayudar a resolver un problema con la función SI

    tengo que sacar el % de impuesto y valor de dicho impuesto

    ejemplo

    año tipo marca modelo tasación % valor

    1960 automóvil nissan v-16 120.000
    1975 automovil mazda rx8 330.000
    2000 automovil chevrolet askal 1.8 12.500.000


    año de fabricacion impuesto

    1965 y anterior 4%
    entre 1970 y 1985 6%
    desde 1999 en adelante 7%

    saludos

    gracias

    ResponderEliminar
    Respuestas
    1. Hola explos36,
      las fórmulas que yo añadiría con la función SI en la columna %impuesto sería:
      =SI(año<=1965;4%;SI(Y(año>=1975;año<=1985);6%;SI(año>=1999;7%)))
      En la columna de valor simplemente el producto de % y valor
      =% * valor
      como no indicas que quieres que aparezca en los intervalos de años sin datos lo he dejado vacío...
      Espero te sirva.
      Slds

      Eliminar
  16. SI A1>=0.01 <=0.99 multiplica por 1.5
    si A1>= 1 <=9.99 multiplica por 1.3
    Si A1>=10 <= 19.99 multiplca por 1.25
    Si A1>=20 <3000 multiplica por 1.2

    como puedo crear esta formula?

    ResponderEliminar
    Respuestas
    1. Hola, que tal?
      No queda claro qué quieres multiplicar por que,pero...
      Deberías introducir una fórmula condicionada, anidando con la función Y; algo así:
      =SI(Y(A1>=0.01;A1<1);B1*1,5;SI(Y(A1>=1;A1<10);B1*1,3;SI(Y(A1>=10;A1<20);B1*1,25;SI(A1>=20;B1*1,2))))
      Espero que te sirva...
      Un saludo

      Eliminar
  17. hola, tengo que hacer una quiniela de futbol en excel, y en esta los participantes ponen los resultados de los encuentros, quiero que se simplique con una formula,dando 3 puntos por atinarle al marcador exacto, dando 1 punto por solo atinarle al ganador y 0 puntos por no atinarle al ganador y mucho menos al marcador un ejemplo:
    resultado: america 1-2 chivas
    pronostico 1: america 1-2 chivas (poner aqui al lado 3 puntos)
    pronostico 2: america 0-2 chivas (poner aqui al lado 1 punto)
    pronostico 3: america 1-0 chivas (poner aqui al lado 0 puntos)
    cual seria la formula para que me arrojara los puntos en automatico, solo poniendo el resultado final, en espera de su respuesta, gracias.

    ResponderEliminar
    Respuestas
    1. Hola,
      bueno, debo suponer que los resultados de los partidos están en celdas distintas. Supongamos que del partido América - Chivas en B1 está el 1 (gol metido por América) y en C1 los 2 goles del Chivas. Los pronósticos están en F1 y G1.
      La fórmula para puntuar la 'coincidencia' sería, a incluir en I1:
      =SI(Y(B1=F1;C1=G1);3;SI(O(Y(C1>B1;G1>F1);Y(C1<B1;G1<F1));1;0))
      Espero te sea de utilidad
      Un saludo

      Eliminar
    2. ME MARCO ERROR EN LA FORMULA, PORQUE PASO ESTO??

      Eliminar
    3. Hola, buenos días,
      habría que saber qué tipo de error te dió; pero como la fórmula está probada y funciona, me decantaría a un error de versión de Excel, ¿quizá tengas la versión en inglés?, quizá debas cambiar los ; por ,
      Tendrías que asegurarte que al adaptar la fórmula a tus celdas, las referencias son correctas.
      Un cordial saludo
      P.D.: Por favor, no escribas en mayúsculas.

      Eliminar
    4. Buenas tardes

      puse esta formula en este formato
      =SI(Y(C5=C2,D2=D5),3,SI(O(Y(D5>C5,D2>C2),Y(C5<D5,D5<C5)),1,0))

      pero cuando el valor del lado izq. es mayo al del derecho me da 0 y aunque este acertado el resultado me da 0.

      me podrias ayudar. ya que solo cuando el resultado del derecho es mayor si funcina me 1 o 3 pero del izquierdo no.

      te anexo el formato que use.

      me podrias ayudar.



      MARCADORES 2 1

      NOMBRE MORELIA QUERETARO PTS.

      J-23 3 1 0
      DOBLE PODER 1 2 1 0
      DOBLE PODER 2 1 2 0

      Eliminar
    5. Hola Roberto,
      me cuesta entender qué necesitas.
      Ayudaría que indicaras a qué valores corresponden las celdas C2, C5, D2 y D5

      Gracias

      Eliminar
  18. hola necesito ayuda del como resolver este problema con la funcion si! gracias espero me puedas ayudar. n.n

    Los vendedores que tengan un sueldo entre 600 y 850 tendrán un aumento del 15% de su suelo y los que tengan un sueldo mayor a 850 tendrán un aumento dl 5% de su sueldo

    ResponderEliminar
    Respuestas
    1. Hola,
      siendo sueldo la celda a evaluar
      =SI(Y(600=850;sueldo*1.05;sueldo))
      Slds

      Eliminar
  19. Hola necesito ayuda para agregar calendario activo en una hija de excel para llevar sueldo, feriado, etc.
    Quiero que la hoja se valla actualizando en dia, mes, año a medida que va trascurriendose.
    Por el momento lo estoy haciendo a mano de cambiar dias, mes, año. Desde ya muchas gracias.
    Dejo mi mail:
    laliebre20082000-nn@yahoo.com.ar

    ResponderEliminar
    Respuestas
    1. Hola,
      ¿podrías explicarme algo más sobre lo que entiendes por calendario activo para llevar sueldos, feriados, etc?
      No logro entenderlo.
      Slds

      Eliminar
  20. hola.. espero te encuentres muy bien.. me dieron un ejercicio de excel en mi curso y se me ha hecho casi imposible realizarlo no tengo mucho conocimientos de este , espero me puedas ayudar.

    ResponderEliminar
    Respuestas
    1. Hola,
      entiendo que en ese curso te habrán explicado las fórmulas a emplear y tendrás opción de consultar dudas, si no vaya curso sería!!.
      En mis cursos no pasan estas cosas ;-)
      Puedes enviarme el fichero con el problema a
      excelforo@gmail.com
      Slds

      Eliminar
  21. Hola buenos días, tengo este enunciado:
    "Deseamos crear una fórmula en la columna F, que nos permita clasificar a los clientes según el siguiente baremo:
    -Si las compras para los dos últimos trimestres superan el valor indicado en D18, en cada uno de los dos trimestres y su morosidad es de categoria Nula, y la antigüedad superior a los 2 años, en categoria debe mostrar una "A".
    -Si el promedio de ventas de los dos trimestres, supera el valor indicado en D18, la morosidad de categoria Nula o Baja, y la antigüedad superior a 1, en categoria debes mostrar una "B".
    - El resto de la celdas de la columna, debe mostrar un "?"."

    He intentado resolverlo con esta fórmula:
    =SI(Y(C2>D18;D2>D18;E2="Nula";B2>2);"A";SI(Y(D18>PROMEDIO(C2;D2);E2=O("Baja";"Nula");B2>1);"B";"?"))

    Pero no funciona, ¿podrías ayudarme a solucionarlo?
    Muchas gracias!!!

    ResponderEliminar
    Respuestas
    1. Hola!
      viendo tu fórmula lo único que veo mal expresado (entiendo que las condiciones responden al plateamiento) es la parte donde dice: E2=O("Baja";"Nula")
      Yo diría que la fórmulatendría que quedar así:
      =SI(Y(C2>D18;D2>D18;E2="Nula";B2>2);"A";SI(Y(D18>PROMEDIO(C2;D2);O(E2="Baja";E2="Nula");B2>1);"B";"?"))

      ya te digo, dando las condiciones como correctas.
      Slds cordiales

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.