58
FÓRMULAS VARIAS Página inicial Notas: Dependiendo de la configuración regional del equipo, los puntos y comas de estas fórmulas podrían tener que ser sustituidos por comas. Bastantes fórmulas aparecen encerradas entre llaves { }. Esto significa que son fórmulas matriciales, y que para introducirlas es necesario pulsar Mayúsculas+Control+Entrada al mismo tiempo. Las llaves propiamente dichas no hay que teclearlas: si todo va bien, deberían aparecer en la barra de fórmulas después de introducirla como matricial. La función SUMAPRODUCTO que se usa en algunas fórmulas no puede utilizarse con columnas completas (pero sí con filas completas) y, además, conviene ajustar al máximo los rangos que se le pasan como argumentos a esta función porque evalúa todas las celdas de dichos rangos, estén o no vacías. Esta misma recomendación es válida también para las fórmulas matriciales. Algunas fórmulas son bastante complejas de forma que, a pesar de que las he probado varias veces antes de ponerlas aquí, pudiera darse el caso de que no funcionaran bien en todas las situaciones. Si encuentras alguno de estos casos, puedes notificármelo a la siguiente dirección de correo electrónico: excel ARROBA jrgc.es, e intentaré arreglarlo. En esta página están todas las fórmulas sin un orden en concreto. Hay un índice por temas en este enlace . En Excel 2010 Microsoft ha cambiado el nombre de algunas funciones. Una tabla con los cambios más notables puede consultarse aquí . Poner en una celda el nombre del libro: [Ejemplo ] =EXTRAE(CELDA("nombrearchivo");ENCONTRAR("[";CELDA("nombrearchivo")) +1;ENCONTRAR("]";CELDA("nombrearchivo"))- ENCONTRAR("[";CELDA("nombrearchivo"))-1) Nota: para que esto funcione es necesario haber guardado el libro al menos una vez. Poner en una celda el nombre de la hoja: [Ejemplo ] =EXTRAE(CELDA("nombrearchivo";A1);ENCONTRAR("]";CELDA("nombrearchivo"; A1))+1;32) Si el libro tiene una sola hoja y además libro y hoja se llaman igual, es necesario complicar bastante la fórmula: [Ejemplo ]

FÓRMULAS VARIAS (EXCEL 2007)

Embed Size (px)

Citation preview

Page 1: FÓRMULAS VARIAS (EXCEL 2007)

FÓRMULAS VARIAS 

Página inicial  Notas:

Dependiendo de la configuración regional del equipo, los puntos y comas de estas fórmulas podrían tener que ser sustituidos por comas.

Bastantes fórmulas aparecen encerradas entre llaves { }. Esto significa que son fórmulas matriciales, y que para introducirlas es necesario pulsar Mayúsculas+Control+Entrada al mismo tiempo. Las llaves propiamente dichas no hay que teclearlas: si todo va bien, deberían aparecer en la barra de fórmulas después de introducirla como matricial.

La función SUMAPRODUCTO que se usa en algunas fórmulas no puede utilizarse con columnas completas (pero sí con filas completas) y, además, conviene ajustar al máximo los rangos que se le pasan como argumentos a esta función porque evalúa todas las celdas de dichos rangos, estén o no vacías. Esta misma recomendación es válida también para las fórmulas matriciales.

Algunas fórmulas son bastante complejas de forma que, a pesar de que las he probado varias veces antes de ponerlas aquí, pudiera darse el caso de que no funcionaran bien en todas las situaciones. Si encuentras alguno de estos casos, puedes notificármelo a la siguiente dirección de correo electrónico: excel ARROBA jrgc.es, e intentaré arreglarlo.

En esta página están todas las fórmulas sin un orden en concreto. Hay un índice por temas en este enlace.

En Excel 2010 Microsoft ha cambiado el nombre de algunas funciones. Una tabla con los cambios más notables puede consultarse aquí.

  Poner en una celda el nombre del libro:   [Ejemplo]=EXTRAE(CELDA("nombrearchivo");ENCONTRAR("[";CELDA("nombrearchivo"))+1;ENCONTRAR("]";CELDA("nombrearchivo"))-ENCONTRAR("[";CELDA("nombrearchivo"))-1)Nota: para que esto funcione es necesario haber guardado el libro al menos una vez. Poner en una celda el nombre de la hoja:   [Ejemplo]=EXTRAE(CELDA("nombrearchivo";A1);ENCONTRAR("]";CELDA("nombrearchivo";A1))+1;32) Si el libro tiene una sola hoja y además libro y hoja se llaman igual, es necesario complicar bastante la fórmula:  [Ejemplo] =SI(ESERROR(EXTRAE(CELDA("nombrearchivo";A1);ENCONTRAR("]";CELDA("nombrearchivo";A1))+1;32));EXTRAE(SUSTITUIR(CELDA("nombrearchivo";A1);"\";"*";LARGO(CELDA("nombrearchivo";A1))-LARGO(SUSTITUIR(CELDA("nombrearchivo";A1);"\";"")));ENCONTRAR("*";SUSTITUIR(CELDA("nombrearchivo";A1);"\";"*";LARGO(CELDA("nombrearchivo";A1))-LARGO(SUSTITUIR(CELDA("nombrearchivo";A1);"\";""))))+1;32);EXTRAE(CELDA("nombrearchivo";A1);ENCONTRAR("]";CELDA("nombrearchivo";A1))+1;32)) Saber la edad exacta (o cualquier otro período de tiempo) expresada en años, meses y días:   [Ejemplo]=SIFECHA(A1;HOY();"y") & " años " & SIFECHA(A1;HOY();"ym") & " meses " & SIFECHA(A1;HOY();"md") & " días"(suponiendo que la fecha de nacimiento estuviera en A1 y que se quisiera saber la edad a fecha de hoy). 

Page 2: FÓRMULAS VARIAS (EXCEL 2007)

Si no se desea que aparezcan incoherencias como, por ejemplo, "0 meses" o "1 días", se puede usar una fórmula más compleja:=SI(SIFECHA(A1;HOY();"y")>0;SIFECHA(A1;HOY();"y")&" "&ELEGIR(MIN(SIFECHA(A1;HOY();"y")+1;3);"";"año ";"años ");"")&SI(SIFECHA(A1;HOY();"ym")>0;SIFECHA(A1;HOY();"ym")&" "&ELEGIR(MIN(SIFECHA(A1;HOY();"ym")+1;3);"";"mes ";"meses ");"")&SI(SIFECHA(A1;HOY();"md")>0;SIFECHA(A1;HOY();"md")&" "&ELEGIR(MIN(SIFECHA(A1;HOY();"md")+1;3);"";"día ";"días ");"")  Sumar las celdas situadas en las filas impares de una columna:   [Ejemplo]{=SUMA((RESIDUO(FILA(A1:A100);2)=1)*A1:A100)}ó=SUMAPRODUCTO((RESIDUO(FILA(A1:A100);2)=1)*A1:A100) Sumar las celdas situadas en las filas pares de una columna:   [Ejemplo]{=SUMA((RESIDUO(FILA(A1:A100);2)=0)*A1:A100)}ó=SUMAPRODUCTO((RESIDUO(FILA(A1:A100);2)=0)*A1:A100) Sumar las celdas situadas en las columnas “impares” de una fila (A,C,E, etc.):  [Ejemplo]{=SUMA((RESIDUO(COLUMNA(A1:D1);2)=1)*(A1:D1))}ó=SUMAPRODUCTO((RESIDUO(COLUMNA(A1:G1);2)=1)*A1:G1) Sumar las celdas situadas en las columnas “pares” de una fila (B,D,F, etc.):   [Ejemplo]{=SUMA((RESIDUO(COLUMNA(A1:D1);2)=0)*(A1:D1))}ó=SUMAPRODUCTO((RESIDUO(COLUMNA(A1:G1);2)=0)*A1:G1) Nota 1: estas fórmulas sirven también, lógicamente, para sumar cada n filas o columnas. Por ejemplo, para sumar cada 5 filas de una columna:{=SUMA((RESIDUO(FILA(A1:A100);5)=0)*A1:A100)} Nota 2: en Excel 2010 hay que sustituir RESIDUO por RESTO.  Saber el número de elementos distintos que hay en un rango:  [Ejemplo]Si en el rango no hay celdas vacías, se puede usar:{=SUMA(1/CONTAR.SI(A1:A10;A1:A10))}ó=SUMAPRODUCTO(1/CONTAR.SI(A1:A10;A1:A10)) Si hubiera o pudiera haber celdas vacías:{=SUMA((A1:A10<>"")/CONTAR.SI(A1:A10;A1:A10&""))}ó=SUMAPRODUCTO((A1:A10<>"")/CONTAR.SI(A1:A10;A1:A10&""))(lógicamente, estas dos funciones se pueden usar también si no hay celdas vacías) y si sólo hubiera números en las celdas se podría usar:=SUMA(SIGNO(FRECUENCIA(A1:A10;A1:A10)))que sirve tanto si hay celdas vacías como si no las hay. Hallar la suma de los valores únicos en un rango:  [Ejemplo]Si se necesita saber la suma de los valores únicos de un rango con nombre llamado Lista (es decir, sumando una sola vez cada valor aunque esté más de una vez en el rango), se puede usar la fórmula:{=SUMA(Lista/CONTAR.SI(Lista;Lista))}Lo mismo hace;

Page 3: FÓRMULAS VARIAS (EXCEL 2007)

=SUMAPRODUCTO(Lista/CONTAR.SI(Lista;Lista)) Nota: el rango no puede tener ni celdas vacías, ni textos, ni valores lógicos. Si hubiera fechas, la fórmula las consideraría números.  Mostrar los datos de una lista omitiendo los duplicados  [Ejemplo]Suponiendo que en un rango con nombre llamado 'Lista' (de una sola columna y sin celdas vacías) hay un conjunto de datos uno o más de los cuales pueden estar repetidos, y que se necesita una lista en la que se hayan eliminado los duplicados, se podría usar:{=INDICE(Lista;K.ESIMO.MENOR(SI(COINCIDIR(Lista;Lista;0)=FILA(INDIRECTO("1:"&CONTARA(Lista)));COINCIDIR(Lista;Lista;0);"");FILA()))} La fórmula anterior habría que ponerla en la fila 1 de una columna cualquiera, y copiarla hacia abajo. Cuando no quedaran más datos que mostrar, comenzaría a aparecer el error #¡NUM! Si la fórmula matricial hubiera de estar situada en una fila distinta a la 1, habría que restar el número de dicha fila menos uno en la segunda vez que aparece la función FILA(). Por ejemplo, para empezar en la fila 5:{=INDICE(Lista;K.ESIMO.MENOR(SI(COINCIDIR(Lista;Lista;0)=FILA(INDIRECTO("1:"&CONTARA(Lista)));COINCIDIR(Lista;Lista;0);"");FILA()-4))} Si el rango con nombre 'Lista' estuviera dispuesto en una fila en lugar de en una columna, las fórmulas serían:{=INDICE(Lista;K.ESIMO.MENOR(SI(TRANSPONER(COINCIDIR(Lista;Lista;0))=FILA(INDIRECTO("1:"&CONTARA(Lista)));TRANSPONER(COINCIDIR(Lista;Lista;0));"");FILA()))} e {=INDICE(Lista;K.ESIMO.MENOR(SI(TRANSPONER(COINCIDIR(Lista;Lista;0))=FILA(INDIRECTO("1:"&CONTARA(Lista)));TRANSPONER(COINCIDIR(Lista;Lista;0));"");FILA()-4))}  Obtener una lista ordenada de los valores únicos de un rango.  [Ejemplo]Suponiendo que en un rango con nombre llamado "Lista" (de una sola columna y sin celdas vacías) hay un conjunto de valores que pueden estar repetidos, y que se necesita una lista ordenada de mayor a menor de los valores únicos (sin repeticiones), la fórmula sería:{=SI(K.ESIMO.MAYOR(SI(CONTAR.SI(DESREF(Lista;;;FILA(INDIRECTO("1:"&CONTAR(Lista))));Lista)=1;Lista;MIN(Lista)-1);FILA())>=MIN(Lista);K.ESIMO.MAYOR(SI(CONTAR.SI(DESREF(Lista;;;FILA(INDIRECTO("1:"&CONTAR(Lista))));Lista)=1;Lista;MIN(Lista)-1);FILA());"Valor repetido")} Si se deseara que la lista estuviera ordenada de menor a mayor, la fórmula sería:{=SI(K.ESIMO.MENOR(SI(CONTAR.SI(DESREF(Lista;;;FILA(INDIRECTO("1:"&CONTAR(Lista))));Lista)=1;Lista;MAX(Lista)+1);FILA())<=MAX(Lista);K.ESIMO.MENOR(SI(CONTAR.SI(DESREF(Lista;;;FILA(INDIRECTO("1:"&CONTAR(Lista))));Lista)=1;Lista;MAX(Lista)+1);FILA());"Valor repetido")} Nota: las listas generadas por ambas fórmulas también pueden servir si lo que se necesita es una jerarquización de los elementos únicos del rango.  Números de puesto únicos.   [Ejemplo]Si, por ejemplo, se tiene un rango con nombre llamado Notas, en el que las notas están repetidas (p.ej., 2 dieces, 2 nueves, etc.) y se desea obtener el puesto único de cada una de ellas (los dos dieces el primer puesto, los dos nueves el segundo, etc.), la fórmula sería: {=COINCIDIR(A2;K.ESIMO.MAYOR(SI(FRECUENCIA(Notas;Notas)<>0;Notas);FILA(INDIRECTO("1:"&SUMA(1/CONTAR.SI(Notas;Notas)))));0)} 

Page 4: FÓRMULAS VARIAS (EXCEL 2007)

Sustituyendo K.ESIMO.MAYOR por K.ESIMO.MENOR es posible obtener los puestos únicos, pero otorgándole a la nota más baja el puesto más alto y así con todas las demás.   Averiguar los valores que faltan en una serie de números enteros  [Ejemplo]Si se quiere un listado de los números que faltan en una serie de números enteros positivos llamada Lista, se podría usar la fórmula: {=K.ESIMO.MAYOR(SI(CONTAR.SI(Lista;FILA(INDIRECTO(MIN(Lista)&":"&MAX(Lista))))=0;FILA(INDIRECTO(MIN(Lista)&":"&MAX(Lista)));0);FILA())} La fórmula habría que ponerla en la fila 1 de una columna vacía y copiarla hacia abajo. Los números faltantes irían apareciendo de mayor a menor, y cuando no quedaran más números faltantes, comenzarían a aparecer ceros. Si se necesitara que los números faltantes fueran apareciendo ordenados de menor a mayor, se podría usar la fórmula: {=K.ESIMO.MENOR(SI(CONTAR.SI(Lista;FILA(INDIRECTO(MIN(Lista)&":"&MAX(Lista))))=0;FILA(INDIRECTO(MIN(Lista)&":"&MAX(Lista)));FALSO);FILA())} En este caso, cuando no queden más números faltantes comenzará a mostrarse el error #!NUM¡ La serie de números no tiene que estar necesariamente ordenada ni de mayor a menor ni a la inversa, si bien el ejemplo lo está para mayor claridad. Tampoco sucede nada si uno o más números de la serie están repetidos. He recibido una consulta que plantea una situación interesante que me ha hecho escribir una nueva fórmula: se trata de averiguar qué números faltan en una serie cuyo número inicial es muy grande, por ejemplo 10010003456. En este caso, las formulas anteriores fallarían porque no pueden procesar números superiores al máximo de filas de Excel (65536 en la versión 2003), así que en este caso y similares habría que usar: {=MIN(Lista)-1+K.ESIMO.MAYOR(SI(ESERROR(COINCIDIR(FILA(INDIRECTO(MIN(Lista)-MIN(Lista)+1&":"&MAX(Lista)-MIN(Lista)+1));Lista-MIN(Lista)+1;0));FILA(INDIRECTO(MIN(Lista)-MIN(Lista)+1&":"&MAX(Lista)-MIN(Lista)+1));"");FILA())} para que los números faltantes aparecieran ordenados de menor a mayor, y sustituir .MENOR por .MAYOR si el orden deseado fuera el inverso. Lógicamente, esta última fórmula puede usarse también si la serie comienza con cualquier número más bajo. Otra ventaja de esta última fórmula es que puede procesar números enteros negativos y positivos. El inconveniente es que es más compleja que la primera.   Obtener un valor aleatorio de entre las filas con datos de una columna:  [Ejemplo]=INDICE(A:A;REDONDEAR(ALEATORIO()*(CONTARA(A:A)-1)+1;0))En este caso, los datos estarían en la columna A.Los datos deben empezar en la fila 1 y no tener celdas vacías entre medias. Contar y/o sumar las celdas cuyo valor se encuentra entre dos valores dados:  [Ejemplo]=SUMAPRODUCTO((A1:A25>=5)*(A1:A25<=15))o, usando la función CONTAR.SI:=CONTAR.SI(A1:A25;">=5")-CONTAR.SI(A1:A25;">15")

Page 5: FÓRMULAS VARIAS (EXCEL 2007)

Ambas fórmulas devolverían el número de celdas cuyo valor estuviera entre 5 y 15 en el rango A1:A25. =SUMAPRODUCTO((A1:A25>=5)*(A1:A25<=15)*A1:A25)o, usando la función CONTAR.SI:=SUMAR.SI(A1:A25;">=5")-SUMAR.SI(A1:A25;">15")Ambas fórmulas devolverían la suma de los números cuyo valor estuvieran entre 5 y 15 en el rango A1:A25  Contar las celdas de un determinado mes y año:=SUMAPRODUCTO((MES(A1:A15)=1)*(AÑO(A1:A15)=2009))En este caso, se contarían las celdas en el rango A1:A15 cuya fecha fuera del mes de enero del año 2009.o, usando las funciones CONTAR.SI y FECHA:=CONTAR.SI(A1:A15;">="&FECHA(2009;1;1))-CONTAR.SI(A1:A15;">"&FECHA(2009;1;31))  Sumar los X valores mayores o menores en una columna:  [Ejemplo]{=SUMA(K.ESIMO.MAYOR(A1:A50;FILA(INDIRECTO("1:3"))))}o, usando SUMAPRODUCTO:=SUMAPRODUCTO(K.ESIMO.MAYOR(A1:A50;FILA(INDIRECTO("1:3"))))En este caso, se sumarían los 3 valores mayores del rango A1:A50Para sumar los 3 valores menores, habría que sustituir K.ESIMO.MAYOR por K.ESIMO.MENOR   Nota: Las cuatro fórmulas siguientes son ejemplos que trabajan con el rango A1:A100.Saber el número de la primera fila con datos en una columna:{=MIN(SI(A1:A100<>"";FILA(A1:A100)))} Saber el valor de la primera fila con datos en una columna:{=INDICE(A1:A100;MIN(SI(A1:A100<>"";FILA(A1:A100))))} Saber el número de la última fila con datos en una columna:{=MAX((A1:A100<>"")*FILA(A1:A100))} Saber el valor de la última fila con datos en una columna:=BUSCAR(2;1/(A1:A100<>"");A1:A100){=INDICE(A1:A100;MAX(SI(A1:A100<>"";FILA(A1:A100))))}    Nota: Las cuatro fórmulas siguientes son ejemplos que trabajan con el rango A1:Z1Averiguar el número de la primera columna con datos en una fila:{=MIN(SI(A1:Z1<>"";COLUMNA(A1:Z1)))} Averiguar el valor de la primera columna con datos en una fila:{=INDICE(A1:Z1;;MIN(SI(A1:Z1<>"";COLUMNA(A1:Z1))))} Averiguar el número de la última columna con datos en una fila:{=MAX((A1:Z1<>"")*COLUMNA(A1:Z1))} Averiguar el valor de la última columna con datos en una fila:=BUSCAR(2;1/(A1:Z1<>"");A1:Z1){=INDICE(A1:Z1;;MAX(SI(A1:Z1<>"";COLUMNA(A1:Z1))))}  

Page 6: FÓRMULAS VARIAS (EXCEL 2007)

 Fórmulas para conocer el número de la primera o última fila cuyo valor es distinto de algo (o su valor):Imagen (13 kb)Partiendo del ejemplo anterior, si se necesita:

el número de fila de la primera celda cuyo valor no es "a": {=MIN(SI(A1:A10<>"a";FILA(A1:A10)))} 

el valor de dicha celda: {=DESREF(A1;MIN(SI(A1:A10<>"a";FILA(A1:A10)))-1;0)} 

el número de fila de la última celda cuyo valor no es "a": {=MAX(SI(A1:A10<>"a";FILA(A1:A10)))} 

el valor de dicha celda: {=DESREF(A1;MAX(SI(A1:A10<>"a";FILA(A1:A10)))-1;0)}

 Si hubiera o pudiera haber celdas vacías en el rango a evaluar, habría que sustituir las dos primeras fórmulas por:

para el número de fila: {=MIN(SI(A1:A10<>"a";SI(A1:A10<>"";FILA(A1:A10))))} 

para el valor: {=DESREF(A1;MIN(SI(A1:A10<>"a";SI(A1:A10<>"";FILA(A1:A10))))-1;0)}

  Averiguar el número de veces en que coinciden los valores de dos columnasImagen (19 kb)En este ejemplo se necesita saber cuantas veces tienen el mismo valor ambas celdas de la misma fila. Dos posibilidades para lograrlo:{=SUMA((A1:A10=B1:B10)*1)}=SUMAPRODUCTO((A1:A10=B1:B10)*1) Estas mismas fórmulas servirían si la comparación hubiera de hacerse entre dos filas:{=SUMA((A1:J1=A2:J2)*1)}=SUMAPRODUCTO((A1:J1=A2:J2)*1)  Saber el valor mínimo o el valor máximo que hay en un rango a partir de un valor dadoLa función MIN devuelve el valor mínimo de un rango, pero si se necesita hallar el mínimo a partir de un número determinado (por ejemplo, excluyendo los ceros y números negativos), se puede usar:{=MIN(SI(A1:A10>0;A1:A10))} De igual forma, si se necesita saber el valor máximo a partir de un valor determinado se puede usar:{=MAX(SI(A1:A10<10;A1:A10))}En este caso, la fórmula devolvería el valor máximo en A1:A10 excluyendo los valores superiores a 10.  Encontrar un valor en un rango de varias filas y columnas  [Ejemplo]Si, por ejemplo, se desea averiguar la dirección de la celda en la que se encuentra el número 111111 dentro del rango con nombre Datos, la fórmula sería:{=CELDA("direccion";INDICE(Datos;COINCIDIR(1;SIGNO(CONTAR.SI(DESREF(Datos;FILA(Datos)-CELDA("fila";Datos);0;1;);111111));0);COINCIDIR(1;SIGNO(CONTAR.SI(DESREF(Datos;;COLUMNA(Datos)-CELDA("columna";Datos);;1);111111));0)))} 

Page 7: FÓRMULAS VARIAS (EXCEL 2007)

A partir de Excel 2007 se puede utilizar esta fórmula junto con ESERROR (y NO) como fórmula para una regla de validación. En Excel 2003 y versiones anteriores esto no es posible porque las fórmulas necesarias superarían el límite de siete niveles de anidamiento permitidos.  Fórmulas para averiguar el título de la columna o de la fila en que se encuentra el valor máximo o mínimo de un rangoImagen (28 kb)A partir del ejemplo, si se necesita:

El encabezado de la columna en que aparece por primera vez el valor mayor: {=INDICE(B1:D1;MIN(SI(MAX(B2:D4)=B2:D4;COLUMNA(B2:D4)))-1)} 

El encabezado de la columna en que aparece por última vez el valor mayor: {=INDICE(B1:D1;MAX((B2:D4=MAX(B2:D4))*COLUMNA(B2:D4))-1)} 

El encabezado de la columna en que aparece por primera vez el valor menor: {=INDICE(B1:D1;MIN(SI(MIN(B2:D4)=B2:D4;COLUMNA(B2:D4)))-1)} 

El encabezado de la columna en que aparece por última vez el valor menor: {=INDICE(B1:D1;MAX((B2:D4=MIN(B2:D4))*COLUMNA(B2:D4))-1)}

  El encabezado de la fila en que aparece por primera vez el valor mayor:

{=INDICE(A2:A4;MIN(SI(MAX(B2:D4)=B2:D4;FILA(B2:D4)))-1)} 

El encabezado de la fila en que aparece por última vez el valor mayor: {=INDICE(A2:A4;MAX((B2:D4=MAX(B2:D4))*FILA(B2:D4))-1)} 

El encabezado de la fila en que aparece por primera vez el valor menor: {=INDICE(A2:A4;MIN(SI(MIN(B2:D4)=B2:D4;FILA(B2:D4)))-1)} 

El encabezado de la fila en que aparece por última vez el valor menor: {=INDICE(A2:A4;MAX((B2:D4=MIN(B2:D4))*FILA(B2:D4))-1)}

  Sumar las cantidades correspondientes a los últimos doce mesesSuponiendo que en el rango A1:A50 hay una serie de fechas, en B1:B50 unos importes correspondientes a cada una de dichas fechas, y que se necesitara saber la suma de los importes correspondientes a los últimos doce meses, se podría usar:=SUMAPRODUCTO((A1:A50>=FECHA(AÑO(HOY())-1;MES(HOY());1))*(A1:A50<FECHA(AÑO(HOY());MES(HOY());1));B1:B50)Y si se necesitara excluir de la suma los importes correspondientes al mes en curso, la fórmula sería:=SUMAPRODUCTO((A1:A50>=FECHA(AÑO(HOY())-1;MES(HOY())+1;1))*(A1:A50<FECHA(AÑO(HOY());MES(HOY());1));B1:B50)  Totalizar por semanas los importes de una tabla de meses y díasver libro con un ejemplo (34 kb)Nota sobre este ejemplo: la gran cantidad de fórmulas matriciales -cincuenta y tres- que tiene la única hoja de este libro, junto con el gran número de cálculos necesarios, hace que el recálculo tenga un retardo perceptible.  Calcular un descuento en función de un baremo y de la cantidad comprada o vendidaImagen (79 kb) Si se necesita aplicar un descuento dependiendo del número de unidades compradas o vendidas, es posible hacerlo anidando SIes, siempre y cuando los tramos del baremo sean siete o menos. Usando los datos del ejemplo:=SI(D2<=10;0,05;SI(D2<=20;0,08;SI(D2<=30;0,11;SI(D2<=40;0,14;SI(D2<=50;0,17;SI(D2<=60;0,2;SI(D2<=70;0,23)))))))

Page 8: FÓRMULAS VARIAS (EXCEL 2007)

Pero si los tramos son más de siete (que es el caso del ejemplo), se puede recurrir a una fórmula matricial:{=SI(D2>0;SI(D2>0;INDICE(B$2:B$11;MIN(SI((A$2:A$11>=D2);FILA(A$2:A$11)-1));1);0);0)}  Averiguar la fecha del domingo de Pascua de un año (entre 1900 y 2078)La siguiente fórmula devuelve la fecha del domingo de Pascua del año especificado en A1. Su autor es Thomas Jansen. Fue presentada a un concurso para encontrar la fórmula más corta para determinar el domingo de Pascua, que se desarrolló en el sitio web de Hans W. Herber (http://www.herber.de). La fórmula en inglés es:=DOLLAR((DAY(MINUTE(A1/38)/2+55)&".4."&A1)/7,)*7-6Yo lo único que he hecho ha sido traducirla al Excel en español:=MONEDA((DIA(MINUTO(A1/38)/2+55)&"-4-" & A1)/7;)*7-6Lógicamente, también es posible sustituir la referencia a la celda A1 por un año. Por ejemplo, para el año 2008:=MONEDA((DIA(MINUTO(2008/38)/2+55)&"-4-" & 2008)/7;)*7-6 Esta otra, más larga, funciona desde el año 1900 hasta 2368:=MULTIPLO.INFERIOR(DIA(MINUTO(A1/38)/2+56)&"-5-"&A1;7)-34 La celda en la que se ponga cualquiera de las dos fórmulas ha de tener formato de fecha, dado que devuelven un número de serie. Averiguar cual es el siguiente año JacobeoPara averiguar cual es el próximo año Jacobeo (el día 25 de julio es domingo), se puede usar la fórmula:{=AÑO(HOY())+COINCIDIR(VERDADERO;DIASEM(FECHA(AÑO(HOY())+FILA(INDIRECTO("1:11"))-1;7;25))=1;0)-1}  Averiguar el valor máximo de la suma de las celdas de varias columnas (o filas)Por ejemplo, en el rango A1:C10 hay una serie de valores, y lo que se necesita es el valor máximo de la suma de cada conjunto de tres celdas de cada fila. La fórmula sería:{=MAX(A1:A10+B1:B10+C1:C10)} Para saber en qué fila se encuentra el máximo anterior, la fórmula sería:{=SUMA((MAX(A1:A10+B1:B10+C1:C10)=(A1:A10+B1:B10+C1:C10))*FILA(A1:A10))}si no hay duplicados, y:{=MAX((MAX(A1:A10+B1:B10+C1:C10)=(A1:A10+B1:B10+C1:C10))*FILA(A1:A10))}si pudiera haberlos. Ésta fórmula devuelve el número de la última fila cuyas celdas suman el valor máximo. Las fórmulas para averiguar el valor mínimo son muy parecidas a las anteriores:{=MIN(A1:A10+B1:B10+C1:C10)}{=SUMA((MIN(A1:A10+B1:B10+C1:C10)=(A1:A10+B1:B10+C1:C10))*FILA(A1:A10))}{=MAX((MIN(A1:A10+B1:B10+C1:C10)=(A1:A10+B1:B10+C1:C10))*FILA(A1:A10))} Las fórmulas para el caso de que los datos estuvieran situados de forma horizontal (p.ej., A1:J3) serían:{=MAX(A1:J1+A2:J2+A3:J3)}{=SUMA((MAX(A1:J1+A2:J2+A3:J3)=(A1:J1+A2:J2+A3:J3))*COLUMNA((A1:J3)))}{=MAX((MAX(A1:J1+A2:J2+A3:J3)=(A1:J1+A2:J2+A3:J3))*COLUMNA(A1:J1))}para el valor máximo, y:{=MIN(A1:J1+A2:J2+A3:J3)}{=SUMA((MIN(A1:J1+A2:J2+A3:J3)=(A1:J1+A2:J2+A3:J3))*COLUMNA((A1:J3)))}{=MAX((MIN(A1:J1+A2:J2+A3:J3)=(A1:J1+A2:J2+A3:J3))*COLUMNA(A1:J1))}para el valor mínimo.   Contar y resumir datos filtrados  [Ejemplo]

Page 9: FÓRMULAS VARIAS (EXCEL 2007)

Normalmente, las funciones de Excel para resumir o contar datos en base a criterios trabajarían con la lista completa (a excepción de la función SUBTOTALES, que por defecto trabaja con los datos visibles), pero Laurent Longre descubrió hace años una forma de usar la función DESREF que permite trabajar tan sólo con las filas visibles en cada momento en el rango filtrado.  Partiendo del ejemplo anterior, si por ejemplo se necesitara (siempre sobre las filas visibles):

sumar las celdas de la columna B cuyo valor fuera superior a 50, la fórmula sería:          {=SUMA((B2:B15>50)*(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1)))*B2:B15)}

contar dichas celdas:          {=SUMA((B2:B15>50)*(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))))}

sumar las celdas visibles de la columna B:          {=SUMA((SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1)))*B2:B15)}          (Nota: =SUBTOTALES(9;B2:B15) hace lo mismo, la fórmula anterior es sólo otro ejemplo de esta forma de usar DESREF)

contar dichas celdas:          {=SUMA((SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))))}          (Nota: =SUBTOTALES(2;B2:B15) hace lo mismo, la fórmula anterior es sólo otro ejemplo de esta forma de usar DESREF)

averiguar el número de fila de la primera que cumple la condición activa:           {=COINCIDIR(1;SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1));0)+1}

averiguar el número de fila de la última que cumple la condición activa:           {=MAX(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))*FILA(A2:A15))} 

Averiguar el valor activo en el filtro:{=SI(SUMA((SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))))=FILAS(A2:A15);"No hay filtro activo.";INDICE(A2:A15;COINCIDIR(1;SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1));0)))}

 Nota sobre esta última fórmula: hasta Excel 2003 tan sólo podía haber una condición activa en el filtro, pero en la versiones siguientes es posible tener activa más de una condición al mismo tiempo. La fórmula para devolver todas las condiciones activas es: {=SI(SUMA((SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))))=FILAS(A2:A15);"No hay filtro activo.";INDICE(A2:A15;INDICE(K.ESIMO.MENOR(SI(FILA(A2:A15)-1=SI(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1));COINCIDIR(A2:A15;A2:A15;0));FILA(A2:A15));FILA(INDIRECTO("1:"&FILAS(A2:A15))));1)))} que devolverá la primera condición activa. Para devolver las siguientes, habría que sustituir el último 1 de la fórmula por el número que se desee. Esta fórmula trabaja con el supuesto de que hay tan sólo una fila de títulos. Si hubiese más, habría que sustituir el -1 por dicho número. Hay disponible otro libro de ejemplo con esta fórmula, que sólo funcionará a partir de la versión 2007 puesto que supera el límite de niveles de anidamiento permitidos hasta Excel 2003.   Fórmula que simula la función BUSCARV, pero buscando en dos columnasImagen (19 kb)

Page 10: FÓRMULAS VARIAS (EXCEL 2007)

En el ejemplo se necesita averiguar el valor de la celda de la columna C en cuya fila la columna A tiene el valor 20 y la columna B tiene el valor 2. La fórmula sería:{=INDIRECTO("C"&COINCIDIR("202";A1:A9&B1:B9;0))} o, usando la función INDICE: {=INDICE(C1:C9;COINCIDIR("202";A1:A9&B1:B9;0))}  Averiguar la posición de la última aparición de un carácter en un textoLa función HALLAR devuelve la posición en que aparece por primera vez un carácter dentro de una cadena de texto, pero si se necesita saber la posición en que aparece por última vez se puede usar la fórmula:=ENCONTRAR(CARACTER(255);SUSTITUIR(A1;"b";CARACTER(255);LARGO(A1)-LARGO(SUSTITUIR(A1;"b";"")))) En este caso la fórmula devolvería la posición de la última b dentro del texto que está en A1. CARACTER(255) puede sustituirse por cualquier otro carácter que se sepa que en ningún caso va a estar en el texto. Por ejemplo, si se supiera con seguridad que no va a haber ningún cero se podría usar:=ENCONTRAR("0";SUSTITUIR(A1;"b";"0";LARGO(A1)-LARGO(SUSTITUIR(A1;"b";""))))  Extraer un número de una cadena de texto  [Ejemplo]Si se tiene que extraer un número de una cadena de texto situada en A1 pero la posición del número no es fija, se puede usar la siguiente fórmula:{=EXTRAE(A1;COINCIDIR(1;1*ESNUMERO(1*EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1));0);LARGO(A1)-COINCIDIR(1;1*ESNUMERO(1*EXTRAE(A1;LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))+1;1));0)+1-COINCIDIR(1;1*ESNUMERO(1*EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1));0)+1)} La fórmula devolverá el número como cadena de texto. Si se necesitase convertirlo en su valor para poder operar numéricamente con él, lo único que habría que hacer es multiplicar por 1 el resultado (es decir, sustituir =EXTRAE por =1*EXTRAE) La fórmula sirve también para extraer una fecha o una hora de una cadena de texto. En este caso sería posible convertir la cadena de texto devuelta por la fórmula a hora usando la función VALHORA (HORANUMERO en versiones anteriores a la 2010) y la función VALFECHA (FECHANUMERO en versiones anteriores de Excel) para convertirla a fecha. Hay que tener en cuenta que tan sólo puede haber un número en la cadena de texto. Es decir, por ejemplo la fórmula funcionará con la cadena "extraer 125,50 de esta cadena" (devolverá 125,50), pero no con "extraer 125 y 250 de esta cadena" (devolverá "125 y 250"). Si se sabe con seguridad que los números a extraer de las cadenas de texto son enteros (no tienen decimales), es posible utilizar una fórmula más sencilla:{=EXTRAE(A1;COINCIDIR(1;1*ESNUMERO(1*EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1));0);CONTAR(1*EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))} Nota: en Excel 2010 hay que sustituir EXTRAE por MED.  Extraer todos los caracteres numéricos de una cadena de texto   [Ejemplo] <--Este ejemplo sólo funciona en Excel 2007 y 2010Una complicación de las fórmulas anteriores sirve para extraer todos los caracteres numéricos de una cadena de texto, con la limitación de que tan sólo puede haber 14 caracteres numéricos, como máximo, a la derecha del primer número que no sea cero. Es decir, la fórmula funcionará con, por ejemplo, la cadena "xxx0000000000000abc123de45678fg901hi2345jk" (devolverá 0000000000000123456789012345), pero no lo haría con

Page 11: FÓRMULAS VARIAS (EXCEL 2007)

"ab1234cd5678efg9012hi345jk6789" (devolvería 123456789012346000). Esto es debido a la precisión númerica de Excel, que es de 15 dígitos. Esta fórmula sólo funcionará a partir de la versión 2007 ya que supera los siete niveles de anidamiento permitidos como máximo hasta la versión 2003 (en la 2007 habría que sustituir MED por EXTRAE), y es posiblemente la más "desmesurada" de las fórmulas que hay en esta página, lo que puede resultar un poco sorprendente porque, en principio, la tarea no parece muy complicada, si bien en realidad para una sola fórmula sí lo es. {=REPETIR("0";COINCIDIR(1;ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))*(MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)<>"0");0)-LARGO(SUSTITUIR(IZQUIERDA(A1;COINCIDIR(1;ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))*(MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)<>"0");0));"0";"")))&SUMA(MED(A1;K.ESIMO.MAYOR(ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))*FILA(INDIRECTO("1:"&LARGO(A1)));FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))));1)*10^(FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))))-1))} En la fórmula propuesta, a la expresión necesaria para extraer los números (a partir de SUMA), ya de por sí bastante complicada, hay que anteponerle una larga expresión adicional para contar los posibles ceros a la izquierda e incorporarlos al resto de dígitos y así evitar que se pierdan. Por lo tanto, si lo que se necesita es el valor numérico de los caracteres numéricos de la cadena (lo que, lógicamente, implicaría despreciar los ceros que pudiera haber a la izquierda), es posible prescindir de esa parte de la fórmula (hasta el & de "&SUMA" incluido), con lo que adquiere un tamaño más manejable: {=SUMA(MED(A1;K.ESIMO.MAYOR(ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))*FILA(INDIRECTO("1:"&LARGO(A1)));FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))));1)*10^(FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))))-1))} Si se tratara de un número con decimales (por ejemplo extraer el número 987,0654 de la cadena "a9b8c7,0d6e5f4"), se podría usar la fórmula:{=SUMA(MED(A1;K.ESIMO.MAYOR(ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))*FILA(INDIRECTO("1:"&LARGO(A1)));FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))));1)*10^(FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))))-1))/10^CONTAR(1*MED(DERECHA(A1;LARGO(A1)-ENCONTRAR(",";A1));FILA(INDIRECTO("1:"&LARGO(DERECHA(A1;LARGO(A1)-ENCONTRAR(",";A1)))));1))}en la que si el separador decimal fuese el punto en vez de la coma habría que sustituir los "," por ".". Si no se sabe con seguridad cual podrá ser el separador decimal en el equipo en el que se vaya a usar esta última fórmula, es posible complicarla todavía un poco más para que ella misma lo averigüe:{=SUMA(MED(A1;K.ESIMO.MAYOR(ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))*FILA(INDIRECTO("1:"&LARGO(A1)));FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))));1)*10^(FILA(INDIRECTO("1:"&CONTAR(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))))-1))/10^CONTAR(1*MED(DERECHA(A1;LARGO(A1)-ENCONTRAR(MED(1/2;2;1);A1));FILA(INDIRECTO("1:"&LARGO(DERECHA(A1;LARGO(A1)-ENCONTRAR(MED(1/2;2;1);A1)))));1))} En esta última fórmula habría que sustituir MED por EXTRAE si la versión de Excel fuese la 2007 (insisto en que la fórmula no funcionará con versiones anteriores a la 2007). Estas 4 fórmulas trabajan con la cadena de texto situada en A1.  Extraer los números situados a la derecha en una cadena de texto.

Page 12: FÓRMULAS VARIAS (EXCEL 2007)

Si se desea extraer el número situado a la derecha en una cadena situada en A1 (por ejemplo, extraer 9854 de la cadena abcd9854), pero la longitud del número no es fija, se puede usar: {=BUSCAR(1E+99;1*(DERECHA(A1;FILA(INDIRECTO("1:"&LARGO(A1))))))} Esta fórmula funcionará con números con decimales, siempre que el separador decimal en la cadena de texto sea el mismo que el establecido en la configuración regional del equipo.  Saber el número de veces que aparece un carácter o una cadena en un textoSuponiendo que A1 contiene el texto ABACDCABAEFE, para averiguar el número de aes que aparecen en el texto:=LARGO(A1)-LARGO(SUSTITUIR(A1;"A";""))y para averiguar el número de veces que aparece ABA:=(LARGO(A1)-LARGO(SUSTITUIR(A1;"ABA";"")))/3 Si se quisiera saber el número de aes que aparecen en el rango A1:A10, la fórmula sería:{=SUMA(LARGO(A1:A10)-LARGO(SUSTITUIR(A1:A10;"A";"")))}y para averiguar el número de veces que aparece ABA en el mismo rango:{=SUMA((LARGO(A1:A10)-LARGO(SUSTITUIR(A1:A10;"ABA";"")))/3)}  Averiguar el texto más repetido en un rangoLa función MODA devuelve el valor que más se repite en un rango, pero tan sólo se puede aplicar a valores numéricos. Si se necesitara emular esta función en un rango compuesto de celdas con texto, y suponiendo que dicho rango fuera A1:A10, se podría usar la fórmula:=INDICE(A1:A10;MODA(COINCIDIR(A1:A10;A1:A10;0)))Nota: En Excel 2010, la función MODA ha pasado a ser MODA.UNO  Averiguar el elemento menos repetido en un rangoSi se necesita saber cual es el elemento menos repetido de, por ejemplo, el rango A1:A10 (en el que no puede haber celdas vacías), la fórmula sería:{=INDICE(A1:A10;COINCIDIR(MIN(CONTAR.SI(A1:A10;A1:A10));CONTAR.SI(A1:A10;A1:A10);0))}teniendo en cuenta que si hubiese más de un elemento con el menor número de repeticiones la fórmula devolvería el situado más arriba. Esta fórmula sirve para cualquier tipo de datos.  Averiguar el 2º, 3er., 4º etc. valor más repetido en un rango  [Ejemplo]Sabemos que la función MODA (MODA.UNO en Excel 2010) devuelve el elemento más repetido de un rango. Si se necesita averiguar cuál es el 2º, 3º, etc. valor más repetido de un rango con nombre llamado Datos (que ha de empezar en la fila 1 y estar constituido por valores), se puede usar la fórmula: {=INDICE(Datos;COINCIDIR(K.ESIMO.MAYOR(SI(COINCIDIR(Datos;Datos;0)=FILA(Datos);CONTAR.SI(Datos;Datos)-FILA(Datos)/10^MAX(LARGO(Datos-ENTERO(Datos))));FILA());SI(COINCIDIR(Datos;Datos;0)=FILA(Datos);CONTAR.SI(Datos;Datos)-FILA(Datos)/10^MAX(LARGO(Datos-ENTERO(Datos))));0))}

Para que esta fórmula —tal como está aquí— devolviese el 2º valor más repetido, tendría que estar situada en la fila 2. Situada en la fila 1, la fórmula devolvería el elemento más repetido, lo que carece de sentido porque eso mismo se puede conseguir mucho más fácilmente utilizando =MODA(Datos), si bien hay que precisar que en las versiones de Excel que no disponen de la función MODA.VARIOS, la fórmula propuesta representa un modo de conseguir que vayan aparecido todos los elementos "empatados" en la primera posición de la clasificacion por su cantidad de apariciones, si es que hay más de uno.

Page 13: FÓRMULAS VARIAS (EXCEL 2007)

La parte de la fórmula que determina el elemento a devolver es la función FILA(), por lo que si se sustituye esta función por un número entero específico la fórmula devolverá el elemento que ocupe esa posición en la jerarquía de repeticiones.

Esta fórmula necesita jerarquizar los elementos únicos del rango que procesa al objeto de deshacer los posibles "empates" en su cantidad de apariciones, para lo que recurre a la técnica de restarle a cada uno de ellos el resultado de la división de su número de fila entre 10^número de decimales del elemento qué más decimales tenga+2. Esto podría tener como consecuencia que la fórmula no trabajase adecuadamente si uno o varios de los números que debe procesar tuvieran muchos decimales y/o si uno o varios de los números fuesen muy grandes. Si los elementos en el rango Datos fuesen cadenas de texto, se podría usar la siguiente variante de la fórmula:{=INDICE(Datos;COINCIDIR(K.ESIMO.MAYOR(SI(COINCIDIR(Datos;Datos;0)=FILA(Datos);CONTAR.SI(Datos;Datos)-FILA(Datos)/100);FILA());SI(COINCIDIR(Datos;Datos;0)=FILA(Datos);CONTAR.SI(Datos;Datos)-FILA(Datos)/100);0))} Esta fórmula trabajará (en principio) también si los elementos son una mezcla de valores y texto o incluso si tan sólo hay números, pero si los números tuviesen decimales podrían producirse resultados incorrectos.

En caso de empate en el número de repeticiones, estas fórmulas devolverán primero el situado más arriba en el rango, luego el siguiente hacia abajo, etc. Cuando no queden más elementos únicos en el rango Datos, comenzarán a devolver el error #¡NUM!  Averiguar el número de palabras de un texto y/o el promedio de sus longitudesSuponiendo que la celda A1 tiene un texto cuyas palabras están separadas por espacios, la fórmula para averiguar el número de palabras sería:=LARGO(A1)-LARGO(SUSTITUIR(A1;" ";""))+1 Para saber el promedio de las longitudes de las palabras del texto situado en la celda A1 la fórmula sería:=LARGO(SUSTITUIR(A1;" ";""))/(LARGO(A1)-LARGO(SUSTITUIR(A1;" ";""))+1) Notas:

Hay que hacer notar que si hubiera signos de puntuación serían tenidos en cuenta al calcular el promedio de los largos de las palabras.

