Técnicas para combinar funciones en Excel

viernes, febrero 10, 2006

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_

31 comments:

BrainSCAN,  07 septiembre, 2007 11:50  

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.

Jorge L. Dunkelman 04 octubre, 2007 17:39  

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.

carlos 09 octubre, 2008 01:34  

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???

Jorge L. Dunkelman 09 octubre, 2008 07:48  

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.

Anónimo,  06 febrero, 2010 23:30  

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

un abrazo desde Santander, España.

Anónimo,  08 abril, 2010 19:46  

perfecto el ejemplo

Luis Enrique Hilario Esteban 03 abril, 2011 22:51  

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

Anónimo,  24 agosto, 2011 02:19  

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

Jorge L. Dunkelman 24 agosto, 2011 20:43  

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.

lolisa,  18 noviembre, 2011 22:12  

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

Anónimo,  07 junio, 2012 22:04  

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 :).

Jorge L. Dunkelman 15 junio, 2012 17:26  

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

georgina quiñones 07 junio, 2013 02:43  

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

Jorge Dunkelman 07 junio, 2013 07:29  

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

Federico Franci,  07 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

Jorge Dunkelman 07 agosto, 2013 17:57  

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"))

Federico Franci,  07 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

Jorge Dunkelman 08 agosto, 2013 14:59  

Entonces

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

Federico Franci,  09 agosto, 2013 15:43  

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

Abrazo, Fede

Anónimo,  12 diciembre, 2013 19:58  

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)

Jorge Dunkelman 12 diciembre, 2013 20:36  

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.

Corporacion IVJE Asociados 25 agosto, 2014 07:17  

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

Jorge Dunkelman 26 agosto, 2014 17:36  

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.

Anónimo,  05 febrero, 2015 05:53  

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

Jorge Dunkelman 05 febrero, 2015 18:39  

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).

Yurvis La Greca 12 febrero, 2015 17:11  

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

Jorge Dunkelman 14 febrero, 2015 20:46  

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.

Daniel,  06 mayo, 2016 23:42  

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.

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP