viernes, febrero 10, 2006

Técnicas para combinar funciones en Excel

La capacidad de combinar funciones en una fórmula (nesting en inglés) es una de las cualidades más importantes en Excel. Por ejemplo, en esta nota sobre como evitar valores #N/A, utilizamos esta combinación:

=SI(ESERROR(BUSCARV(D8,Lista_1,2,0))," ",BUSCARV(D8,Lista_1,2,0))

En este caso combinamos tres funciones en una misma fórmula, de manera que si el resultado de la función BUSCARV (VLOOKUP) da un resultado de #N/A, lo que es evaluado por la función ESERROR (ISERROR), la función SI (IF) dará como resultado una celda en blanco, y en caso contrario efectuará la búsqueda.

Este proceso de combinar funciones puede ser engorroso y frustrante si no conocemos bien la sintaxis de las funciones a usar. En esta nota explicaré dos técnicas para facilitar la combinación de funciones.

La primera técnica la llamaremos "Vamos por partes". Esta técnica consiste en escribir cada función en forma independiente, en celdas distintas, y luego combinarlas en otra celda.
Veamos esto aplicado al ejemplo de la nota sobre como evitar #N/A. En la tabla Lista 2 aplicamos la combinación de funciones mostrada más arriba.



Esta combinación la podemos desintegrar en tres funciones como muestro aquí:



La fórmula en la celda F3 es =ESERROR(G3); en la celda G3 es =BUSCARV(D3,Lista_1,2,0) y en la celda H3 =SI(F3="FALSO"," ",G3). Esta última es equivalente a la formula en la celda E3 =SI(ESERROR(BUSCARV(D3,Lista_1,2,0))," ",BUSCARV(D3,Lista_1,2,0))
La ventaja de esta técnica reside en que nos permite controlar el funcionamiento de cada función por separado. La desventaja de esta técnica es que crea planillas complicadas con muchas interdependencias entre celdas.


La técnica que mostraré ahora nos permitirá crear fórmulas compactas con la ayuda del asistente "insertar función"



La fórmula debe ser construida de "afuera hacia adentro", es decir que en nuestro ejemplo empezaremos por la función SI (IF)

Nos ubicamos en la celda dónde queremos escribir la fórmula y activamos el asistente de insertar función.



Elegimos la función SI (IF). En la ventanilla de "prueba lógica" queremos escribir la función ESERROR (ISERROR), pero supongamos que no conocemos su sintaxis. Si pulsamos nuevamente el asistente de funciones todo lo que lograremos es cerrar el diálogo. Lo que debemos hacer es apretar la flecha en el cuadro de nombres (en el ángulo superior izquierdo).
Al hacerlo se abrirá una lista de funciones y la opción "más funciones".



Si la función que buscamos no aparece en la lista pulsamos la opción "más funciones". Esto abrirá una nueva instancia del asistente de funciones.



Aquí buscamos la función ESERROR (ISERROR) lo que a su vez abrirá el asistente de esta función.



Nuevamente apretamos la flecha en el cuadro de nombres para ver la lista de funciones, y seleccionamos BUSCARV (o "más funciones" si ésta no aparece).



Como pueden ver en la barra de funciones, Excel va escribiendo la fórmula en el orden adecuado.
Completamos los datos de BUSCARV y apretamos "aceptar".



Aquí recibiremos un mensaje de error, ya que Excel se ha "olvidado" que estamos escribiendo una fórmula.



Apretamos "aceptar" y Excel abrirá la fórmula en la barra de fórmulas. El cursor se encuentra en el lugar de la fórmula desde donde debemos seguir, así que escribimos "," para introducir el resultado de la primera condición lógica.



A continuación escribimos otra "," para introducir la segunda condición lógica de la función SI. Volvemos a pulsar la flecha en el cuadro de nombres, elegimos la función BUSCARV (VLOOKUP), completamos los datos

Y pulsamos "aceptar". En la celda E13 tenemos ahora la fórmula combinada.



Si te gustó esta nota anotala en del.icio.us



Technorati Tags: , , , , , ,



Categorías: Funciones&Formulas_

30 comentarios:

  1. Hola.

    Estoy utilizando Crystal Xcelsius para representar los datos de Excel de forma más gráfica.

    El Xcelsius importa los datos de un Excel, pero desgraciadamente no soporta la función ISERROR. ¿Hay alguna otra forma de detectar el error sin dicha función?

    Muchas gracias.

    ResponderBorrar
  2. Tendrías que consultar con la gente de Xcelsius qué funciones de evaluación de errores son válidas.
    También podrías crear un hoja que refleje sólo los valores del gráfico y en esa hoja corregir el error.

    ResponderBorrar
  3. primero que nada te mando una gran felicitacion por tu conocimiento sobre excel, eres un MAESTRO!!!
    y mi pregunta es la siguiente:

    cual es la mejor manera de aprender a usar excel; cual seria tu recomendacion???

    ResponderBorrar
  4. Gracias por las felicitaciones. EN mi opinión la mejor manera es a través de la práctica, resolviendo problemas reales. Además hay muchos recursos en la Internet y mucha gente dispuesta a ayudar en los foros.
    En lo que hace a libros, no conozco ninguno en castellano que pueda recomendar, pero si puedes leer inglés los libros de John Walkenbach serían mi elección.

    ResponderBorrar
  5. Compadre, muchas gracias por tu ayuda.
    al fin me saque de encima el #N/A.

    un abrazo desde Santander, España.

    ResponderBorrar
  6. perfecto el ejemplo

    ResponderBorrar
  7. facil que siempre voy a estar haciendo mis consultas sobre excel avanzado y macros

    ResponderBorrar
  8. Hola buenas tardes, solicitu su amable ayuda para resolver lo siguiente:

    Tengo nombres de clientes con diferentes categorias en columnas A, B y C, pero los nombres no estan escritos igual, haya variaciones en el nombre de un mismo cliente, necesito buscar estas alternativas y poner el nombre correcto en la columna D, ya intente con funcion SI, pero no me acepta caracteres comodin para facilitar la busqueda, incluso funciones buscar, hallar, etc no me han permitido el resultado, que puedo hacer?

    Gracias por su ayuda

    ResponderBorrar
  9. La función SI no acepta comodines, tal como explico en esta nota, pero hay otras que si los aceptan. Si bien no defines cual sería la regla para transformar las variaciones, podrías usar algunas de la funciones de Texto como SUSTITUIR, HALLAR y otras.

    ResponderBorrar
  10. hola necesito su ayuda
    tengo una lista de ruta y la quiero clasificar o calificar de acuerdo a la distancia (0-5km, de 6-15km o de 16-20km)de modo que yo al ingresar la distancia me de una calificacion del 1 al 3

    ResponderBorrar
  11. Hola, necesito tu ayuda... Pasa que tengo que hacer un trabajo donde tengo que usar Buscarv, para que cuando yo cambie la clave ó el grupo, me aparezca el nombre por ejemplo, de la persona que busco, cabe mencionar que estoy trabajando con 4 hojas diferentes, utilizo la hoja1 para hacer el cuadro dónde pondré las fórmulas... Mi intento es así: "=SI(B1=201,BUSCARV(B2,Hoja2!A2:H31,2,SI(B1=202,BUSCARV(B2,Hoja3!A2:H31,2,SI(B1=203,BUSCARV(B2,Hoja4!A2:H31,2))))))"... Pero al introducir eso... Solamente me da los datos de la hoja2 y cuando cambio el dato que tengo en B1, en los lugares dónde puse esa formula me da esta leyenda "FALSO"... Muchas gracias de antemano por tu ayuda :).

    ResponderBorrar
  12. En esta nota muestro como hacer búsquedas a través de varias hojas.

    ResponderBorrar
  13. hola, yo estoy buscando una formula de buscar un valor o varios valores en una columna y me los sume, por ejemplo
    contrato total subtotal interes iva
    bav001 15 10 5
    bav001 20 15 5
    bav008 45 40 5
    ______________________________________________
    total contrato bav001 25

    espero poder explicarme y me ayude a encontrar la funcion correcta.

    gracias

    ResponderBorrar
  14. SUMAR.SI o SUMAPRODUCTO o BDSUMA o usar tablas dinámicas...En fin, muchas posibilidades. Fijate en la ayuda en línea de Excel.

    ResponderBorrar
  15. Federico Franci07 agosto, 2013 17:10

    Buen día, por favor, cómo combino fórmulas para éste caso: En celda de hoja 1, puede haber 1, 0 o estar vacía. En hoja dos, para esa celda tengo SI si es 1, NO si es 0 y, acá es el problema, cómo hago para que cuando esté vacía quede o vacía o S/D???

    Muchas gracias

    ResponderBorrar
  16. Federico, si la celda en la hoja dos contiene una fórmula (por ejemplo, una referencia a la celda en la hoja 1), entonces nunca estará vacía, ya que contiene la fórmula. Si la idea es que no muestre ningún valor, una combinación de funciones SI te lo soluciona. Por ejemplo


    =SI(LARGO(Hoja1!A1)=0,""SI(Hoja1!A1=1,"SI","NO"))

    ResponderBorrar
  17. Federico Franci07 agosto, 2013 23:17

    GRacias Jorge!!! Esta no fue.
    La idea es que cuando en la celda de la hoja 1 esté vacía o con la leyenda S/D me muestre en la celda de la hoja 2 la leyenda S/D; y si la celda de la hoja 1 dice 1 o 0, me muestre SI o NO.

    Abrazo y gracias

    ResponderBorrar
  18. Entonces

    =SI(O(LARGO(Hoja1!A1)=0,Hoja1!A1="S/D"),""SI(Hoja1!A1=1,"SI","NO"))

    ResponderBorrar
  19. Federico Franci09 agosto, 2013 15:43

    Espectacular Jorge!!! Millón de gracias.
    Lo único es que el S/D va fuera del paréntesis.

    Abrazo, Fede

    ResponderBorrar
  20. Hola, quisiera que una funcion me ayude a validar una serie de logicas y me arroje un dato y que a la vez que me valide otra serie de logicas (distintas) y me arroje otro dato sino error, esto es lo que hice pero algo anda mal

    =SI(Y(E433=30,F433="2013-1",H433=4),"01/03/2013,0)&SI(Y(E433=30,F433="2013-1",H433=5),"01/06/2013",0)

    ResponderBorrar
  21. No podés usar & para unir dos funciones. El símbolo & es el equivalente a + para unir dos textos.
    Además si tiene que darte dos resultados (datos) tienen que estar en celdas separadas.

    ResponderBorrar
  22. Voy a tratar de resumir lo que pretendo hacer ..............................

    Tengo una hoja en la que constan datos del 1 al 15
    Tengo una formula que me busca los valores del 1 al 15 y me da una respuesta

    AHORA QUIERO UNA FORMULA O CONDICIÓN QUE BUSQUE ..... un valor en al columna A (del 1 al 15) que los compare con la condición de la columna B( ej. si es un valor entre 5 y máximo 10) me de una valor, caso contrario busque en la columna C otro valor superior

    ResponderBorrar
  23. Te sugiero que envies un archivo con el ejemplo (la explicación que das es muy general). Fijate en el enlace Ayuda, en la parte superior del blog.

    ResponderBorrar
  24. Hola!

    Estoy intentando hacer alguna formula donde pueda combiner distintas areas de trabajo para un grupo de empleados.

    Tengo la lista de empleados, y lo que deseo hacer es asignar a cada empleado a una de las 3 areas de trabajo, la asignacion es distinta y rotativa cada dia de la semana, pero la complicacion que tengo es que la lista de las areas de trabajo es una "tabla" distinta y debe actualizarse automaticamente por dia al momento que yo la modifique en la lista de empleados.

    El nombre de cada empleado debe aparecer en la lista de asignacion correspondiente a cada dia.

    Sera que me puedes ayudar por favor?

    Las formulas que he concluido hasta ahora son:
    =IF(B4="A",(A4),OR(IF(B5="A",(A5),OR(IF(B6="A",(A6))))))
    =IF(B3="B",A3,"")

    Sin embargo, con estas formulas unicamente me asigna un nombre en especifico a cada celda, y lo que quiero es que pueda asignar el nombre de cualquiera de los empleados al momento de asignarlo a determinada area.

    Agradecere muchisimo su ayuda!

    Gracias.... Diana

    ResponderBorrar
  25. Hola Diana

    te sugiero que mandes un ejemplo de lo que quieres hacer y que sigamos la consulta por mail privado (fijate en el enlace Ayuda, en la parte superior del blog).

    ResponderBorrar
  26. Hola Buen día
    Necesito realizar una formula donde según el rango del valor colocado en una celda, la respuesta de la celda de la formula sea un valor en % que representa a una tasa.
    en mis básicos conocimientos de excel, hasta ahora logre:
    =SI(AG3>1000<10000;0,35%;0)+SI(AG3>10001<30000;0,5%;0)+SI(AG3>30001<50000;0,75%;0)+SI(AG3>50001;1%;0).
    pero en estos casos cuando el valor es menor a 10.000 no me da ninguna tasa y le estoy indicando que sume. cuando en realidad quiero que arroje un solo valor según el argumento. que signo puedo utilizar para agrupar las funciones sin crear la operación de adición?
    o tal vez existe otra función con la que pueda lograr lo que necesito..
    Ayúdame por favor
    Mil Gracias.
    Yurvis

    ResponderBorrar
  27. Hola Yurvis, envíame el cuaderno siguiendo las instrucciones que pongo en el enlace Ayuda (en la parte superior del blog). Seguiremos la consulta por mail privado.

    ResponderBorrar
  28. Hola;

    Tengo el siguiente problema:

    En una hoja excell tengo en una columna cierta cantidad de productos, los cuales necesito se cuenten dependiendo de si en otra columna aparece la palabra SI.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.