Si las palabras estuviesen separadas por, por ejemplo, guiones, lo único que habría que hacer es sustituir en las fórmulas " " por "-".

   Averiguar cual es el texto más largo de un rango  [Ejemplo]Si se deseara saber la fila con el texto más largo en el rango A1:A10, la fórmula sería:{=MAX(LARGO(A1:A10))}Para obtener dicho texto más largo:{=INDICE(A1:A10;COINCIDIR(1;SIGNO(LARGO(A1:A10)=MAX(LARGO(A1:A10)));0))}

Si hubiera dos o más celdas con el texto de la misma longitud, esta fórmula devolverá la primera de ellas.

Sería posible usar un formato condicional para resaltar todas las celdas cuyos textos fueran los más largos del rango. La fórmula para dicho formato condicional sería:=LARGO(A1)=MAX(LARGO(A$1:A$10))Esta fórmula habría que aplicarla a todo el rango A1:A10  

Page 14: FÓRMULAS VARIAS (EXCEL 2007)

Averiguar el carácter o el dígito más repetido en una celda y/o el número de veces que aparece  [Ejemplo]Suponiendo que se quiera saber cual es el carácter o el número más repetido en la celda A1, se podría usar:{=MED(A1;MODA.UNO(COINCIDIR(MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1);MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1);0));1)} teniendo en cuenta que si dos o más caracteres y/o dígitos se repiten el mismo número de veces, la fórmula devolverá el situado más a la izquierda. En Excel 2010 es posible utilizar la nueva función MODA.VARIOS para devolver la lista de elementos "empatados" (si los hay) en el primer puesto por el número de apariciones. La fórmula sería:{=INDICE(MODA.VARIOS(COINCIDIR(MED($A$1;FILA(INDIRECTO("1:"&LARGO($A$1)));1);MED($A$1;FILA(INDIRECTO("1:"&LARGO($A$1)));1);0));FILA())} que habría que colocar en la fila 1 de cualquier columna vacía y copiarla y pegarla hacia abajo. Cuando no haya más elementos "empatados" en el primer puesto por el número de apariciones, comenzará a aparecer el error #¡REF! Complicando un poco la primera fórmula propuesta es posible, en caso de empate, devolver el caracter más a la derecha (útil para las versiones anteriores a la 2010, que no disponen de la función MODA.VARIOS):{=MED(A1;LARGO(A1)-MODA.UNO(COINCIDIR(MED(A1;LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))+1;1);MED(A1;LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))+1;1);0))+1;1)}  Es posible también averiguar el número de veces que aparece el carácter o dígito que más lo hace, usando la fórmula:{=MAX(LARGO(A1)-LARGO(SUSTITUIR(A1;MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1);"")))} En las versiones anteriores a la 2010 hay que sustituir MODA.UNO por MODA y MED por EXTRAE.  Averiguar la posición del primer carácter o número en una celdaSi se desea obtener la posición del primer carácter no numérico en la celda A1, se puede usar:{=COINCIDIR(VERDADERO;ESERROR(SIGNO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)));0)}Y para obtener el carácter que es:{=EXTRAE(A1;COINCIDIR(VERDADERO;ESERROR(SIGNO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)));0);1)} Para obtener la posición del primer número o el número en sí, bastaría con sustituir VERDADERO por FALSO. Averiguar la posición del último carácter o número en una celdaSi se desea obtener la posición del último carácter no numérico en la celda A1, se puede usar:{=MAX(ESERROR(SIGNO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))*FILA(INDIRECTO("1:"&LARGO(A1))))}Y para obtener el carácter que es:{=EXTRAE(A1;MAX(ESERROR(SIGNO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))*FILA(INDIRECTO("1:"&LARGO(A1))));1)} Si se desea el último número, las fórmulas serían:{=MAX(ESNUMERO(SIGNO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))*FILA(INDIRECTO("1:"&LARGO(A1))))}y:{=EXTRAE(A1;MAX(ESNUMERO(SIGNO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)))*FILA(INDIRECTO("1:"&LARGO(A1))));1)} 

Page 15: FÓRMULAS VARIAS (EXCEL 2007)

 Saber si todos los caracteres del texto de una celda son letras  [Ejemplo]Excel dispone de la función ESTEXTO para saber si el contenido de una celda es un texto, pero dicha función no evalúa cada carácter, por lo que, por ejemplo, AB1C lo consideraría como texto a pesar de tener un número. Si, por ejemplo, se necesitara saber si todos y cada uno de los caracteres de una celda son letras mayúsculas, excluyendo la Ñ, se podría usar: =SUMAPRODUCTO((CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))>64)*(CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))<91))=LARGO(A1) e incluyendo la Ñ: =SUMAPRODUCTO(((CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))>64)*(CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))<91))+(CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))=209))=LARGO(A1) Si, además, se necesitara saber si el texto tiene una longitud determinada (por ejemplo, 6 caracteres), la fórmula sería (sin la Ñ): =Y(SUMAPRODUCTO((CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))>64)*(CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))<91))=6;LARGO(A1)=6) y con la Ñ: =Y((SUMAPRODUCTO((CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))>64)*(CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))<91)+(CODIGO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1))=209)))=6;LARGO(A1)=6) Si se quisiera verificar que todas las letras fueran minúsculas, habría que hacer las siguientes sustituciones en las fórmulas: 96 en vez de 64123 en vez de 91241 en vez de 209 Nota: todas estas fórmulas pueden ser utilizadas como 'Fórmula personalizada' en las validaciones.  Fórmulas para averiguar los dígitos de control de un Código de Cuenta de Cliente (CCC) del sistema bancario español  [Ejemplo]Suponiendo que en A1 estuviera el código de la entidad bancaria (4 dígitos), en B1 el código de la sucursal (4 dígitos) y en C1 el código de la cuenta (10 dígitos), la fórmula para averiguar el dígito de control de la entidad + la sucursal (8 dígitos en total) sería:{=MED(12345678910;11-RESTO(SUMA(MED(A1&B1;FILA(INDIRECTO("1:8"));1)*(MED(37498625;FILA(INDIRECTO("1:8"));1)+1));11);1)} La fórmula para averiguar el dígito de control del número de cuenta sería:{=MED(12345678910;11-RESTO(SUMA(MED(C1;FILA(INDIRECTO("1:10"));1)*(MED(0&137498625;FILA(INDIRECTO("1:10"));1)+1));11);1)} Si se necesitara averiguar ambos dígitos de control en la misma celda, la fórmula sería:{=MED(12345678910;11-RESTO(SUMA(MED(A1&B1;FILA(INDIRECTO("1:8"));1)*(MED(37498625;FILA(INDIRECTO("1:8"));1)+1));11);1)&MED(12345678910;11-

Page 16: FÓRMULAS VARIAS (EXCEL 2007)

RESTO(SUMA(MED(C1;FILA(INDIRECTO("1:10"));1)*(MED(0&137498625;FILA(INDIRECTO("1:10"));1)+1));11);1)} Y para obtener el CCC completo (entidad + sucursal + dígitos de control + número de cuenta) separados por un espacio, que es como se suele presentar el CCC en España, la fórmula sería:{=A1&" "&B1&" "&MED("12345678910";11-RESTO(SUMA(MED(A1&B1;FILA(INDIRECTO("1:8"));1)*(MED("37498625";FILA(INDIRECTO("1:8"));1)+1));11);1)&MED("12345678910";11-RESTO(SUMA(MED(C1;FILA(INDIRECTO("1:10"));1)*(MED(0&137498625;FILA(INDIRECTO("1:10"));1)+1));11);1)&" "&C1} Notas:

Conviene que tanto las celdas con los códigos bancarios como las que tengan las fórmulas para averiguar sus dígitos de control tengan formato de texto para evitar que se pierdan los ceros que pudiera haber a la izquierda. Otra posibilidad es anteponer un apóstrofo ' a los códigos, por ejemplo '0123

Es posible sustituir SUMA por SUMAPRODUCTO, y de así hacerlo no sería necesario introducir las fórmulas de forma matricial.

En las versiones anteriores a la 2010 hay que sustituir RESTO por RESIDUO y MED por EXTRAE.

  Fórmula para averiguar los dígitos de control IBAN (International Bank Account Number)Suponiendo que en A1 estuviera el CCC (Código de Cuenta del Cliente del sistema bancario español) completo (es decir, los cuatro dígitos del banco + los cuatro de la sucursal + los dos dígitos de control + los diez dígitos de la cuenta), sin espacios ni otros signos (como p.ej. guiones), la fórmula para averiguar los dígitos de control IBAN sería:=DERECHA(0&98-RESIDUO(RESIDUO(RESIDUO(RESIDUO(EXTRAE(A1;1;8);97)&EXTRAE(A1;9;8);97)&EXTRAE(A1&142800;17;8);97)&EXTRAE(A1&142800;25;2);97);2) y la fórmula para devolver el código IBAN completo sería:="ES"&DERECHA(0&98-RESIDUO(RESIDUO(RESIDUO(RESIDUO(EXTRAE(A1;1;8);97)&EXTRAE(A1;9;8);97)&EXTRAE(A1&142800;17;8);97)&EXTRAE(A1&142800;25;2);97);2)&A1 Si se deseara desglosar el IBAN en 6 grupos de 4 caracteres separados por un espacio (que es como se suele presentar el IBAN en España), la fórmula sería:="ES"&DERECHA(0&98-RESIDUO(RESIDUO(RESIDUO(RESIDUO(EXTRAE(A1;1;8);97)&EXTRAE(A1;9;8);97)&EXTRAE(A1&142800;17;8);97)&EXTRAE(A1&142800;25;2);97);2)&" "&IZQUIERDA(A1;4)&" "&EXTRAE(A1;5;4)&" "&EXTRAE(A1;9;4)&" "&EXTRAE(A1;13;4)&" "&EXTRAE(A1;17;4) Notas:

En el libro de ejemplo para la fórmula anterior (la que averiguaba los dígitos de control del CCC) hay una hoja con ejemplos de estas fórmulas que calculan los códigos de control IBAN.

En Excel 2010 hay que sustituir RESIDUO por RESTO y EXTRAE por MED.  Averiguar la letra de control de un NIF (Número de Identificación Fiscal en España) [Ejemplo]Suponiendo que en A1 se encuentra el DNI cuya letra se quiera averiguar, la fórmula sería:=EXTRAE("TRWAGMYFPDXBNJZSQVHLCKE";RESIDUO(A1;23)+1;1) Averiguar el dígito verificador de un RUT (Rol Único Tributario) chilenoSuponiendo que en A1 se encuentra el RUT, la fórmula sería:{=EXTRAE("123456789K0";11-RESIDUO(SUMA(EXTRAE(DERECHA(REPETIR("0";12)&$A$1;12);13-

Page 17: FÓRMULAS VARIAS (EXCEL 2007)

FILA(INDIRECTO("1:12"));1)*(FILA(INDIRECTO("1:12"))+1-(FILA(INDIRECTO("1:12"))>6)*6));11);1)} Usando como separador la coma, la fórmula quedaría así:{=EXTRAE("123456789K0",11-RESIDUO(SUMA(EXTRAE(DERECHA(REPETIR("0",12)&$A$1,12),13-FILA(INDIRECTO("1:12")),1)*(FILA(INDIRECTO("1:12"))+1-(FILA(INDIRECTO("1:12"))>6)*6)),11),1)} Nota: no dispongo de muchos RUTs auténticos para probar de forma más intensiva si la fórmula funciona. En cualquier caso, sí lo calcula bien con el ejemplo que aparece en la wikipedia sobre el tema. Si alguien encuentra un error en la fórmula, que por favor me lo comunique a excel ARROBA jrgc.es --> GRACIAS. Averiguar el dígito verificador de un DNIC (Dirección Nacional de Identificación Civil) uruguayoSuponiendo que en A1 se encuentra el DNIC, la fórmula sería:=DERECHA(10-RESIDUO(SUMAPRODUCTO(VALOR(DERECHA(EXTRAE(A1;FILA(INDIRECTO("1:7"));1)*EXTRAE("2987634";FILA(INDIRECTO("1:7"));1);1)));10);1) Usando como separador la coma, la fórmula sería:=DERECHA(10-RESIDUO(SUMAPRODUCTO(VALOR(DERECHA(EXTRAE(A1,FILA(INDIRECTO("1:7")),1)*EXTRAE("2987634",FILA(INDIRECTO("1:7")),1),1))),10),1) Averiguar el dígito verificador de una CUIT (Clave Única de Identificación Tributaria) argentinaSuponiendo que en A1 se encuentra la CUIT (en el formato 99-99999999), la fórmula para averiguar su dígito verificador sería:{=EXTRAE("12345678990";11-RESIDUO(SUMA(EXTRAE(IZQUIERDA($A$1;2)&EXTRAE($A$1;4;8);10-FILA(INDIRECTO("1:10"))+1;1)*(FILA(INDIRECTO("1:10"))+1-(FILA(INDIRECTO("1:10"))>6)*6));11);1)} Usando como separador la coma, la fórmula sería:{=EXTRAE("12345678990",11-RESIDUO(SUMA(EXTRAE(IZQUIERDA($A$1,2)&EXTRAE($A$1,4,8),10-FILA(INDIRECTO("1:10"))+1,1)*(FILA(INDIRECTO("1:10"))+1-(FILA(INDIRECTO("1:10"))>6)*6)),11),1)}  Fórmula para averiguar el dígito de control de un código de barras EAN-13Suponiendo que en A1 se encuentre el código EAN-13 (12 dígitos) cuyo dígito de control se desee averiguar, la fórmula sería: =10-RESIDUO(SUMAPRODUCTO(EXTRAE(A1;FILA(INDIRECTO("1:12"));1)*(EXTRAE(131313131313;FILA(INDIRECTO("1:12"));1)));10) Una variante, un poco más corta: =10-RESIDUO(SUMAPRODUCTO(EXTRAE(A1;FILA(INDIRECTO("1:12"));1) *(1+((RESIDUO(FILA(INDIRECTO("1:12"));2)=0)*2)));10)  Fórmula para averiguar el dígito de control de un código de barras EAN-8Suponiendo que en A1 se encuentre el código EAN-8 (7 dígitos) cuyo dígito de control se desee averiguar, la fórmula sería:

Page 18: FÓRMULAS VARIAS (EXCEL 2007)

=10-RESIDUO(SUMAPRODUCTO(EXTRAE(A1;FILA(INDIRECTO("1:7"));1)*(EXTRAE(3131313;FILA(INDIRECTO("1:7"));1)));10) Notas:

Las fórmulas que usan la función SUMAPRODUCTO se pueden hacer un poco más cortas si se convierten en matriciales, para lo cual lo único que hay que hacer es sustituir SUMAPRODUCTO por SUMA e introducirlas como fórmulas matriciales.

En Excel 2010 hay que sustituir RESIDUO por RESTO y EXTRAE por MED.  Reitero la importancia de que la celdas que contienen los códigos cuyos dígitos de control se quieran averiguar estén formateadas como texto, para evitar que se puedan perder ceros por la izquierda, si los hay.   Detectar si existe duplicidad de un conjunto de celdasimagen (11 kb)En este ejemplo se necesita averiguar qué filas están duplicadas (es decir, tienen las tres celdas iguales en el mismo orden). Una posibilidad es poner la siguiente fórmula en la fila 1 de una columna vacía =SUMAPRODUCTO(($A$1:$A$6&$B$1:$B$6&$C$1:$C$6=$A1&$B1&$C1)*1) y copiarla y pegarla hasta la última fila. La fórmula devolverá el número de veces en que se produce la duplicidad. También sería posible usar la siguiente fórmula, pero hay que tener en cuenta que hay que introducirla como matricial habiendo seleccionado antes todo el rango donde debe ir. {=COINCIDIR(A1:A6&B1:B6&C1:C6;A1:A6&B1:B6&C1:C6;0)} Esta fórmula asignará a cada grupo de celdas un número, y los grupos duplicados aparecerán con el mismo número. En esta imagen (37 kb) se puede ver la fórmula, aplicada en el rango D1:D6  Fijar en una celda el lunes de la semana actual (o cualquier otro día de la semana)Por ejemplo, para mostrar siempre en una celda el lunes de la semana actual, la fórmula sería: =SI(DIASEM(HOY())=2;HOY();HOY()-DIASEM(HOY()-2)) Para los demás días de la semana, habría que sustituir los doses por:    1 para el domingo    3 para el martes    4 para el miércoles    5 para el jueves    6 para el viernes    7 para el sábado  Fórmula para averiguar el sábado, domingo, etc. anterior o posterior a una fechaSi en A1 hay una fecha y se desea saber el sábado anterior a la misma se puede usar:=A1-DIASEM(A1)Para el sábado posterior la fórmula sería:=A1-DIASEM(A1)+7

Para el domingo anterior o siguiente, las fórmulas serían:

Page 19: FÓRMULAS VARIAS (EXCEL 2007)

=A1-DIASEM(A1-1)=A1-DIASEM(A1-1)+7

Para el lunes, martes...viernes, habría que sustituir -1 por -2,-3... -6

Lógicamente, se puede trabajar con HOY() o AHORA() en vez de la referencia a A1, en cuyo caso los resultados serían volátiles.   Fijar en una celda el primer o último día del mes actual, anterior o siguiente Primer día del mes actual:      =FECHA(AÑO(HOY());MES(HOY());1)Último día del mes actual:      =FECHA(AÑO(HOY());MES(HOY())+1;1)-1Primer día del mes anterior:    =FECHA(AÑO(HOY());MES(HOY())-1;1)Último día del mes anterior:    =FECHA(AÑO(HOY());MES(HOY());1)-1Primer día del mes siguiente:  =FECHA(AÑO(HOY());MES(HOY())+1;1)Último día del mes siguiente:  =FECHA(AÑO(HOY());MES(HOY())+2;1)-1  Subtotalizar datos por tramos de edadSuponiendo que en rango A1:A50 hay una serie de fechas de nacimiento, y que se necesita subtotalizar por tramos de edad de 10 años desde dichas fechas de nacimiento hasta la fecha actual, la fórmula sería:

=SUMAPRODUCTO((ENTERO(SIFECHA($A$1:$A$50;HOY();"y")/10)=0)*1)

para las fechas de nacimiento de los 10 años anteriores. Para los 10, 20, ... XX años, habría que sustituir =0 por =1, =2 ... =XX/10

Si se necesitara tomar como referencia una fecha en concreto en lugar de la actual, habría que sustituir HOY() por alguna de las funciones de conversión a fechas de Excel. Por ejemplo, usando la función FECHA para el 31/12/2007, la fórmula anterior quedaría:

=SUMAPRODUCTO((ENTERO(SIFECHA($A$1:$A$50;FECHA(2007;12;31);"y")/10)=0)*1)

Si se modifica un poco las fórmulas es posible subtotalizar por otros períodos distintos al decenio, como por ejemplo quinquenios:

=SUMAPRODUCTO((ENTERO(SIFECHA($A$1:$A$50;HOY();"y")/5)=0)*1)

o bienios:

=SUMAPRODUCTO((ENTERO(SIFECHA($A$1:$A$50;HOY();"y")/2)=0)*1)

Lógicamente, también es posible obtener sumas de cantidades que estén relacionadas con esas fechas. Por ejemplo, suponiendo que en el rango B1:B50 de la misma hoja hubiera una serie de cantidades y se deseara obtener la suma que corresponde a quienes han nacido en los 10 años anteriores a la fecha actual, la fórmula sería:

=SUMAPRODUCTO((ENTERO(SIFECHA($A$1:$A$50;HOY();"y")/10)=0)*$B1:$B$50)  Obtener un promedio despreciando el/los valor/es mayor/es o menor/es  [Ejemplo]Suponiendo que se tiene un rango con nombre (de una sola columna de ancho) llamado Notas, y se desea obtener su promedio despreciando su valor más alto, la fórmula sería:{=PROMEDIO(K.ESIMO.MENOR(Notas;FILA(INDIRECTO("1:"&FILAS(Notas)-1))))}

Para despreciar los dos valores más altos tan sólo habría que sustituir el -1 por -2, etc.

Para obtener el promedio despreciando la nota más baja, habría que usar la función

Page 20: FÓRMULAS VARIAS (EXCEL 2007)

K.ESIMO.MAYOR, o sea:{=PROMEDIO(K.ESIMO.MAYOR(Notas;FILA(INDIRECTO("1:"&FILAS(Notas)-1))))} Si se deseara el promedio sin tener en cuenta TODAS las apariciones de la nota más baja, la fórmula sería:{=PROMEDIO(K.ESIMO.MAYOR(Notas;FILA(INDIRECTO("1:"&FILAS(Notas)-CONTAR.SI(Notas;MIN(Notas))))))} Para obtener el promedio sin tener en cuentas TODAS las apariciones de la nota más alta:{=PROMEDIO(K.ESIMO.MENOR(Notas;FILA(INDIRECTO("1:"&FILAS(Notas)-CONTAR.SI(Notas;MAX(Notas))))))} 

Si el rango con nombre fuera una fila en lugar de una columna, habría que sustituir en la fórmula FILAS por COLUMNAS. Para averiguar el promedio del rango con nombre Notas despreciando tanto todos los valores menores como todos los mayores, la fórmula sería: {=PROMEDIO(SI(NO((Notas=MIN(Notas))+(Notas=MAX(Notas)));Notas;""))}  Averiguar la/s letra/s de una columna  [Ejemplo]Esta fórmula devuelve la letra de la columna de la celda A1:=SUSTITUIR(IZQUIERDA(CELDA("direccion";A1);ENCONTRAR("$";CELDA("direccion";A1);2)-1);"$";"")  Averiguar a qué bimestre, trimestre, cuatrimestre o semestre pertenece una fecha  [Ejemplo]Suponiendo que la fecha estuviera en A1, la fórmula para el bimestre sería:=REDONDEAR.MAS(MES(A1)/2;0) - para el trimestre, habría que sustituir /2 por /3 - para el cuatrimestre, /2 por /4 - y para el semestre, /2 por /6.  Obtener la cantidad de domingos (o cualquier otro día de la semana) que hay entre dos fechas  [Ejemplo]Suponiendo que en A1 hay una fecha y en A2 otra fecha, mayor que la de A1, la siguiente fórmula devolverá el número de domingos que hay entre ambas:=ENTERO((B1-DIASEM(B1)-A1+8)/7)para saber la cantidad de lunes, la fórmula sería:=ENTERO((B1-DIASEM(B1-1)-A1+8)/7)

Sustituyendo -1 por -2, -3... -6 se obtendría el número de martes, miércoles... sábados.  Fórmula para saber si un número es o no primo  [Ejemplo]Suponiendo que el número estuviera en A1:{=A1&ELEGIR(N((SUMA(--(MULTIPLO.INFERIOR(A1;FILA(INDIRECTO("1:"&ENTERO(RAIZ(A1+1)))))=A1))>1))+1;" sí";" no") & " es un número primo."} Se podría usar la siguiente fórmula en un Formato Concidional para que las celdas que contengan un número primo se destaquen como se haya establecido en el propio Formato Condicional:=SUMA(--(MULTIPLO.INFERIOR(A1;FILA(INDIRECTO("1:"&ENTERO(RAIZ(A1)))))=A1))=1  

Page 21: FÓRMULAS VARIAS (EXCEL 2007)

Notas: el número más alto que puede procesar esta fórmula (en Excel 2003) es el

4.295.098.367. En las versiones posteriores es el 1.099.513.724.928, pero el procesamiento de un número tan grande podría llevar bastante tiempo

aplicada al número 1, la fórmula dirá que es primo, pero no lo es conviene no usar muchas veces esta fórmula en el mismo libro, dado que si los

números a procesar son muy grandes tendrá que hacer muchos cálculos la función RAIZ ha cambiado de nombre en la versión 2010 de Excel: ahora se llama

RCUAD usando esta función VBA es posible averiguar si un número es primo hasta el

922.337.203.685.477 

 Fórmula para obtener el reverso de un número entero  [Ejemplo]Si, por ejemplo, en la celda A1 está el número 12345, la siguiente fórmula devolverá su reverso (54321):{=SUMA(EXTRAE(ABS(A1);FILA(INDIRECTO("1:"&LARGO(ABS(A1))));1)*10^(FILA(INDIRECTO("1:"&LARGO(ABS(A1))))-1))*SIGNO(A1)}Lo mismo hace:=SUMAPRODUCTO(EXTRAE(ABS(A1);FILA(INDIRECTO("1:"&LARGO(ABS(A1))));1)*10^(FILA(INDIRECTO("1:"&LARGO(ABS(A1))))-1))*SIGNO(A1) Usando esta fórmula también es posible saber si el número situado en A1 es o no capicúa:{=A1&ELEGIR(--(SUMA(EXTRAE(ABS(A1);FILA(INDIRECTO("1:"&LARGO(ABS(A1))));1)*10^(FILA(INDIRECTO("1:"&LARGO(ABS(A1))))-1))*SIGNO(A1)=A1)+1;" no";" sí")&" es capicúa."} Nota: El máximo de dígitos que puede tener el número es 15, es decir los mismos que la precisión numérica de Excel.  Averiguar si una palabra o frase es un palíndromo  [Ejemplo]La siguiente fórmula devuelve VERDADERO si la palabra en A2 es un palíndromo (se lee igual en ambos sentidos) y FALSO si no lo es:{=Y(EXTRAE(A2;FILA(INDIRECTO("1:"&ENTERO(LARGO(A2)/2)));1)=EXTRAE(A2;LARGO(A2)-FILA(INDIRECTO("1:"&ENTERO(LARGO(A2)/2)))+1;1))} Esta otra sirve para procesar una frase en lugar de una palabra:{=Y(EXTRAE(SUSTITUIR(A2;" ";"");FILA(INDIRECTO("1:"&ENTERO(LARGO(SUSTITUIR(A2;" ";""))/2)));1)=EXTRAE(SUSTITUIR(A2;" ";"");LARGO(SUSTITUIR(A2;" ";""))-FILA(INDIRECTO("1:"&ENTERO(LARGO(SUSTITUIR(A2;" ";""))/2)))+1;1))} Se podrían acortar un poco las fórmulas, pero en este caso tendrían que evaluar todas las letras de la palabra o de la frase, mientras que las dos fórmulas anteriores necesitan evaluar tan sólo la mitad: {=Y(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)=EXTRAE(A1;LARGO(A1)+1-FILA(INDIRECTO("1:"&LARGO(A1)));1))} {=Y(EXTRAE(SUSTITUIR(A1;" ";"");FILA(INDIRECTO("1:"&LARGO(SUSTITUIR(A1;" ";""))));1)=EXTRAE(SUSTITUIR(A1;" ";"");LARGO(SUSTITUIR(A1;" ";""))+1-FILA(INDIRECTO("1:"&LARGO(SUSTITUIR(A1;" ";""))));1))) Nota: en principio da igual si las letras están en mayúsculas o minúsculas, pero lo que no puede haber son signos de puntuación ni acentos.  Averiguar el valor decimal de un número binario  [Ejemplo]

Page 22: FÓRMULAS VARIAS (EXCEL 2007)

Excel dispone del complemento Herramientas para Análisis, que incluye una función para realizar este cálculo, pero en cualquier caso se puede usar la siguiente fórmula para hallar el valor decimal del número binario situado en A1: {=SUMA(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)*2^(LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))))}Lo mismo hace:=SUMAPRODUCTO(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1)*2^(LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1))))) Debido a la precisión numérica de Excel (15 dígitos), si la celda donde está el número binario tiene formato numérico, éste no podrá ser mayor de 15 unos (32.767 en decimal), mientras que si la celda está formateada como texto el número binario no podrá ser mayor de 49 unos (562.949.953.421.311 en decimal) Nota: Esta misma fórmula sirve para averiguar el valor decimal de un numero en las bases 3 a 9. Lo único que hay que hacer es sustituir el 2 de la fórmula (en la expresión *2^) por la base en la que se encuentre el número a convertir.  Averiguar el valor binario de un número decimal  [Ejemplo] NOTA: se aconseja consultar é ste artículo sobre la conversión desde base 10 (decimal) a cualquiera de las bases 2 a 9. Excel dispone del complemento Herramientas para Análisis, que incluye una función para realizar este cálculo, pero en cualquier caso se puede usar la siguiente fórmula para hallar el valor binario de un número decimal situado en A1:{=SUMA(RESIDUO(ENTERO(A1/2^((FILA(INDIRECTO("1:"&ENTERO(LOG(A1;2))+1)))-1));2)*10^(FILA(INDIRECTO("1:"&ENTERO(LOG(A1;2))+1))-1))}Lo mismo hace:=SUMAPRODUCTO(RESIDUO(ENTERO(A1/2^((FILA(INDIRECTO("1:"&ENTERO(LOG(A1;2))+1)))-1));2)*10^(FILA(INDIRECTO("1:"&ENTERO(LOG(A1;2))+1))-1)) Notas:

La celda donde esté la fórmula tiene que tener formato numérico, preferentemente con cero posiciones decimales y sin separador de miles.

Debido a la precisión numérica de Excel (15 dígitos), el número decimal más alto que puede devolver esta fórmula es el 32.768, que en binario es 1000000000000000 (un uno seguido de 15 ceros).

Hay que tener en cuenta que aunque el número devuelto por la fórmula "parezca" binario, en realidad Excel lo tratará como decimal si se intenta hacer cualquier cálculo con él.

La fórmula no generará un error si ha de procesar números negativos o mayores de 32.768, pero los resultados podran no ser correctos.

Esta misma fórmula (con las modificaciones necesarias) puede devolver números en las bases 3 a 9. En el libro de ejemplo de esta función se pueden ver dichas fórmulas, así como sus limitaciones.

En Excel 2010 la función RESIDUO habría que cambiarla por RESTO.  Averiguar el valor decimal de un número hexadecimal  [Ejemplo]Excel dispone del complemento Herramientas para Análisis, que incluye una función para realizar este cálculo, pero en cualquier caso se puede usar la siguiente fórmula para hallar el valor decimal de un número hexadecimal situado en A1:{=SUMA((HALLAR(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1);"0123456789abcdef")-1)*16^(LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))))}Lo mismo hace:=SUMAPRODUCTO((HALLAR(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1);"0123456789abcdef")-1)*16^(LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))))

Page 23: FÓRMULAS VARIAS (EXCEL 2007)

 Debido a la precisión numérica de Excel (15 dígitos), el hexadecimal más alto que puede devolver esta fórmula con garantías es 38D7EA4C68000 (un uno seguido de 15 ceros en decimal). Nota: esta misma fórmula se puede usar (con las necesarias modificaciones) para averiguar el valor decimal de un número en otras bases que requieran más de los 10 símbolos numéricos del sistema decimal. Por ejemplo, para hallar el valor decimal de un número en base 15, la fórmula sería:{=SUMA((HALLAR(EXTRAE(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1);"0123456789abcde")-1)*15^(LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))))} Las modificaciones con respecto a la fórmula hexadecimal -> decimal han sido tan sólo dos:1) Se ha eliminado la f (en "0123456789abcdef")2) Se ha sustituido el 16 (en *16^) por 15  Ley de BenfordSi se desea conocer el cumplimiento (o incumplimiento) de una serie de datos llamada Datos de la Ley de Benford, la fórmula para el 1 sería:{=(SUMA(--(IZQUIERDA(ABS(Datos);1)="1"))/FILAS(Datos))-LOG(1+1/1)}

para el 2:{=(SUMA(--(IZQUIERDA(ABS(Datos);1)="2"))/FILAS(Datos))-LOG(1+1/2)}

Para el resto de números, tan sólo habría que sustituir los dos doses de esta ultima fórmula por el número que se deseara. Con unas pequeñas modificaciones es posible conseguir que la fórmula funcione para los n primeros dígitos, donde n lo determinará el número de fila de la celda en la que se encuentre la fórmula:{=(SUMA(--(IZQUIERDA(ABS(Datos);LARGO(FILA()))*1=FILA()))/FILAS(Datos))-LOG(1+1/FILA())} Notas:

Si se sabe con toda seguridad que no hay valores negativos en el rango Datos, es posible sustituir ABS(Datos) por Datos, con lo que se ganará algo de rendimiento.

Dado que la ley de Benford sólo se aplica a series de datos grandes (normalmente, miles), me permito recomendar prudencia en cuanto al número de veces que se usen estas fórmulas en un mismo libro de Excel, puesto que en situaciones reales lo normal será que tengan que hacer muchísimos cálculos. 

 Saber la cantidad de números pares y/o impares que hay en un rangoSuponiendo que en el rango A1:A10 hay una serie de números enteros y que se desea averiguar cuantos de ellos son pares y cuantos impares, las fórmulas serían:=SUMAPRODUCTO(--NO(RESIDUO(A1:A10;2))) para los paresy:=SUMAPRODUCTO(RESIDUO(A1:A10;2)) para los impares Nota: se entiende que en el rango A1:A10 hay sólo números enteros. Si hubiera celdas vacías, fechas, números con decimales, cadenas de texto, etc., las fórmulas podrían dar como resultado un error o no devolver el resultado correcto. Sumar los números pares o impares de un rangoSuponiendo que en el rango A1:A10 hay una serie de números enteros y que se desa averiguar la suma de los pares y/o la suma de los impares, las fórmulas serían:=SUMAPRODUCTO(NO(RESIDUO(A1:A10;2))*A1:A10) para los paresy:=SUMAPRODUCTO(RESIDUO(A1:A10;2)*A1:A10) para los impares

Page 24: FÓRMULAS VARIAS (EXCEL 2007)

 Nota: se entiende que en el rango A1:A10 hay sólo números enteros. Si hubiera celdas vacías, fechas, números con decimales, cadenas de texto, etc., las fórmulas podrían dar como resultado un error o no devolver el resultado correcto.  Averiguar un número de la serie FibonacciLa siguiente fórmula devuelve el número 50 de la serie Fibonacci:=((((1+RAIZ(5))/2)^50)-(-((1+RAIZ(5))/2)^-50))/RAIZ(5) Lógicamente, es posible averiguar cualquier otro sustituyendo los dos 50 de la fórmula por el número que se desee; pero hay que tener en cuenta que, debido a la precisión numérica de Excel (15 dígitos), el máximo número que la fórmula devolverá correctamente es el 73º de la serie. Usando una UDF que utilice el tipo de datos Decimal para hacer los cálculos es posible averiguar hasta el Fibonacci 139 (29 dígitos). En este libro de ejemplo hay un ejemplo de la función, junto con algunas otras que hacen uso de este tipo de datos (artículo sobre el tema). En esta página hay varias funciones para trabajar en Excel con enteros grandes, sirviendo una de ellas para hallar números de la serie Fibonacci más allá del 139 (en las pruebas he llegado hasta el 9999 de la serie). La siguiente fórmula devuelve VERDADERO si el número situado en A1 pertenece a la serie Fibonacci y FALSO en caso contrario. Hay que tener en cuenta que, debido a la precisión numérica de Excel, sólo funciona hasta el número 73º de la serie (el 806.515.533.049.393):{=NO(ESERROR(COINCIDIR(TEXTO($A$1;"0");TEXTO(((((1+RAIZ(5))/2)^FILA(INDIRECTO("2:73")))-(-((1+RAIZ(5))/2)^-FILA(INDIRECTO("2:73"))))/RAIZ(5);0);"0")))}  [Ejemplo para las tres fórmulas que vienen a continuación]Averiguar la cantidad de divisores de un número entero positivo y obtener una lista de los mismosLa siguiente fórmula devuelve la cantidad de divisores del número entero positivo situado en A1:{=SUMA(--((MULTIPLO.INFERIOR(A1;FILA(INDIRECTO("1:"&ENTERO(A1/2))))=A1)))} Es posible obtener un listado de dichos divisores poniendo la siguiente fórmula en la fila 1 de cualquier columna:{=K.ESIMO.MAYOR(((MULTIPLO.INFERIOR(A1;FILA(INDIRECTO("1:"&ENTERO(A1/2))))=A1)*FILA(INDIRECTO("1:"&ENTERO(A1/2))));FILA())}y copiándola hacia abajo hasta igualar el número de divisores del número (el resultado de la primera fórmula). La fórmula no considera el número que procesa como divisor de sí mismo, aunque lógicamente lo es.   Averiguar la suma de los divisores de un número entero positivoLa siguiente fórmula devuelve la suma de los divisores del número entero positivo situado en A1:{=SUMA((MULTIPLO.INFERIOR(A1;FILA(INDIRECTO("1:"&ENTERO(A1/2))))=A1)*FILA(INDIRECTO("1:"&ENTERO(A1/2))))} La fórmula no considera el número que procesa como divisor de sí mismo, aunque lógicamente lo es. Averiguar si un número entero positivo es Defectivo, Perfecto o AbundanteLa siguiente fórmula dirá qué tipo de número es el situado en A1:

Page 25: FÓRMULAS VARIAS (EXCEL 2007)

{=ELEGIR(SIGNO(SUMA((MULTIPLO.INFERIOR(A1;FILA(INDIRECTO("1:"&ENTERO(A1/2))))=A1)*FILA(INDIRECTO("1:"&ENTERO(A1/2))))-A1)+2;"Defectivo";"Perfecto";"Abundante")} El número más alto que pueden procesar estas fórmulas en Excel 2003 es el 131.073. En Excel 2007 y 2010 es el 2.097.153, pero los cálculos necesarios para números tan grandes pueden llevar bastante tiempo. Nota: en esta página hay funciones VBA que pueden hacer los tres cálculos anteriores hasta el máximo del tipo de datos Currency de VBA (922.337.203.685.477)   OTRAS FORMULAS PARA EXCEL:1)

Necesito hacer una formula para calcular aumento de sueldos que lleva mas de 7 niveles de decisiones logicas (IF), pero Excel dice que no puedo anidar mas de 7 niveles en una misma celda? alguna sugerencia?ejemplo:

=SI(Y(G16<=100,G16>=96),(F16*$K$3),SI(Y(G16<=95,G1 6>=91),(F16*$K$4),SI(Y(G16<=90,G16>=86),(F16*$K$5) ,SI(Y(G16<=85,G16>=81),(F16*$K$6),SI(Y(G16<=80,G16 >=76),(F16*$K$7),SI(Y(G16<=75,G16>=70),(F16*$K$8), 0))))))

pero necesito anidar mas decisiones!

saludos

es más sencillo creando una funcion , te puede servir algo asi....

Function aumento_sueldo(sueldo As Double) As DoubleSelect Case sueldoCase 96 To 100sueldofinal = sueldo * Range("k3")Case 91 To 95sueldofinal = sueldo * Range("k4")Case 86 To 90sueldofinal = sueldo * Range("k5")Case 81 To 85sueldofinal = sueldo * Range("k6")Case 76 To 80sueldofinal = sueldo * Range("k7")Case 71 To 75sueldofinal = sueldo * Range("k8")Case 66 To 70sueldofinal = sueldo * Range("k9")Case 61 To 65sueldofinal = sueldo * Range("k10")End Selectaumento_sueldo = sueldofinalEnd Function

solo tienes que poner los valores correspondientes en la columna K

2)

En algunos casos, puede que deba utilizar una función como uno de los argumentos (argumento: valores que utiliza una función para llevar a cabo operaciones o cálculos. El tipo de argumento que utiliza una función es específico de esa función. Los argumentos más comunes que se utilizan en las funciones son números, texto, referencias de celda y nombres.) de otra función. Por ejemplo, la siguiente fórmula utiliza una función anidada PROMEDIO y compara el resultado con el valor 50.

Page 26: FÓRMULAS VARIAS (EXCEL 2007)

Resultados válidos       Cuando se utiliza una función anidada como argumento, deberá devolver el mismo tipo de valor que el que utilice el argumento. Por ejemplo, si el argumento devuelve un valor VERDADERO o FALSO, la función anidada deberá devolver VERDADERO o FALSO. Si éste no es el caso, Microsoft Excel mostrará el valor de error #¡VALOR!

Límites del nivel de anidamiento       Una fórmula puede contener como máximo siete niveles de funciones anidadas. Si la Función B se utiliza como argumento de la Función A, la Función B es una función de segundo nivel. Por ejemplo, la función PROMEDIO y la función SUMA son ambas funciones de segundo nivel porque son argumentos de la función SI. Una función anidada dentro de la función PROMEDIO será una función de tercer nivel, etc.

Supongamos que desea convertir un texto de mayúscula a minúscula o de minúscula al formato de nombre propio (título o nombre) para que sea más legible. Para cambiar de mayúscula a minúscula o viceversa, use las funciones MAYUSC, MINUSC o NOMPROPIO tal como se muestra en el siguiente ejemplo.

3)

El ejemplo será más fácil de entender si lo copia a una hoja de cálculo en blanco.

¿Cómo se copia un ejemplo?

1.

 

1

2

3

4

5

6

A B

Nombre

Cecilia Cornejo

Fórmula Descripción (resultado)

=MAYUSC(A2) Cambia el texto a todo MAYÚSCULAS (CECILIA CORNEJO)

=MINUSC(A2) Cambia el texto a todo minúsculas (cecilia cornejo)

=NOMPROPIO(A2)Cambia el texto al tipo título (Natalia Domínguez)

 NOTA    Por lo general, puede usar estas funciones para cambiar el tipo de texto de las celdas, de una en una. Para cambiar el uso de mayúsculas y minúsculas del texto de un rango de celdas, puede usar estas funciones en una fórmula de matriz (fórmula de matriz: fórmula que lleva a cabo varios cálculos en uno o más conjuntos de valores y devuelve un único resultado o varios resultados. Las fórmulas de matriz se encierran entre llaves { } y se especifican presionando CTRL+MAYÚS+ENTRAR.). Por ejemplo, para convertir el texto en las celdas A1:A3 todo en mayúscula, seleccione las celdas B1:B3, escriba la fórmula =MAYUSC(A1:A3) y presione CTRL+MAYÚS+ENTRAR para convertir la fórmula en una fórmula de matriz. Los resultados aparecen en las celdas B1:B3 completamente en mayúsculas.Para obtener más información, vea Directrices y ejemplos de fórmulas de matriz.

Page 27: FÓRMULAS VARIAS (EXCEL 2007)

Detalles de la función

Función MAYUSC    Convierte el texto en mayúscula.

Sintaxis

MAYUSC(texto)

El argumento "text" (entre paréntesis) hace referencia al texto que desea convertir a mayúscula. MAYUSC no cambia los caracteres del texto que no sean letras.

Función MINUSC    Convierte todas las letras en mayúscula en una cadena de texto a minúscula.

Sintaxis

MINUSC(texto)

El argumento "text" (entre paréntesis) hace referencia al texto que desea convertir a minúscula. MINUSC no cambia los caracteres del texto que no sean letras.

Función NOMPROPIO    Aplica mayúscula a la primera letra en una cadena de texto y en cualquier otra letra en el texto que esté después de cualquier carácter que no sea una letra. Convierte todas las demás letras a letras minúsculas.

Sintaxis

NOMPROPIO(texto)

El argumento "text" (entre paréntesis) hace referencia al texto encerrado entre comillas, una fórmula que devuelve texto o una referencia a una celda que contiene el texto al cual desea aplicar mayúscula de forma parcial.

Para obtener más información sobre el uso de estas funciones, vea los temas sobre las funciones MAYUSC   , MINUSC   y NOMPROPIO.En este artículo, se describen la sintaxis de la fórmula y el uso de la función (función: fórmula ya escrita que toma un valor o valores, realiza una operación y devuelve un valor o valores. Utilice funciones para simplificar y acortar fórmulas en una hoja de cálculo, especialmente aquellas que llevan a cabo cálculos prolongados o complejos.) CONSULTAV en Microsoft Excel.

4)

Puede usar la función CONSULTAV para buscar la primera columna de un rango (rango: dos o más celdas de una hoja. Las celdas de un rango pueden ser adyacentes o no adyacentes.) de celdas y, a continuación, devolver un valor de cualquier celda de la misma fila del rango. Por ejemplo, si tiene una lista de empleados contenida en el rango A2:C10, los números de identificación de los empleados se almacenan en la primera columna del rango, como muestra la siguiente ilustración.

Si conoce el número de identificación del empleado, puede usar la función CONSULTAV para devolver el departamento o el nombre de dicho empleado. Para obtener el nombre del empleado número 38, puede usar la fórmula =CONSULTAV(38; A2:C10; 3; FALSO). Esta fórmula busca el valor 38 en la primera columna del

Page 28: FÓRMULAS VARIAS (EXCEL 2007)

rango A2:C10 y, a continuación, devuelve el valor contenido en la tercera columna del rango y en la misma fila que el valor de búsqueda ("Juan Carlos Rivas").

La V de CONSULTAV significa vertical. Use CONSULTAV en lugar de CONSULTAH si los valores de comparación se encuentran en una columna situada a la izquierda de los datos que desea buscar.

SintaxisCONSULTAV(valor_buscado; lookup_value, matriz_buscar_en; indicador_columnas; [ordenado])La sintaxis de la función CONSULTAV tiene los siguientes argumentos (argumento: valor que proporciona información a una acción, un evento, un método, una propiedad, una función o un procedimiento.):

valor_buscado    Obligatorio. Valor que se va a buscar en la primera columna de la tabla o rango. El argumento valor_buscado puede ser un valor o una referencia. Si el valor que proporcione para el argumento valor_buscado es inferior al menor valor de la primera columna del argumento matriz_buscar_en, CONSULTAV devuelve al valor de error #N/A.

matriz_buscar_en    Obligatorio. El rango de celdas que contiene los datos. Puede usar una referencia a un rango (por ejemplo, A2:D8) o un nombre de rango. Los valores de la primera columna de matriz_buscar_en son los valores que busca valor_buscado. Estos valores pueden ser texto, números o valores lógicos. Las mayúsculas y minúsculas del texto son equivalentes.

indicador_columnas    Obligatorio. Un número de columna del argumento matriz_buscar_en desde la cual debe devolverse el valor coincidente. Si el argumento indicador_columnas es igual a 1, la función devuelve el valor de la primera columna del argumento matriz_buscar_en; si el argumento indicador_columnas es igual a 2, devuelve el valor de la segunda columna de matriz_buscar_en y así sucesivamente.

Si el argumento indicador_columnas es:

Inferior a 1, CONSULTAV devuelve al valor de error #¡VALOR!. Superior al número de columnas de matriz_buscar_en, CONSULTAV devuelve el valor de error #¡REF!.

ordenado    Opcional. Un valor lógico que especifica si CONSULTAV va a buscar una coincidencia exacta o aproximada:

Si ordenado se omite o es VERDADERO, se devolverá una coincidencia exacta o aproximada. Si no encuentra ninguna coincidencia exacta, devolverá el siguiente valor más alto inferior a valor_buscado.

 IMPORTANTE    Si ordenado se omite o es VERDADERO, los valores de la primera columna de matriz_buscar_en deben estar clasificados según un criterio de ordenación ascendente; en caso contrario, es posible que CONSULTAV no devuelva el valor correcto.Para obtener más información, vea Ordenar datos en un rango o tabla.

Si ordenado es FALSO, no es necesario ordenar los valores de la primera columna de matriz_buscar_en.

Si el argumento ordenado es FALSO, CONSULTAV sólo buscará una coincidencia exacta. Si hay dos o más valores en la primera columna de matriz_buscar_en que coinciden con el argumento valor_búsqueda, se usará el primer valor encontrado. Si no se encuentra una coincidencia exacta, se devolverá el valor de error #N/A.

Observaciones

Al buscar valores de texto en la primera columna de matriz_buscar_en, asegúrese de que los datos de la primera columna de matriz_buscar_en no tienen espacios al principio ni al final, de que no hay un uso incoherente de las comillas rectas ( ' o " ) ni tipográficas ( ‘ o “) y de que no hay caracteres no imprimibles. En estos casos, CONSULTAV puede devolver un valor inesperado o incorrecto.

Para obtener más información, vea Función LIMPIAR y Función RECORTAR.

Al buscar valores de fechas o números, asegúrese de que los datos de la primera columna de matriz_buscar_en no se almacenen como valores de texto, ya que, en ese caso, CONSULTAV puede devolver un valor incorrecto o inesperado.

Si ordenado es FALSO y valor_buscado es un valor de texto, se pueden usar los caracteres comodín de signo de interrogación (?) y asterisco (*) en el argumento valor_buscado. El signo de interrogación corresponde a un solo carácter cualquiera y el asterisco equivale a cualquier secuencia de caracteres. Si lo que desea buscar es un signo de interrogación o un asterisco, escriba una tilde (~) antes del carácter.

Page 29: FÓRMULAS VARIAS (EXCEL 2007)

Ejemplo

Ejemplo 1

En este ejemplo, se busca en la columna Densidad de una tabla de propiedades atmosféricas los valores correspondientes de las columnas Viscosidad y Temperatura (los valores se refieren a aire a 0 grados Celsius al nivel del mar, o 1 atmósfera).

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

1.

 

1

2

3

4

5

6

7

8

9

10

11

12

A B C

Densidad Viscosidad Temperatura 

0,457 3,55 500

0,525 3,25 400

0,606 2,93 300

0,675 2,75 250

0,746 2,57 200

0,835 2,38 150

0,946 2,17 100

1,09 1,95 50

1,29 1,71 0

Fórmula Descripción Resultado

=CONSULTAV(1;A2:C10;2) Usando una coincidencia aproximada, busca el valor 1 en la columna A, busca el mayor de los valores que sea inferior o igual a 1 en la columna A, que es 0,946, y después devuelve el valor de la columna B en la misma fila.

2,17

Page 30: FÓRMULAS VARIAS (EXCEL 2007)

13

14

15

16

=CONSULTAV(1;A2:C10;3;VERDADERO) Usando una coincidencia aproximada, busca el valor 1 en la columna A, busca el mayor de los valores que sea inferior o igual a 1 en la columna A, que es 0,946, y después devuelve el valor de la columna C en la misma fila.

100

=CONSULTAV(0,7;A2:C10;3;FALSO) Usando una coincidencia exacta, busca el valor 0,7 en la columna A. Como en la columna A no hay ninguna coincidencia exacta, devuelve un error.

#N/A

=CONSULTAV(0,1;A2:C10;2;VERDADERO)Usando una coincidencia aproximada, busca el valor 0,1 en la columna A. Como 0,1 es inferior al menor de los valores de la columna A, devuelve un error.

#N/A

=CONSULTAV(2;A2:C10;2;VERDADERO) Usando una coincidencia aproximada, busca el valor 2 en la columna A, busca el mayor de los valores que sea inferior o igual a 2 en la columna A, que es 1,29, y después devuelve el valor de la columna B en la misma fila.

1,71

 NOTA    En Excel Web App, para ver el resultado en el formado adecuado, seleccione la celda y, a continuación, en el grupo Número de la pestaña Inicio, haga clic en la flecha que aparece junto a Formato de número y haga clic en General.

Ejemplo 2

En este ejemplo, se buscan valores en la columna Id. de artículo de una tabla de productos para bebés y se les asignan los valores correspondientes de las columnas Costo y Marcas para calcular los precios y las condiciones de prueba.

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

1.

 

1

2

3

A B C D

Id. de artículo Elemento Costo Marcas

ST-340 Cochecito 145,67 $ 30%

BI-567 Babero 3,56 $ 40%

Page 31: FÓRMULAS VARIAS (EXCEL 2007)

4

5

6

7

8

9

10

11

DI-328 Pañales 21,45 $ 35%

WI-989 Toallitas 5,12 $ 40%

AS-469 Aspirador 2,56 $ 45%

Fórmula Descripción Resultado

= CONSULTAV("DI-328"; A2:D6; 3; FALSO) * (1 + CONSULTAV("DI-328"; A2:D6; 4; FALSO))

Calcula el precio minorista de los pañales agregando el porcentaje marcado al costo.

28,96 $

= (CONSULTAV("WI-989"; A2:D6; 3; FALSO) * (1 + CONSULTAV("WI-989"; A2:D6; 4; FALSO))) * (1 - 20%)

Calcula el precio de venta de las toallitas restando un descuento especificado al precio minorista.

5,73 $

= SI(CONSULTAV(A2; A2:D6; 3; FALSO) >= 20; "La marca es " & 100 * CONSULTAV(A2; A2:D6; 4; FALSO) &"%", "El costo es inferior a 20,00 $")

Si el costo de un artículo es superior o igual a 20,00 $, muestra la cadena "La marca es nn%"; en caso contrario, muestra "El costo es inferior a 20,00 $".

La marca es 30%

= SI(CONSULTAV(A3; A2:D6; 3; FALSO) >= 20; "La marca es: " & 100 * CONSULTAV(A3; A2:D6; 4; FALSO) &"%"; "El costo es $" & CONSULTAV(A3; A2:D6; 3; FALSO))

Si el costo de un artículo es superior o igual a 20,00 $, muestra la cadena "La marca es nn%"; en caso contrario, muestra el costo "El costo es n.nn $".

El costo es 3,56 $

 NOTA    En Excel Web App, para ver el resultado en el formado adecuado, seleccione la celda y, a continuación, en el grupo Número de la pestaña Inicio, haga clic en la flecha que aparece junto a Formato de número y haga clic en General.

Ejemplo 3

En este ejemplo, se busca en la columna Id. de una tabla de empleados y se buscan los valores coincidentes de otras columnas para calcular las edades y probar las condiciones de error.

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

1.

Page 32: FÓRMULAS VARIAS (EXCEL 2007)

 

1

2

3

4

5

6

7

8

9

A B C D E

Id. Apellidos Nombre Puesto Fecha nacimiento

1 Cornejo Cecilia Rep. de ventas 8 de diciembre de 1968

2 López Arturo Vicepresidente de ventas

19 de febrero de 1952

3 González Nuria Rep. de ventas30 de agosto de 1963

4 Escolar Jesús Rep. de ventas19 de septiembre de 1958

5 Navarro Tomás Jefe de ventas 4 de marzo de 1955

6 Gil Enrique Rep. de ventas 2 de julio de 1963

Fórmula Descripción Resultado

=ENTERO(FRAC.AÑO(FECHA(2004;6;30); CONSULTAV(5;A2:E7;5; FALSO); 1))

Para el año fiscal 2004, busca la edad de un empleado cuya id. es 5. Usa la función FRAC.AÑO para restar la fecha de nacimiento de la fecha final del año fiscal y muestra el resultado como un entero usando la función ENTERO.

49

Page 33: FÓRMULAS VARIAS (EXCEL 2007)

10

11

12

=SI(ESNOD(CONSULTAV(5;A2:E7;2;FALSO)) = VERDADERO; "Empleado no encontrado"; CONSULTAV(5;A2:E7;2;FALSO))

Si hay un empleado cuya id. es 5, muestra sus apellidos; en el caso contrario, muestra el mensaje "Empleado no encontrado".La función ESNOD devuelve el valor VERDADERO si la función CONSULTAV devuelve el valor de error #NA.

Navarro

=SI(ESNOD(CONSULTAV(15;A3:E8;2;FALSO)) = VERDADERO; "Empleado no encontrado"; CONSULTAV(15;A3:E8;2;FALSO))

Si hay un empleado cuya id. es 15, muestra sus apellidos; en el caso contrario, muestra el mensaje "Empleado no encontrado".

La función ESNOD devuelve el valor VERDADERO si la función CONSULTAV devuelve el valor de error #NA.

Empleado no encontrado

=CONSULTAV(4;A2:E7;3;FALSO) & " " & CONSULTAV(4;A2:E7;2;FALSO) & " es un " & CONSULTAV(4;A2:E7;4;FALSO)

Para un empleado cuya id. es 4, concatena los valores de tres celdas para formar una frase completa.

Jesús Escolar es un representante de ventas.

 NOTA    En Excel Web App, para ver el resultado en el formado adecuado, seleccione la celda y, a continuación, en el grupo Número de la pestaña Inicio, haga clic en la flecha que aparece junto a Formato de número y haga clic en General.

Page 34: FÓRMULAS VARIAS (EXCEL 2007)

En este artículo se describen la sintaxis de la fórmula y el uso de la función (función: fórmula ya escrita que toma un valor o valores, realiza una operación y devuelve un valor o valores. Utilice funciones para simplificar y acortar fórmulas en una hoja de cálculo, especialmente aquellas que llevan a cabo cálculos prolongados o complejos.) BUSCAR en Microsoft Excel.

DescripciónLa función BUSCAR devuelve un valor de un rango (rango: dos o más celdas de una hoja. Las celdas de un rango pueden ser adyacentes o no adyacentes.) de una fila o una columna o de una matriz (matriz: utilizada para crear fórmulas sencillas que producen varios resultados o que funcionan en un grupo de argumentos que se organizan en filas y columnas. Un rango de matriz comparte una fórmula común; una constante de matriz es un grupo de constantes utilizadas como un argumento.). La función BUSCAR tiene dos formas de sintaxis: la forma vectorial y la matricial.

SI DESEA VEA USO

Buscar en un rango de una fila o una columna (denominado vector) un valor y devolver un valor desde la misma posición en un segundo rango.

Forma vectorial

Use la forma vectorial cuando disponga de una amplia lista de valores en los que buscar o cuando es posible que los valores cambien con el tiempo.

Buscar el valor especificado en la primera fila o columna de una matriz y devolver un valor desde la misma posición en la última fila o columna de la matriz.

Forma matricial

Use esta forma cuando disponga de una pequeña lista de valores y éstos permanezcan siempre constantes.

 NOTAS 

También se puede usar la función BUSCAR como alternativa para la función SI para crear pruebas o pruebas que excedan el límite de funciones anidadas. Vea los ejemplos de la forma matricial.

Para que la función BUSCAR funcione correctamente, los datos en los que se realiza la búsqueda se deben colocar en orden ascendente. Si esto no es posible, considere la posibilidad de usar las funciones BUSCARV , BUSCARH o COINCIDIR.

Forma vectorial

Un vector es un rango de una sola fila o columna. La forma vectorial de BUSCAR busca un valor en un rango de una columna o una fila (denominado vector) y devuelve un valor desde la misma posición en un segundo rango de una columna o una fila. Use esta forma de la función BUSCAR cuando desee especificar el rango que incluya los valores que desea buscar. La otra forma de la función BUSCAR busca automáticamente en la primera columna o fila.

SintaxisBUSCAR(valor_buscado, vector_de_comparación, [vector_resultado])La sintaxis de la forma vectorial de la función BUSCAR tiene los siguientes argumentos (argumento: valor que proporciona información a una acción, un evento, un método, una propiedad, una función o un procedimiento.):

valor_buscado    Obligatorio. Valor que busca la función BUSCAR en el primer vector. Valor_buscado puede ser un número, texto, un valor lógico o un nombre de referencia que se refiere a un valor.

vector_de_comparación    Obligatorio. Rango que sólo contiene una fila o una columna. Los valores del vector_de_comparación pueden ser texto, números o valores lógicos.

Page 35: FÓRMULAS VARIAS (EXCEL 2007)

 IMPORTANTE    Los valores del vector_de_comparación se deben colocar en orden ascendente: ..., -2, -1, 0, 1, 2, ..., A-Z, FALSO, VERDADERO; de lo contrario, BUSCAR puede devolver un valor incorrecto. El texto en mayúsculas y en minúsculas es equivalente.

vector_resultado    Opcional. Rango que solo incluye una fila o una columna. El argumento vector_resultado debe tener el mismo tamaño que vector_de_comparación.

Observaciones

Si la función BUSCAR no puede encontrar el valor_buscado, la función muestra el valor más grande en vector_de_comparación que es menor o igual al valor_buscado.

Si el valor_buscado es menor que el menor valor del vector_de_comparación, BUSCAR devuelve el valor de error #N/A.

Ejemplo

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

 

1

2

3

4

5

6

7

8

9

10

A B C

Frecuencia Color

4,14 rojo

4,19 anaranjado

5,17 amarillo

5,77 verde

6,39 azul

Fórmula Descripción Resultado

=BUSCAR(4,19;A2:A6;B2:B6)Busca 4,19 en la columna A y devuelve el valor de la columna B que está en la misma fila.

anaranjado

=BUSCAR(5,00;A2:A6;B2:B6)Busca 5,00 en la columna A, encuentra el siguiente valor inferior (4,19) y devuelve el valor de la columna B que está en la misma fila.

anaranjado

=BUSCAR(7,66;A2:A6;B2:B6)Busca 7,66 en la columna A, encuentra el siguiente valor inferior (6,39) y devuelve el valor de la columna B que está en la misma fila.

azul

Page 36: FÓRMULAS VARIAS (EXCEL 2007)

11=BUSCAR(0;A2:A6;B2:B6) Busca 0 en la columna A y devuelve un error, ya que 0 es menor que el valor

más bajo del vector_de_comparación A2:A7.#N/A

VOLVER AL PRINCIPIO

Forma matricialLa forma matricial de BUSCAR busca el valor especificado en la primera fila o columna de una matriz (matriz: utilizada para crear fórmulas sencillas que producen varios resultados o que funcionan en un grupo de argumentos que se organizan en filas y columnas. Un rango de matriz comparte una fórmula común; una constante de matriz es un grupo de constantes utilizadas como un argumento.) y devuelve un valor de la misma posición en la última fila o columna de la matriz. Use esta forma de BUSCAR cuando los valores que desea buscar están en la primera fila o columna de la matriz. Use la otra forma de BUSCAR cuando desea especificar la ubicación de la columna o fila. SUGERENCIA    En general, es mejor usar las funciones BUSCARH o BUSCARV en lugar de la forma matricial de BUSCAR. Esta forma de BUSCAR se proporciona por cuestiones de compatibilidad con otros programas de hojas de cálculo.

SintaxisBUSCAR(valor_buscado; matriz)La sintaxis de la forma matricial de la función BUSCAR tiene estos argumentos (argumento: valor que proporciona información a una acción, un evento, un método, una propiedad, una función o un procedimiento.):

valor_buscado    Obligatorio. Valor que busca la función BUSCAR en una matriz. El argumento valor_buscado puede ser un número, texto, un valor lógico o un nombre de referencia que se refiere a un valor.

Si BUSCAR no puede encontrar el valor de valor_buscado, usa el mayor valor de la matriz que es menor o igual que el valor_buscado.

Si el valor de valor_buscado es menor que el menor valor de la primera fila o columna (según las dimensiones de la matriz), BUSCAR devuelve el valor de error #N/A.

matriz    Obligatorio. Rango de celdas que contiene texto, números o valores lógicos que desea comparar con valor_buscado.

La forma matricial de BUSCAR es muy similar a las funciones BUSCARH y BUSCARV. La diferencia es que BUSCARH busca el valor de valor_buscado en la primera fila, BUSCARV busca en la primera columna y BUSCAR realiza la búsqueda según las dimensiones de la matriz.

Si la matriz cubre un área que es más ancha que alta (más columnas que filas), BUSCAR busca el valor de valor_buscado en la primera fila.

Si una matriz es cuadrada o más alta que ancha (tiene más filas que columnas), BUSCAR busca en la primera columna.

Con las funciones BUSCARH y BUSCARV, puede especificar un índice en vertical o en horizontal, pero BUSCAR siempre selecciona el último valor de la fila o columna.

 IMPORTANTE    Los valores de la matriz se deben colocar en orden ascendente: ..., -2, -1, 0, 1, 2, ..., A-Z, FALSO, VERDADERO; de lo contrario, BUSCAR puede devolver un valor incorrecto. El texto en mayúsculas y en minúsculas es equivalente.

Ejemplos

Ejemplo 1

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

Seleccione el ejemplo de este artículo.

 IMPORTANTE    No seleccione los encabezados de columna o de fila.

Page 37: FÓRMULAS VARIAS (EXCEL 2007)

Seleccionar un ejemplo de la Ayuda

Presione CTRL+C. En Excel, cree una hoja de cálculo o un libro en blanco. En la hoja de cálculo, seleccione la celda A1 y presione CTRL+V.

 IMPORTANTE    Para que el ejemplo funcione correctamente, debe pegarlo en la celda A1 de la hoja de cálculo.

Para cambiar entre ver los resultados y ver las fórmulas que devuelven los resultados, presione Alt+º, o en la ficha Fórmulas, en el grupo Auditoría de fórmulas, haga clic en el botón Mostrar fórmulas.

Después de copiar el ejemplo en una hoja de cálculo en blanco, puede adaptarlo a sus necesidades.

 

1

2

3

A B C

Fórmula Descripción Resultado

=BUSCAR("C";{"a";"b";"c";"d"\1;2;3;4})Busca "C" en la primera fila de la matriz, encuentra el valor superior que es menor o igual ("c") y, a continuación, devuelve el valor en la última fila que está en la misma columna.

3

=BUSCAR("balda";{"a";1\"b";2\"c";3}) Busca "balda" en la primera fila de la matriz, encuentra el valor superior que es menor o igual ("b") y, a continuación, devuelve el valor en la última columna que está en la misma fila.

2

Ejemplo 2

En el siguiente ejemplo se usa una matriz de números para asignar una puntuación a un resultado.

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

 

1

A B C

Puntuación

Page 38: FÓRMULAS VARIAS (EXCEL 2007)

2

3

4

5

6

7

8

9

45

90

78

Fórmula Descripción Resultado

=BUSCAR(A2;{0;60;70;80;90};{"F";"D";"C";"B";"A"}) Busca el valor de A2 (45) en la primera fila de la matriz, encuentra el valor superior que es menor o igual (0) y, a continuación, devuelve el valor en la última fila de la matriz que está en la misma columna.

F

=BUSCAR(A3;{0;60;70;80;90};{"F";"D";"C";"B";"A"}) Busca el valor de A3 (90) en la primera fila de la matriz, encuentra el valor superior que es menor o igual (90) y, a continuación, devuelve el valor en la última fila de la matriz que está en la misma columna.

A

=BUSCAR(A4;{0;60;70;80;90};{"F";"D";"C";"B";"A"}) Busca el valor de A4 (78) en la primera fila de la matriz, encuentra el valor superior que es menor o igual (70) y, a continuación, devuelve el valor en la última fila de la matriz que está en la misma columna.

C

=BUSCAR(A2;{0;60;63;67;70;73;77;80;83;87;90;93;97};{"F";"D-";"D";"D+";"C-";"C";"C+";"B-";"B";"B+";"A-";"A";"A+"})

Busca el valor de A2 (45) en la primera fila de la matriz, encuentra el valor superior que es menor o igual (0) y, a continuación, devuelve el valor en la última fila de la matriz que está en la misma columna.

F

=BUSCAR(A3;{0;60;63;67;70;73;77;80;83;87;90;93;97};{"F";"D-";"D";"D+";"C-";"C";"C+";"B-";"B";"B+";"A-";"A";"A+"})

Busca el valor de A3 (90) en la primera fila de la matriz, encuentra el valor superior que es menor o igual (90) y, a

A-

Page 39: FÓRMULAS VARIAS (EXCEL 2007)

10

11

continuación, devuelve el valor en la última fila que está en la misma columna.

=BUSCAR(A4;{0;60;63;67;70;73;77;80;83;87;90;93;97};{"F";"D-";"D";"D+";"C-";"C";"C+";"B-";"B";"B+";"A-";"A";"A+"})

Busca el valor de A4 (78) en la primera fila de la matriz, encuentra el valor superior que es menor o igual (77) y, a continuación, devuelve el valor en la última fila que está en la misma columna.

C+

VOLVER AL PRINCIPIO

¿Le resultó este artículo de ayuda?

Page 40: FÓRMULAS VARIAS (EXCEL 2007)

 

Mostrar todo

En este artículo se describe la sintaxis de la fórmula y el uso de la función (función: fórmula ya escrita que

toma un valor o valores, realiza una operación y devuelve un valor o valores. Utilice funciones para simplificar y acortar fórmulas en una hoja de cálculo, especialmente aquellas que llevan a cabo cálculos prolongados o

complejos.) SUMAR.SI.CONJUNTO de Microsoft Excel.

DescripciónAgrega las celdas de un rango (rango: dos o más celdas de una hoja. Las celdas de un rango pueden ser adyacentes o no adyacentes.) que cumpla con varios criterios. Por ejemplo, si desea sumar los números del rango A1:A20 sólo si los números de B1:B20 correspondientes son mayores que cero (0) y los números de C1:C20 correspondientes son menores que 10, puede usar la siguiente fórmula:=SUMAR.SI.CONJUNTO(A1:A20; B1:B20; ">0"; C1:C20; "<10") IMPORTANTE    El orden de los argumentos es diferente entre las funciones SUMAR.SI.CONJUNTO y SUMAR.SI. Concretamente, el argumento rango_suma es el primer argumento de SUMAR.SI.CONJUNTO, pero es el tercero de SUMAR.SI. Si está copiando o editando estas funciones similares, asegúrese de poner los argumentos en el orden correcto.

SintaxisSUMAR.SI.CONJUNTO(rango_suma; rango_criterios1; criterios1; [rango_criterios2; criterios2]; ...)La sintaxis de la función SUMAR.SI.CONJUNTO tiene los siguientes argumentos (argumento: valor que proporciona información a una acción, un evento, un método, una propiedad, una función o un procedimiento.):

rango_suma    Obligatorio. Una o más celdas para sumar, incluidos números o nombres, rangos o referencias de celda (referencia de celda: conjunto de coordenadas que ocupa una celda en una hoja de cálculo. Por ejemplo, la referencia de la celda que aparece en la intersección de la columna B y la fila 3 es B3.) que contengan números. Se omiten los valores en blanco o de texto.

rango_criterios1    Obligatorio. El primer rango en el que se evalúan los criterios asociados. criterios1    Obligatorio. Los criterios en forma de número, expresión, referencia de celda o texto que define

qué celdas del argumento rango_criterios1 se agregarán. Por ejemplo, los criterios se pueden expresar como 32, ">32", B4, "manzanas" o "32".

rango_criterios2; criterios2; …    Opcional. Rangos adicionales y sus criterios asociados. Se permiten hasta 127 pares de rangos/criterios.

Observaciones

Las celdas del argumento rango_suma se suman sólo si se cumplen los criterios correspondientes especificados para esa celda. Por ejemplo, supongamos que una fórmula contiene dos argumentos rango_criterios. Si la primera celda de rango_criterios1 cumple con criterios1 y la primera celda de rango_criterios2 cumple con criterios2, se agrega la primera celda de rango_suma a la suma y así sucesivamente para todas las celdas restantes de los rangos especificados.

Las celdas del argumento rango_suma que contienen VERDADERO se evalúan como 1; las celdas de rango_suma que contienen FALSO se evalúan como 0 (cero).

A diferencia de los argumentos rango y criterios de la función SUMAR.SI, en la función SUMAR.SI.CONJUNTO, cada argumento rango_criterios debe contener el mismo número de filas y columnas que el argumento rango_suma.

Puede usar caracteres comodín como  el signo de interrogación (?) y el asterisco (*) en los criterios. Un signo de interrogación coincide con un carácter individual, un asterisco coincide con una secuencia de caracteres. Si desea buscar un signo de interrogación o un asterisco, escriba una tilde (~) antes del carácter.

Page 41: FÓRMULAS VARIAS (EXCEL 2007)

Ejemplos

Ejemplo 1

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

 

1

2

3

4

5

6

7

8

9

10

11

12

A B C

Cantidad vendida Producto Vendedor

5 Manzanas 1

4 Manzanas 2

15 Alcachofas 1

3 Alcachofas 2

22 Bananas 1

12 Bananas 2

10 Zanahorias 1

33 Zanahorias 2

Fórmula Descripción Resultado

=SUMAR.SI.CONJUNTO(A2:A9; B2:B9; "=A*"; C2:C9; 1)

Agrega la cantidad total de productos vendidos que comienzan con "A" y fueron vendidos por el vendedor 1.

20

=SUMAR.SI.CONJUNTO(A2:A9; B2:B9; "<>Bananas"; C2:C9; 1)

Agrega la cantidad total de productos (sin incluir bananas) vendidos por el vendedor 1.

30

Ejemplo 2: Agregar importes de cuentas bancarias sobre la base del interés pagado

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

Page 42: FÓRMULAS VARIAS (EXCEL 2007)

 

1

2

3

4

5

6

7

8

A B C D E

Totales Cuenta 1 Cuenta 2 Cuenta 3

Cuenta 4

Cantidad en dólares 100 390 8321 500

Interés pagado (2000) 1% 0,5% 3% 4%

Interés pagado (2001) 1% 1,3% 2,1% 2%

Interés pagado (2002) 0,5% 3% 1% 4%

Fórmula Descripción Resultado

=SUMAR.SI.CONJUNTO(B2:E2; B3:E3; ">3%"; B4:E4; ">=2%")

Importes totales de cada una de las cuentas bancarias en las que el interés era mayor que 3% para el año 2000 y mayor o igual que 2% para el año 2001.

500

=SUMAR.SI.CONJUNTO(B2:E2; B5:E5; ">=1%"; B5:E5; "<=3%"; B4:E4; ">1%")

Importes totales de cada una de las cuentas bancarias en las que el interés era entre 1% y 3% para el año 2002 y mayor que 1% para el año 2001.

8711

Ejemplo 3: Agregar las lluvias de días concretos

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

Page 43: FÓRMULAS VARIAS (EXCEL 2007)

 

1

2

3

4

5

A B C D E

Medidas diarias Primer día Segundo día

Tercer día

Cuarto día

Lluvia (pulgadas totales) 3,3 0,8 5,5 5,5

Temperatura promedio (grados) 55 39 39 57,5

Velocidad promedio del viento (millas por hora)

6,5 19,5 6 6,5

Fórmula Descripción Resultado

=SUMAR.SI.CONJUNTO(B2:E2; B3:E3; ">=40"; B4:E4; "<10")

Agrega la cantidad total de lluvia de los días en que la temperatura promedio era de al menos 40° Fahrenheit y la velocidad promedio del viento era menor de 10 millas por hora. Sólo se suman las celdas B2 y E2 porque, para cada columna (de B a E), los valores de las filas 3 y 4 deben cumplir con los criterios1 y los criterios2 respectivamente. Las celdas B3 y B4 cumplen con ambos criterios, al igual que E3 y E4. Sin embargo, C3 y C4 no cumplen con ninguno de los criterios. Por último, aunque D4 cumple con los criterios2, D3 no cumple con los criterios1.

8,8

Page 44: FÓRMULAS VARIAS (EXCEL 2007)

6

Ejemplo 4: Agregar lluvia para los períodos de mañana y tarde de días específicos

Este ejemplo se basa en los datos del Ejemplo 3 y separa la lluvia, las temperaturas promedio y la velocidad promedio del viento en dos períodos de 12 horas para cada día.

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

 

1

A B C D E

Medidas de mañana y tarde Primer día Segundo día

Tercer día

Cuarto día

a.m.: lluvia (pulgadas totales) 1,3 0 1,5 3

Page 45: FÓRMULAS VARIAS (EXCEL 2007)

2

3

4

5

6

7

8

p.m.: lluvia (pulgadas totales) 2 0,8 4 2,5

a.m.: temperatura promedio (grados) 56 44 40 38

p.m.: temperatura promedio (grados) 54 34 38 77

a.m.: velocidad promedio del viento (millas por hora)

13 6 8 1

p.m.: velocidad promedio del viento (millas por hora)

0 33 4 12

Fórmula Descripción Resultado

=SUMAR.SI.CONJUNTO(B2:E3; B4:E5; ">=40"; B6:E7; "<10")

Agrega la cantidad total de lluvias para los períodos de 12 horas en los que la temperatura promedio era de al menos 40° Fahrenheit y la velocidad promedio del viento era menor de 10 millas por hora.Sólo se suman las celdas B3, C2, y D2, ya que sus celdas correspondientes cumplen con ambos criterios. Las celdas correspondientes de B3 son B5 y B7, las celdas correspondientes de C2 son C4 y C6, y las celdas correspondientes de D2 son D4 y D6.

Como ejemplo de los datos excluidos de la operación, las celdas correspondientes de B2 (B4 y B6) no cumplen con ambos criterios; concretamente, la celda B6 se excluye porque su valor (13) es mayor que el valor del argumento criterios2 (10).

3,5

Page 46: FÓRMULAS VARIAS (EXCEL 2007)

9

Ejemplo 5: Escribir criterios como una referencia o mediante caracteres comodín

El ejemplo será más fácil de entender si lo copia en una hoja de cálculo en blanco.

¿Cómo copio un ejemplo?

Page 47: FÓRMULAS VARIAS (EXCEL 2007)

 

1

2

3

4

5

6

7

8

9

10

A B C D E F G

Casas Metros cuadrados

Dormitorios

Baños

Garaje

Año de construcción

Precio

Casa1 1200 2 1 sí 1940 $125.000

Casa2 1580 3 1,5 no 1965 $217.000

Casa3 2200 4 3 sí 2003 $376.000

Casa4 1750 3 2,5 sí 2001 $249.000

Casa5 2140 4 3 sí 1998 $199.000

=">"&DECIMAL(SUMA(1;1);0) ="sí" ="s*"

Fórmula Descripción

Resultado

=SUMAR.SI.CONJUNTO(G2:G6;C2:C6;A7;E2:E6;B7;F2:F6;">1999";F2:F6;"<2004")

Suma los precios de las casas que tengan al menos 3 dormitorios, un garaje y que tengan entre 5 y 10 años de antigüedad en el año 2009.

625000

=PROMEDIO.SI.CONJUNTO(G2:G6;C2:C6;">2";E2:E6;C7;F2:F6;">1999";F2:F6;"<2004")

Devuelve el precio promedio de las casas que tengan al menos 3 dormitorios, un garaje y que tengan entre 5 y 10 años de antigüedad en el año 2009.

312500

Page 48: FÓRMULAS VARIAS (EXCEL 2007)