Está en la página 1de 234

Fórmulas y Funciones Matriciales en Excel.

Introducción.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
 
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos.
 
Nota: Si ya tienes una idea de lo que son las matrices en Excel puedes
saltarte esta introducción e ir directamente a la Entrega 2.
 
Las matrices es uno de los temas más avanzados en lo que se refiere al programa
Excel. Las matrices son un tipo de fórmulas y funciones especiales, que se aplican
usualmente sobre listas, y que permiten realizar operaciones de resumen de datos
bastante complejas.
 
Usando fórmulas y funciones matriciales podemos hacer las mismas cosas que
una tabla dinámica y las funciones BD juntas, pero con más potencia.
 
Desconocer el funcionamiento de las matrices en Excel no es algo malo. La gran
mayoría de la gente usa Excel sin saber nada de matrices y lo usan muy bien.
Pero si alguna vez el jefe te pide que hagas una cuenta de cuántas personas han
hecho menos de tres cursos en un año, sin repetir la persona, o cuales son los
clientes con compras más cercanas a 10.000, tal vez resuelvas el problema en
una hora haciendo filtros, extracciones y conteos, o tal vez lo resuelvas en cinco
minutos usando alguna fórmula matricial sacada de internet.
Las fórmulas matriciales se diferencian de las fórmulas normales en que operan
con rangos, llamados aquí matrices. Es decir, estamos acostumbrados a, por
ejemplo, a multiplicar A3*B5, o a usar la función SI() con celdas, como por
ejemplo SI(A2>3;…..). Pero con las funciones matriciales podremos multiplicar
rangos como A5:B10*C5:D10, o podemos aplicar una función SI() a un rango
entero como =SI(A1:B100>3;…..). Otra diferencia es que se suelen introducir con
CONTROL + MAYUSCULAS + ENTER (CTRL + SHIFT + ENTER) en vez de con
un ENTER normal.
 
Las funciones matriciales nacieron de la necesidad de trabajar con listas y hacer
resúmenes sobre ellas que de otra manera serían más complicados, sino
imposibles.
 

Qué diferencia hay pues entre un "rango" y una


"matriz"
La palabra "matriz" se diferencia de la palabra "rango" en lo siguiente:
"Matriz" se considera un conjunto ordenado de elementos. En términos de Excel,
una matriz es un rango de una columna o de una fila (matriz unidimensional) o un
rango rectangular (matriz bidimensional). Por tanto, a primera vista un rango y una
matriz son lo mismo.
El quid de la cuestión, es que Excel tiene muy en cuenta el orden en que están
colocados los datos dentro del rango. Para dos rangos diferentes, X e Y, Excel,
al considerarlos una matriz, relaciona la primera celda del rango X con la primera
celda del rango Y, la segunda celda del rango X con la segunda celda del rango Y,
la tercera celda del rango X con la tercera celda del rango Y, etcétera.
 
Por tanto, usualmente el tamaño de los rangos de una operación matricial han de
ser iguales y se han de colocar los datos en los rangos ordenados por algún
criterio, por tanto, son ideales para utilizar con las listas ordenadas de datos.
 

Los 4 tipos de fórmulas matriciales


Microsoft subdivide las fórmulas matriciales en dos tipos: las fórmulas
matriciales multicelda y las fórmulas matriciales unicelda. Nosotros, en este
Minicurso solamente, haremos cuatro subdivisiones de las fórmulas matriciales,
que llamaremos simplemente: matrices de Tipo 1, matrices de Tipo 2, matrices de
Tipo 3 y matrices de Tipo 4, tal cual sin más complicaciones. No es preciso que
entiendas ahora mismo lo que significan estos 4 tipos, porque no es fácil:
 TIPO 1: Una misma fórmula en las celdas de un rango. Ocupan varias celdas y
se introducen con CONTROL + MAYUSCULAS + ENTER. Para crear este tipo
de fórmulas matriciales debes primero seleccionar un rango, teclear una fórmula
y acabar con CONTROL + MAYUSCULAS + ENTER, entonces Excel rellena
todo el rango con la misma fórmula automáticamente. Equivalen a una fórmula
multicelda según la subdivisión de Microsoft. Se usan poco pero
son necesarias para entender las fórmulas matriciales de Tipo 2.

 TIPO 2: Fórmulas de resumen. Ocupan una sola celda y se introducen con


CONTROL + MAYUSCULAS + ENTER. Para crear este tipo de fórmulas
matriciales debes hacer clic en una celda, teclear una fórmula y acabar con
CONTROL + MAYUSCULAS + ENTER. La fórmula ha de contener una función
de resumen, es decir, un conteo, una suma, un promedio... Equivalen a una
fórmula unicelda según la subdivisión de Microsoft. Son las que más se usan y
es necesario conocer las de Tipo 1 para entenderlas.

 TIPO 3: Funciones estándar con comportamiento matricial. Ocupan una sola


celda y se introducen con ENTER, como cualquier fórmula estándar. Para crear
este tipo de fórmulas matriciales debes hacer clic en una celda, teclear una
fórmula y acabar con ENTER. La fórmula es una función estándar pero que se
comporta de modo matricial de por sí. Básicamente es la función
SUMAPRODUCTO().

 TIPO 4: Fórmulas matriciales de Tipo 2 ó 3 que se crean en una celda y luego


se copian en un rango de celdas con el cuadro de relleno. Es lo mismo que
hacemos con las funciones normales. Lo importante es que no deben
confundirse con fórmulas de Tipo 1. En estos casos hay que tener en cuenta
cómo se ponen los $ en los rangos.

 
Solamente cuando acabes de entender las fórmulas matriciales del Tipo 2
(Fórmulas de resumen), será cuando empieces a hacerte una idea clara de la
utilidad de las fórmulas matriciales. Antes no, por tanto, habrás de tener un poco
de paciencia.
 
 
Características básicas de las fórmulas matriciales
 En las fórmulas matriciales, si se cambian los valores de los rangos afectados,
cambia el resultado automáticamente. Esto es igual que las funciones normales.
 Las funciones matriciales suelen ser poco usadas, por lo que debe evitarse su uso
cuando una hoja de cálculo vaya dirigida a otras personas. En cambio, son una
herramienta excelente cuando se trata de analizar características complejas que
afectan a rangos de datos, por ejemplo, contar cuantos elementos sin repetir hay
en una lista de datos.
 En vez de usar rangos normales (por ejemplo A1:F7), puedes usar nombres de
rangos, creados con la funcionalidad CTRL-F3.
 Como hemos dicho, las fórmulas matriciales se suelen introducir con CONTROL +
MAYUSCULAS + ENTER (CTRL + SHIFT + ENTER) en vez de con un ENTER
normal.

Operadores y funciones matriciales


Quizás estés temiendo ver unas funciones rarísimas con nombres inextricables.
Pues no. Veamos:

 Los operadores matriciales son los mismos operadores normales de toda la vida:


+, -, *, /. Estamos acostumbrados a operar con A3*C2, pero usados
matricialmente permiten hacer cosas como A10:B10*D10:F10, o, si tenemos
rangos nombrados, nombrerango1*nombrerango2.

 También están los operadores lógicos matriciales para usar en la


función SI() que también son los de siempre: =, >, <, >=, <=, <>, sin
embargo, las funciones Y(), O(), NO() no se pueden usar en fórmulas
matriciales.

 En cuanto a las funciones matriciales son casi todas las funciones normales, por


ejemplo, hemos visto que la función SI() puede comportarse de manera normal o
de manera matricial. Para que Excel sepa que una función normal la queremos
usar como función matricial, debemos acabar la fórmula con CONTROL +
MAYUSCULAS + ENTER (CTRL + SHIFT + ENTER) en vez de con un ENTER
normal.
 Cuando es necesario poner varias pruebas lógicas en un SI() matricial, hay que
usar SI() anidados o bien productos y sumas de funciones lógicas como se
explicará más adelante. No obstante, a partir de Excel 2007, se añadieron unas
funciones denominadas SI CONJUNTO que facilitan mucho la tarea de usar
varias pruebas lógicas en una función SI().

 Otras funciones como FRECUENCIA()sí que son funciones especiales que

solamente se pueden usar matricialmente, no se puede usar como funciones


normales. Son del tipo 1: necesitan un rango para aplicarse y acabar con
CONTROL+MAYUSCULAS+ENTER. La función TENDENCIA() es recomendable
usarla como Tipo 1, si bien se puede usar como función de Tipo 3.

 Otras funciones específicamente matriciales que requieren previamente


seleccionar un rango son MDETERM(), MINVERSA(), MMULT() y otras, pero no
las veremos aquí ya que son funciones matriciales aritméticas, o sea, se usan
para hacer operaciones con matrices, pero el tipo de matrices que estudiábamos
en la escuela.

 
 
En inglés queda más claro, ya que este tipo de fórmulas se denominan "array
formulas", entendiendo "array" (en inglés, "en hileras" o "en filas") como "un
conjunto de datos dispuestos en filas" o "un conjunto de datos en arreglo tabular",
es decir, lo que en Excel se denomina "una lista". Este es el tipo de matrices del
que hablaremos en este Minicurso.
 
En cambio, en inglés se denomina "matrix" (en plural "matrixes/matrices") a las matrices
aritméticas que estudiábamos en la escuela y de las que no hablaremos nada en este Minicurso.
 
 

Funciones matriciales de resumen


Tampoco son funciones especiales o raras. Son las de siempre. Como función de
resumen para una operación matricial lógica se puede usar SUMA(), CONTAR(),
PROMEDIO(). Es importante saber que CONTARA() como función de resumen
matricial no se puede usar, así que solamente podremos contar números
con CONTAR(), pero se explicará un truco para evitar este inconveniente. Las
funciones matriciales de resumen se introducen en una sola celda y se pone como
parámetros de dichas funciones otra operación matricial aritmética o lógica.
Entonces esa fórmula resumirá todo el rango afectado. Se terminan también con
CONTROL+MAYUSCULAS+ENTER.
Las funciones matriciales de resumen en Excel son pues, casi todas las
funciones normales que puedan usarse para resumir datos, nosotros usaremos
las siguientes:
SUMA(), PROMEDIO(), CONTAR(), MAX(), MIN(), recordar que CONTARA() no se
puede usar de manera matricial.
Tocaremos en especial SUMA(SI()), CONTAR(SI()), PROMEDIO(SI()) ya que se
usan mucho, también veremos SUMA(SI(ESERROR())) etc…
 

Funciones que tienen un comportamiento matricial


de por sí
Se introducen con un ENTER normal, pero operan con rangos como si fuesen
funciones matriciales. Por ejemplo:
SUMAPRODUCTO(), SUMAR.SI(), CONTAR.SI()

Y hay más, pero que nosotros no usaremos, ya que son para operaciones
matriciales aritméticas de las que estudiábamos en la escuela,
como SUMAX2MASY2(), SUMAX2MENOSY2(), SUMAXMENOSY2(), COVAR() y otras.
 

Uso de las funciones y operadores matriciales


Tienen dos usos, el primero es trabajar con matrices matemáticas, como las que
hacíamos cuando íbamos a la escuela, pero esto no lo tocaremos aquí ya que es
un uso muy especializado. El otro uso es obtener resultados resumen de muchos
rangos en una sola celda.
Suele ocurrir que quien se acostumbra a usar las matrices las encuentra cómodas
de usar.
 
Las fórmulas matriciales, son elementos indispensables para convertirse en
usuario avanzado de Excel. Son una de las herramientas más poderosas de Excel
y adquirir dominio de ellas permitirá realizar cálculos complejos con facilidad.
 
¿Cómo se distinguen las funciones matriciales de
las normales?
No se distinguen en nada las funciones y operadores normales de las funciones y
operadores matriciales, lo que hace la distinción es que las funciones y
operadores normales se introducen tecleando y acabando con ENTER, las
funciones y operadores matriciales introducen tecleando y acabando con
CONTROL+MAYUSCULAS+ENTER, que se refiere a pulsar a la vez las
siguientes teclas del teclado:
 

 
Nota: en un teclado Mac también es válido usar    + MAYÚS + ENTRAR.
 
Como resultado las fórmulas se ven entre llaves { } pero esas llaves no las
ponemos nosotros, las pone Excel al pulsar CONTROL+MAYUSCULAS+ENTER.
Por ejemplo:
 

 
 

Constantes matriciales
Se usan rara vez, pero lo explicamos aquí por si acaso. En las fórmulas normales,
podemos normalmente multiplicar A3*7 siendo 7 una constante. Pues bien, al igual
que en las fórmulas normales podemos incluir estos valores constantes, en las
fórmulas matriciales también podemos incluir valores constantes que se los
denomina constantes matriciales. Estas constantes matriciales son matrices, y
deberemos ponerlas entre llaves { y } (esta vez sí que tecleamos nosotros estas
llaves) e incluir un separador de columnas (símbolo ;) y un separador de filas
(símbolo \).
Por ejemplo, supongamos que tenemos estos datos en una hoja de cálculo:
 

 
Y yo quiero multiplicar lo siguiente: Primera fila: el 3 (B2) lo quiero multiplicar por
10; el 5 (C2) lo quiero multiplicar por 20; Segunda fila: el 7 (B3) lo quiero
multiplicar por 30; el 9 (C3) lo quiero multiplicar por 40. Pues entonces lo que hay
que hacer es:
=B2:C3*{10;20\30;40}

O sea, la constante matricial es: abrir llave, 10, separador de columna (;), 20,
separador de fila (\), 30, separador de columna (;) 40 y cierra llave.
Y esto da como resultado:
 

 
A las constantes matriciales se les puede dar un nombre con la funcionalidad
CTRL-F3. Por ejemplo:
 
 
Entonces podríamos usar la fórmula matricial:
=B2:C3*MiMatriz01

 
Todo esto explicado parece difícil, pero se aclarará cuando veamos unos
ejemplos.
 
Basta de teoría y comencemos con los temas prácticos.

Fórmulas y Funciones Matriciales en Excel.


Operaciones matriciales de Tipo 1 (Multicelda).
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 
Las operaciones matriciales de Tipo 1 (Multicelda) las hemos definido antes como
sigue:
"TIPO 1: Una misma fórmula en las celdas de un rango. Ocupan varias celdas
y se introducen con CONTROL + MAYUSCULAS + ENTER. Para crear este tipo
de fórmulas matriciales debes primero seleccionar un rango, teclear una fórmula y
acabar con CONTROL + MAYUSCULAS + ENTER, entonces Excel rellena todo el
rango con la misma fórmula automáticamente. Equivalen a una fórmula multicelda
según la subdivisión de Microsoft. Se usan poco pero son necesarias para
entender las fórmulas matriciales de Tipo 2."
 
Se las puede llamar operaciones matriciales multicelda o multicelulares. Si bien no
se usan mucho, es necesario entender muy bien las de Tipo 1 para poder
entender las de Tipo 2, que son las que realmente se usan.
 
Como hemos dicho, una fórmula matricial contiene los operadores normales +, -,
*, / y contiene las funciones normales, como la función SI(), pero se introducen
pulsando la combinación de teclas CONTROL + SHIFT (también llamada
MAYUSCULAS) + ENTER en lugar de usar la tecla ENTER solamente como es
normal. Además, en vez de operar con celdas operan con rangos.
 

Pasos para crear una fórmula matricial de Tipo 1


multicelda
Los pasos para crear una fórmula matricial de Tipo 1 multicelda son:

 Seleccionar el rango donde queremos que vaya el resultado (de ahí que se llame
multicelda, porque se necesita un rango).

 Poner la fórmula solamente en la primera celda de ese rango y acabar con


CONTROL+SHIFT+ENTER. Como resultado todo el rango seleccionado se
llena con el resultado de la fórmula cada celda individualmente.

 
Ejemplo:
Recuerda que estamos viendo las matrices de Tipo 1: rellenamos rangos con
valores sin usar ninguna función de resumen. Empezaremos con los operadores
básicos +, -, *, /.
Si ya has descargado los ejemplos, abre el archivo "MatricesTipo1.xls" y haz clic
en la hoja "MATRICES". Tiene que aparecer la hoja como sigue:
 
 

 
Como ves, hemos rellenado el rango desde A1 hasta J10 con unos números. Haz
lo siguiente:
Primero: vamos a rellenar el rango desde B12 hasta J20 con los valores que hay
en el rango desde B2 hasta J10 pero con cada valor dividido por 10. Haz lo
siguiente:

 Selecciona desde B12 hasta J20:

 
 

 No hagas clic en ningún sitio, ya que desharía la selección, lo que teclees quedará
en la celda en blanco (B12). Teclea lo siguiente:
=B2:J10/10

 y acaba con CONTROL+MAYUSCULAS+ENTER. El resultado:

 
Mira cómo se hace:

 
Observa que cada celda del rango de B12:J20 contiene el mismo valor que cada
celda del rango B2:J10 (la celda que está en la misma posición dentro del rango)
pero dividida por 10. A esto se lo denomina una operación matricial.
Por ejemplo, la celda C13 se corresponde con C3, por tanto C13 muestra el
resultado de C3/10. La celda G18 se corresponde con G8, por tanto G18 muestra
el resultado de G8/10, y así todas para todas las celdas del rango B12:J20.
Si haces clic en B12 verás la siguiente fórmula en la barra de fórmulas:
 

 
Que es la fórmula que has tecleado pero entre llaves { }. Y, de hecho, la fórmula
es la misma para cualquier celda del rango desde B12 hasta J20. Por ejemplo,
colócate en G16 y verás que es la misma fórmula, no cambia nada:
 

Modificar una fórmula matricial


Siguiendo con el mismo ejemplo, si intentas borrar el contenido de G18 con la
tecla SUPR, verás que Excel no te lo permitirá. Una matriz de Excel, o se borra
toda completa o no se puede borrar. Para seleccionar la matriz completa usa,
en Excel 2003, el menú Edición → Ir a → Especial → Matriz actual y Aceptar.
Para Excel 2007+ (versión de Excel 2007 o superior) usa la ficha Inicio → Buscar
y seleccionar → Ir a Especial → Matriz actual. Entonces, verás que queda
seleccionada la matriz completa y ya puedes usar la tecla SUPR para borrar toda
la matriz.
Por ahora no borres la matriz o usa "Deshacer" si la has borrado, ya que vamos a
ver que, una vez creada una matriz, podemos cambiar la fórmula matricial sin
necesidad de seleccionar otra vez el rango. Simplemente, cambiaremos la primera
celda del rango. Por ejemplo, vamos a obtener en el rango B12 hasta J20 lo que
hay desde B2 hasta J10 pero multiplicado por 3:

 Haz clic en B12 sin seleccionar nada


 Teclea =B2:J10*3 y acabar con CONTROL+MAYUSCULAS+ENTER.

El resultado:

 
 
Igual que antes, toda la matriz del rango B2:J10 queda rellenada con la misma
fórmula. Esta fórmula es:
 

Pero el resultado se muestra distinto para cada celda individualmente, por


ejemplo, en B12 estaría el resultado de B2*3, en H15 está H5*3, etc.
Observa que estamos todo el rato trabajando con rangos, no con celdas. Las dos
fórmulas matriciales tecleadas hasta ahora han sido =B2:J10/10 y =B2:J10*3, es
decir, un rango dividido por 10 y un rango multiplicado por 3. Gracias a que
hemos introducido la fórmula con CONTROL+MAYUSCULAS+ENTER, Excel la ha
tratado como una fórmula matricial.
 
En las fórmulas matriciales de Tipo 1 no hace falta
el uso de referencias absolutas
Una de las ventajas que tiene el uso de fórmulas matriciales de Tipo 1 es que no
hace falta el uso de $. Así por ejemplo si, en este ejercicio, el valor 3 lo ponemos
en una celda externa, no hará falta poner $ en la fórmula. Para comprobar esto,
haz lo siguiente:

 Pon un 3 en A12

 Haz clic en B12 sin seleccionar nada

 Teclea =B2:J10*A12 y acaba con CONTROL+MAYUSCULAS+ENTER

El resultado es el mismo que antes, pero observa que, si hubiéses usado fórmulas
estándar (no matriciales), habrías tenido que poner $A$12 para obtener el
resultado correcto. Además, puedes ir cambiando este 3 por otros números y
verás cómo cambia la matriz.
Ve cambiando valores en B2:J10 y mira cómo va cambiando la matriz de
B12:J20.
 
Es evidente que para que la fórmula matricial funcione correctamente, los rangos
han de ser todos iguales. Si fuesen más pequeños, presentarían resultados
parciales y si fuesen más grandes darían resultados inválidos, el error #N/A. Pero
Excel no mostraría ningún mensaje de advertencia o algo similar.
 
 

Ejemplos con varios rangos


Ahora vamos a multiplicar dos rangos:

 Selecciona el rango X12:AF20

 Teclea la fórmula matricial =B2:J10*B12:J20 acabando correctamente

Con esto multiplicamos cada número del rango B2:J10 con el correspondiente
número en la misma posición del rango B12:J20. El resultado debería ser:
 
 
y si haces clic en X12 o en cualquier lugar de la matriz resultante, verás la fórmula:
 

 
Si no te ha salido bien el resultado, haz clic aquí.

 
Podemos pues usar las fórmulas que queramos con diversos rangos, por ejemplo,
una fórmula matricial perfectamente válida podría ser:
=(A5:A10*C5:C10)/(M10:M15-7)

Con la condición de que introduzcamos la fórmula con


CONTROL+MAYUSCULAS+ENTER, Excel operará siempre con los rangos
tratándolos como matrices, o sea, celda por celda y teniendo siempre en cuenta
la posición de cada dato dentro de los rangos, es decir, operará individualmente
con la primera celda de todos los rangos, luego con la segunda celda de todos los
rangos, luego con la tercera celda de todos los rangos, y así sucesivamente hasta
abarcar todo el rango.
Insistimos pues, debes tener cuidado de que todos los varios rangos usados en
una misma fórmula matricial tengan el mismo tamaño.
 

Seleccionar los rangos con el mouse en vez de


teclearlos a mano
Hasta ahora te hemos dicho que teclees a mano las fórmulas matriciales, pero es
importante saber que los rangos de cualquier función matricial de cualquier Tipo
pueden seleccionarse con el mouse en vez de tener que teclearlos a mano. Ello
nos puede facilitar la introducción de las fórmulas matriciales. Para verlo, vamos a
hacer lo mismo que en el apartado anterior pero seleccionando los rangos con el
mouse. Sigue estos pasos:

 Pon un 3 en A12

 Selecciona el rango X12:AF20

 Pulsa la tecla SUPR para borrar la matriz que ya hay

 Teclea un signo igual: =

 Selecciona con el mouse el rango B2:J10

 Teclea un asterisco para multiplicar: *

 Selecciona con el mouse el rango B12:J20

 Acaba con la combinación de teclas CONTROL+MAYUSCULAS+ENTER

El resultado ha de ser el mismo que antes:


 

 
y si haces clic en X12 o en cualquier lugar de la matriz resultante, verás la fórmula:
 

 
Mira cómo se hace:
 
Ejercicio más práctico
Hasta ahora todo ha sido muy teórico. Veamos un ejemplo más práctico.
Usaremos el modelo europeo en euros (€) y con el impuesto denominado IVA
(VAT en inglés). En la hoja "Cálculos" del mismo archivo "MatricesTipo1.xls",
veréis una factura con el código "FACTURA 001", en la cual hemos ido anotando
en cada fila estos datos: el código del producto vendido, la cantidad de unidades
vendidas, el precio por unidad, el descuento y el impuesto IVA:

 
Necesito lo siguiente: en la columna F quiero calcular la cantidad × precio, sin
tener en cuenta el IVA ni el descuento. Lo podríamos hacer con una multiplicación
normal, pero vamos a hacerlo matricialmente ya que estamos en el tema:

 Selecciona el rango F3:F24

 Teclea la fórmula matricial =B3:B24*C3:C24 puedes hacerlo tecleando los rangos

a mano o seleccionando los rangos con el mouse

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado ha de ser:
 
 
Excel ha calculado en la columna F el valor obtenido al multiplicar cada valor de la
columna B por el correspondiente valor en la misma posición de la columna C.
Guarda esta hoja ya que más adelante la necesitaremos.
Ahora hazlo tú:
Calcula matricialmente en la columna H el total de cada fila, pero ya con
descuento e IVA, la fórmula normal habría de ser:
=cantidad*precio unitario*(1–descuento%)*(1+IVA%)

El resultado debería ser:

 
 
Te damos una pista:
Clic aquí para ver

Te damos la solución:
Clic aquí para ver

Guarda esta hoja ya que más adelante la necesitaremos.


 

La función SI() usada matricialmente


La función SI() puede comportarse matricialmente si usamos rangos en vez de
celdas y la introducimos con CONTROL+MAYUSCULAS+ENTER. Es importante
recordar que Excel admite usar la función SI() matricialmente, pero no lo admite
para Y(), ni O() ni NO(). Si hay que poner varias pruebas lógicas en un SI() usado
matricialmente, no podremos usar ni Y() ni O(), y tendríamos que usar funciones
SI() anidadas. Pero aquí no tocaremos el tema de las funciones SI() anidadas
porque hay otras maneras más sencillas de usar varias pruebas lógicas, según
veremos más adelante.
Veremos ahora un ejemplo: regresar a la hoja "MATRICES" del archivo
"MatricesTipo1.xls". En esta hoja vamos a hacer que en el rango M2:U10 me
ponga una X cuando la celda correspondiente al rango B2:J10 sea mayor o igual
que 50:

 Selecciona desde M2 hasta U10.

 No cliques en ningún sitio y solamente teclea =SI(B2:J10>=50;"X";"") puedes

hacerlo tecleando los rangos a mano o seleccionando los rangos con el mouse.

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


 

 
Efectivamente, solamente aparece una X en la parte derecha, si las
correspondientes celdas de la parte izquierda que están en la misma posición, son
iguales o mayores que 50. En cada celda del rango M2:U10 aparece la fórmula:
 

 
Observa que la fórmula SI() usa el rango B2:J10 para hacer la comparación:
B2:J10>=50 y el resultado en el rango M2:U10 se presenta calculado celda por
celda.
 
En las fórmulas matriciales, Excel se encarga de ejecutar la misma fórmula
individualmente en cada celda de los rangos utilizados.
 
Recuerda que las fórmulas matriciales cambian al cambiar los valores de la hoja,
igual que las fórmulas normales.
 
Ve cambiando valores de B2:J10 para ver cómo cambian las X de M2:U10.
 
Mira cómo se hace:

Ejemplo con varios rangos


Otro ejemplo de la función SI() usada matricialmente podría ser el siguiente:
queremos que cada valor del rango B2:J10 aparezca repetido en el rango en el
rango M12:U20, pero solamente si es mayor o igual que 50 y, en caso contrario,
que aparezca un 0:

 Selecciona desde M12 hasta U20.

 Teclea =SI(B2:J10>=50;B2:J10;0) puedes hacerlo tecleando los rangos a mano

o seleccionando los rangos con el mouse.

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:

 
 
Observa que, nuevamente, hemos cumplido las normas de una fórmula matricial:
cuando yo le he dicho a Excel que quiero que me devuelva la celda original si es
mayor o igual que 50, no he puesto ninguna celda, he puesto nuevamente el rango
de las celdas a devolver, es decir:
=SI(B2:J10>=50;B2:J10;0)

Excel ya se encarga de recorrer el rango, ejecutar la operación celda por celda y


devolver la celda correspondiente dentro del rango.
Vamos a ver un ejemplo en el que se usan 3 rangos. En el rango M22:U30 vamos
a repetir el número que hay en el rango B12:J20 si el correspondiente número de
M12:U20 es cero. El resultado debería ser:
 

 
Haz lo siguiente:

 Selecciona el rango M22:U30.

 Teclea la fórmula =SI(M12:U20=0;B12:J20;0) puedes hacerlo tecleando los

rangos a mano o seleccionando los rangos con el mouse.

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

Fíjate que en este caso la fórmula usa un rango para comparar, pero devuelve los
valores de otro rango distinto. En total hemos necesitado 3 rangos: los rangos
M12:U20 y B12:J20 que aparecen en la fórmula pero también el rango M22:U30
que hemos usado para poner la fórmula.
 

Ejercicio más práctico de la función SI()


Ahora hazlo tú:
Vé a la hoja "Descuentos" del archivo "MatricesTipo1.xls". Se trata de, en la
columna E, calcular el total para cada fila simplemente multiplicando la cantidad
por el precio, pero cuando la cantidad sea mayor o igual que 300, haz un
descuento del 5%.
El resultado debería ser:
 

 
Te damos una pista:
Clic aquí para ver

Te damos la solución:
Clic aquí para ver

 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Operaciones matriciales de Tipo 2 (Unicelda).
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 
Las operaciones matriciales de Tipo 2 (Unicelda) las hemos definido antes como
sigue:
"TIPO 2: Fórmulas de resumen. Ocupan una sola celda y se introducen con
CONTROL + MAYUSCULAS + ENTER. Para crear este tipo de fórmulas
matriciales debes hacer clic en una celda, teclear una fórmula y acabar con
CONTROL + MAYUSCULAS + ENTER. La fórmula ha de contener una función de
resumen, es decir, un conteo, una suma, un promedio... Equivalen a una fórmula
unicelda según la subdivisión de Microsoft. Son las que más se usan y es
necesario conocer las de Tipo 1 para entenderlas."
Se las puede llamar operaciones matriciales unicelda o unicelulares.
 
Requieren usar una función de resumen, como SUMA() por ejemplo y, dentro de
ella, entre sus paréntesis, ponemos una función matricial de Tipo 1. No requieren
seleccionar ningún rango: se pone la función de resumen en una celda, se coloca
la función matricial de Tipo 1 entre los paréntesis de la función y se finaliza con
CONTROL + MAYUSCULAS + ENTER. Estas funciones de resumen pueden
ser SUMA(), CONTAR(), PROMEDIO(), MAX(), MIN() y otras. La
función CONTARA() no puede usarse matricialmente. Veamos.
Si ya has descargado los ejemplos, abre el archivo "MatricesTipo2.xls" y haz clic
en la hoja "MATRICES". Tiene que aparecer la hoja como sigue:
 
 
Vamos a calcular en una sola celda, la celda V11, la suma de todos los valores
que hay en el rango desde B2 hasta J10, pero restando 3 a cada uno de los
números del rango.
Por ser la primera fórmula matricial de Tipo 2 que haces vamos a seguir los
pasos que mentalmente deberías hacer para crear una fórmula matricial de Tipo 2.
Sigue estos pasos:
El primer paso es pensar cuál sería la fórmula matricial de Tipo 1 que usarías para
crear una matriz que sea una copia del rango desde B2 hasta J10, pero restando 3
a cada número. Esta fórmula debería ser así:

 Selecciona un rango, como por ejemplo desde M2 hasta U10.

 Sin clicar en ningún sitio para no deshacer la selección, teclea =B2:J10-3

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


 
 
Observa que desde M2 hasta U10 están repetidos todos los valores del rango
desde B2 hasta J10 pero restándoles 3. Si haces clic en cualquier celda del rango
desde M2 hasta U10, la fórmula debería ser:
 

 
Hasta ahora, todo es lo mismo que hemos visto en el apartado de fórmulas
matriciales de Tipo 1. Ahora haz lo que sigue:

 Haz clic en V10

 Teclea la fórmula estándar, no matricial, =SUMA(M2:U10) acabando con un ENTER

normal.

El resultado en V10 debería ser:


2673

Toma mentalmente nota de que la fórmula matricial de Tipo 1 es: B2:J10-3


Una vez hemos tomado nota mental de que la fórmula de Tipo 1 es B2:J10-3,
pasamos al segundo paso, que es crear la fórmula matricial de Tipo 2 en V11.
Esta fórmula se hace con la función de resumen, que es =SUMA(...) en este caso,
dentro de la cual como parámetro ponemos la fórmula matricial de Tipo 1, que
es B2:J10-3 en este caso, y acabar con CONTROL+MAYUSCULAS+ENTER. Esto
debería dar el mismo resultado que hemos obtenido en V10, pero con la ventaja
de que se hace todo el cálculo con una sola fórmula y en una sola celda. Veamos:

 Haz clic en V11


 Teclea =SUMA(B2:J10-3), puedes hacerlo tecleando los rangos a mano o

seleccionando los rangos con el mouse

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado que debe aparecer en la celda V11 es:


2673

Y la fórmula que aparece en la celda V11 es:


 

 
Es decir, la fórmula que hemos tecleado junto con las llaves { y } que pone Excel
para indicar que es una fórmula matricial.
Como puedes ver, el resultado es exactamente el mismo en la celda V10 y en la
celda V11.
 
Puedes ir cambiando valores del rango B2:J10 y verás cómo ambas fórmulas dan
el mismo resultado.
 
 
Mira cómo se hace:

 
Por tanto, hemos de extraer esta conclusión. En las matrices de Excel, es lo
mismo:

 opción 1: seleccionar un rango rangoX, poner la fórmula =B2:J10-3, acabar con

CONTROL+MAYUSCULAS+ENTER y poner en otra celda la función


estándar =SUMA(rangoX) acabada con ENTER, es lo mismo que...

 opción 2: usar directamente en una sola celda la función =SUMA(B2:J10-3) y

acabarla con CONTROL+MAYUSCULAS+ENTER.

En ambos casos obtengo la suma de todos los elementos de una matriz que sería
el resultado de restar 3 a cada valor del rango desde B2 hasta J10. La diferencia
es que:
 en la opción 1, la matriz que tiene la copia del rango B2:J10 menos 3, está a la
vista en la hoja, y ocupa el rangoX.

 en la opción 2, la matriz que tiene la copia del rango B2:J10 menos 3 no se ve, la
calcula Excel y la pone en algún lugar de la memoria de la computadora sin que
nosotros la veamos.

En nuestro caso concreto tenemos que es lo mismo:

 poner en el rango M2:U10 la fórmula matricial =B2:J10-3, y sumar este rango con


la función estándar =SUMA(M2:U10) acabada con ENTER, es lo mismo que...

 usar directamente en una sola celda la función =SUMA(B2:J10-3) y acabarla con

CONTROL+MAYUSCULAS+ENTER.

Y también:

 en el primer caso se ve la matriz con los cálculos intermedios en el rango M2:U10


y se ven los elementos de esa matriz que luego sumaremos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

Así pues, esto es en lo que difieren las fórmulas matriciales de Tipo 1 y de


Tipo 2:
 
Una fórmula matricial de Tipo 2 es un resumen (suma, contar, promedio, máximo,
mínimo...) de una matriz que no está a la vista en la hoja de cálculo, pero que
sería una matriz que estaría a la vista si hubiésemos usado una fórmula matricial
de Tipo 1.
 
Nuevamente, insistimos, ha de quedar claro que hay que entender bien las
fórmulas matriciales de Tipo 1 para poder entender las de Tipo 2, ya que una
fórmula matricial de Tipo 2 no es más que una función de resumen junto con una
función matricial de Tipo 1.
Para acabar de entender mejor lo que es una fórmula matricial de Tipo 2, haz lo
siguiente:

 Selecciona el rango desde M2 hasta U10

 Pulsa la tecla SUPR para borrarlo

 La celda V10 pasa a mostrar el valor 0


 La celda V11 no cambia de valor ya el resultado que muestra esta celda no
depende para nada de ninguna matriz visible en la hoja de cálculo, la matriz de la
que obtiene la suma la fórmula en V11 está en algún lugar de la memoria de la
computadora y nosotros no la vemos.

 Además, si sigues cambiando valores en el rango desde B2 hasta J10, la fórmula


en V11 siempre mostrará el resultado correcto, ya que la matriz en la memoria
de la computadora se va actualizando con cada cambio.

Ejemplo más práctico


Vamos a ver otro ejemplo, seguimos en el archivo "MatricesTipo2.xls". Haz clic en
la hoja "Cálculos". Tiene que aparecer la hoja como sigue:
 

 
En esta hoja "Cálculos" deseo obtener, en una sola celda y usando una sola
función matricial, la suma de cantidad × precio unitario de todas las filas.
Usaremos la celda F27. Sigue estos pasos:

 Clic en F27
 Teclea la fórmula =SUMA(B3:B24*C3:C24) puedes hacerlo tecleando los rangos a

mano o seleccionando los rangos con el mouse

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado que debe aparecer en la celda F27 es:


233850

Y la fórmula que aparece en la celda F27 es:

 
Es decir, la fórmula que hemos tecleado junto con las llaves { y } que pone Excel
para indicar que es una fórmula matricial.
¿Es correcta esa suma? ¿Cómo lo comprobamos?
Podemos comprobar que el resultado es correcto volviendo a la fórmula matricial
de Tipo 1 que ya hicimos en el tema anterior y calcular la suma de la columna F.
Por tanto , abre nuevamente el archivo del anterior "MatricesTipo1.xls" y ve a la
hoja "Cálculos". Recuerda que dijimos que la guardases así que tienes que tener
esto:
 
(Si no tienes esto selecciona el rango F3:F24 teclea la fórmula =B3:B24*C3:C24 y acaba con CONTROL+MAYUSCULAS+ENTER)

 
Ahora haz clic en F25 y teclea la fórmula estándar =SUMA(F3:F24) acabada con
ENTER. El resultado ha de ser igualmente 233850.
 
Puedes ir cambiando algunos valores de las columnas B o C en las hojas
"Calculo" de ambos archivos "MatricesTipo1.xls" y "MatricesTipo2.xls" y verás
cómo cambia el total y cómo el resultado es el mismo en ambas hojas.
 
Observa que este total de la fórmula matricial =SUMA(B3:B24*C3:C24) que
hemos obtenido en el archivo "MatricesTipo2.xls", se ha obtenido en una sola
celda y sin usar celdas con cálculos intermedios. La fórmula matricial que
hemos usado en "MatricesTipo2.xls" es la misma fórmula del Tipo 1 usada en el
archivo "MatricesTipo1.xls": B3:B24*C3:C24, pero con la diferencia de que se le
ha añadido la función de resumen SUMA() y ,en este caso, Excel primero calcula
la matriz B3:B24*C3:C24 y luego suma todos los elementos de esta matriz.
Por tanto, para usar una función matricial de resumen de Tipo 2, es conveniente
pensar primero en la operación matricial del Tipo 1 que tendríamos que hacer,
luego esta misma operación se pone como parámetro dentro de la función de
resumen y se acaba con CONTROL+MAYUSCULAS+ENTER.
Es decir, en matrices, es lo mismo:

 opción 1: seleccionar un rango rangoX, poner la fórmula =rango1*rango2, acabar

con CONTROL+MAYUSCULAS+ENTER y poner en otra celda la función


estándar =SUMA(rangoX) acabada con ENTER, es lo mismo que...

 opción 2: usar directamente en una sola celda la


función =SUMA(rango1*rango2) y acabarla con
CONTROL+MAYUSCULAS+ENTER.

En ambos casos obtengo la suma de todos los elementos de una matriz que sería
el resultado de multiplicar cada valor del rango1 por su correspondiente valor en la
misma posición del rango2. La diferencia es que:

 en la opción 1, la matriz que tiene la multiplicación de matrices, está a la vista en la


hoja, y ocupa el rangoX .

 en la opción 2, la matriz que tiene multiplicación de matrices no se ve, la calcula


Excel y la pone en algún lugar de la memoria de la computadora sin que
nosotros la veamos.

En nuestro caso concreto tenemos que es lo mismo:

 poner en el rango F3:F24 la fórmula matricial =B3:B24*C3:C24, y sumar este


rango con la función estándar =SUMA(F3:F24) acabada con ENTER, es lo mismo
que...
 usar directamente en una sola celda la función =SUMA(B3:B24*C3:C24) y acabarla

con CONTROL+MAYUSCULAS+ENTER.

Y también:

 en el primer caso se ve la matriz con los cálculos intermedios en el rango F3:F24 y


se ven los elementos de esa matriz que luego sumaremos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

 
Por tanto, para entender bien las fórmulas matriciales de resumen del Tipo 2 hay
que entender bien primero las del Tipo 1. Quizás las fórmulas matriciales de Tipo 1
no se usen mucho, o se puedan sustituir fácilmente por funciones normales, pero
las fórmulas matriciales de Tipo 2 no pueden sustituirse por funciones normales y
requieren haber entendido bien las de Tipo 1.
 
Ahora hazlo tú:
Obtén en la celda H27 de la hoja "Cálculos" del archivo "MatricesTipo2.xls", la
suma del cálculo:
=cantidad*precio unitario*(1–descuento%)*(1+IVA%)

para todas las filas del rango B3:E24 usando una sola fórmula matricial en H27 sin
usar celdas con cálculos intermedios. Usa SUMA() como función de resumen. El
resultado debería ser:
239209,615

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
Para calcular una fórmula de resumen matricial, Excel hace primero internamente
los mismos cálculos que haríamos nosotros con una fórmula de Tipo 1, Excel
memoriza el resultado en una matriz en la memoria de la computadora (nosotros
no vemos esa matriz) y luego aplica la función de resumen a esa matriz (es decir,
a los elementos de esa matriz) y muestra el resultado.
Esto hace que las fórmulas matriciales vayan más lentas que las demás, esto se
nota mucho si los rangos con los que trabajamos son muy grandes, notaremos
que Excel va más lento de lo normal.
 
Queda claro pues que, si no se ha entendido bien las matrices de Tipo 1,
difícilmente se va a entender las de Tipo 2. Si es necesario, repasa el tema
anterior hasta que lo entiendas bien.
 
Ahora hazlo tú:
En la hoja "MATRICES" del archivo "MatricesTipo2.xls" obtén en la celda J22 el
promedio del rango B2:J10 pero multiplicando cada elemento de dicho rango por 3
y sin usar celdas con valores intermedios. El resultado en J22 debería ser (con los
datos que había en el rango B2:J10 al abrir el archivo):
108

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Referencias absolutas con las fórmulas matriciales


de Tipo 2
Continuando con la fórmula anterior, al igual que las fórmulas matriciales de Tipo
1, si el 3 va en una celda externa, no será necesario ponerle $, así, la fórmula
anterior es equivalente a:
=PROMEDIO(B2:J10*A12)

con la condición de que en A12 haya un 3.


 

Resúmenes de datos usando la función SI()


En el tema de las fórmulas matriciales de Tipo 1, vimos el uso matricial de la
función SI(). La función SI() también puede usarse en las fórmulas matriciales de
Tipo 2 pero dentro de alguna función de resumen como SUMA(), PROMEDIO(),
CONTAR(), MAX(), MIN()... quedando pues las fórmulas SUMA(SI(...)),
PROMEDIO(SI(...)), CONTAR(SI(...)), MAX(SI(...)), MIN(SI(...))... Se usan
para sumar, contar, promediar, etc, datos que cumplan ciertas condiciones, por
ejemplo, sumar unas cantidades solamente de un cliente.
 
Estas fórmulas SUMA(SI(...)), PROMEDIO(SI(...)), CONTAR(SI(...)),
MAX(SI(...)), MIN(SI(...))... son fórmulas matriciales de Tipo 2, es decir,
funciones de resumen que usan como parámetro una fórmula matricial de Tipo 1
hecha con un SI(). Pero, dado que estas fórmulas son muy usadas en el mundillo
de las matrices de Excel, prácticamente se las considera fórmulas matriciales
especiales que se denominan por su nombre tal cual: SUMA(SI(...)),
CONTAR(SI(...)), PROMEDIO(SI(...)), etc.

 
Es por eso que trataremos la función SI() como un subtema especial en las
matrices de Tipo 2 en la siguiente Entrega.

Fórmulas y Funciones Matriciales en Excel.


Operaciones matriciales de Tipo 2 junto con la
función SI().
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Uso de las funciones matriciales de Tipo 2


anidadas: SUMA(SI(...))
Como hemos dicho, hemos creado un subapartado especial para la función
matricial SUMA(SI(...)), pero sigue siendo una fórmula matricial de Tipo 2. Por
tanto, seguimos en el apartado de las fórmulas matriciales de Tipo 2.
En la hoja "MATRICES" del archivo "MatricesTipo2.xls" podemos hacer en V21
una fórmula que sume solamente los números mayores o iguales que 50 del rango
B2:J10. Sigue estos pasos:

 Haz clic en V21


 Teclea la fórmula =SUMA(SI(B2:J10>=50;B2:J10;0)), puedes hacerlo tecleando

los rangos a mano o seleccionando los rangos con el mouse

 y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


1435

Fíjate que la función de resumen es SUMA() y que la operación que hay dentro es
una operación matricial SI(), que es la misma que hemos puesto en el tema
anterior, en el archivo "MatricesTipo1.xls", en el rango M12:U20. Por tanto, podéis
comprobar si está bien sumando este rango calculado en el tema anterior con una
suma estándar.
En este caso concreto tenemos que es lo mismo:

 poner en el rango M12:U20 la fórmula matricial =SI(B2:J10>=50;B2:J10;0), y


sumar este rango con la función estándar =SUMA(M12:U20) acabada con
ENTER, es lo mismo que...

 usar directamente en una sola celda la


función =SUMA(SI(B2:J10>=50;B2:J10;0)) y acabarla con
CONTROL+MAYUSCULAS+ENTER.

Y también:

 en el primer caso se ve la matriz con los cálculos intermedios en M12:U20 y se


ven los elementos de esa matriz que luego sumaremos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

La función SI(B2:J10>=50;B2:J10;0)) calcula del rango B2:J10 el valor


correspondiente si es mayor que 50 y si no, devuelve un 0, Excel guarda la matriz
resultante en la memoria interna de la computadora y la función de
resumen SUMA() hace la suma de estos valores guardados en la memoria interna.
Vamos a ver un ejemplo más práctico. Seguimos en el archivo "MatricesTipo2.xls"
con las pestañas de color naranja. Hacer clic en la hoja "Resúmenes". Debería
aparecer esto:
 
 
Como veis, continuamos con el sistema europeo en euros (€).
En esta hoja, hay una serie de facturas de ciertos clientes con ciertos plazos de
pago y la columna H me indica con una X roja si está impagada cada factura.
En las celdas que hay desde J1 hasta M9 quiero saber algunos datos del cliente
C001: cuántas facturas tiene en total y cuántas a 30, 60 y 90 días y cuánto
totalizan dichas facturas. También me gustaría desglosarlas en facturas pagadas e
impagadas.
Vamos a empezar con algo fácil y luego lo complicaremos poco a poco.
Calcularemos en L2 la suma de las cantidades de todas las facturas del cliente
C001. Para ello haz:

 Clic en L2

 Teclea =SUMA(SI(D2:D21="C001";E2:E21;0)), puedes hacerlo tecleando los

rangos a mano o seleccionando los rangos con el mouse

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado en L2 es:
6.222

 
Mira cómo se hace:

 
La función SI() matricial devuelve los valores del rango E2:E21 que cumplan que
la correspondiente fila del rango D2:D21 sea C001, igual que si se tratase de una
fórmula matricial de Tipo 1, luego esos valores devueltos son sumados por la
función de resumen SUMA(). Dicho de otra manera, me suma las cantidades
facturadas por el cliente C001. En este caso concreto tenemos que hubiera sido lo
mismo:

 poner en un rango cualquiera rangoX la fórmula


matricial =SI(D2:D21="C001";E2:E21;0), y sumar los elementos de este
rangoX en L2 con la fórmula estándar =SUMA(rangoX) acabada con ENTER,
hubiera sido lo mismo que...

 lo que hemos hecho, es decir, usar directamente en una sola celda, en L2, la
función =SUMA(SI(D2:D21="C001";E2:E21;0)) y acabarla con
CONTROL+MAYUSCULAS+ENTER.

Y también:

 en el primer caso se hubiera visto la matriz con los cálculos intermedios en el


rangoX y se hubieran visto los elementos de esa matriz que luego sumaríamos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

Se trata del primer ejemplo que hemos hecho directamente usando la función de
resumen sin habernos entrenado antes en hacer la matriz intermedia de Tipo 1. A
partir de ahora los haremos ya todos así, directamente usando la función de
resumen matricial de Tipo 2 con la función matricial de Tipo 1 dentro. Ya no
haremos previamente la de Tipo 1.
 
Sin embargo, solamente en este ejemplo y con la finalidad de que entiendas
mejor el uso matricial de la función SI(), haremos el paso inverso, es decir,
desde la función matricial de Tipo 2 hacia la función matricial de Tipo 1. Así verás
cuál es la matriz que Excel mantiene en la memoria de la computadora (la que no
se ve) y verás por qué al sumar los elementos de esa matriz que no se ve,
obtenemos la suma de las cantidades solamente del cliente "C001". Usaremos
como rango provisional las celdas desde I2 hasta I21. Recuerda que seguimos en
el archivo "MatricesTipo2.xls" con las pestañas de color naranja en la hoja
"Resúmenes". Sigue estos pasos:
 Selecciona el rango I2:I21

 Sin hacer clic en ningún sitio para que no se deshaga la selección, teclea la
fórmula =SI(D2:D21="C001";E2:E21;0)

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


 

 
Observa que en la columna I se repiten los valores de la columna E, pero
solamente aquellos valores que en la columna D tienen el valor "C001" en la
misma posición. Aquí los hemos marcado en colores:
 
 
Si sumas los valores de este rango con una suma convencional (no matricial)
verás que el resultado es el mismo: 6222. Esta matriz que ves ahora en el rango
I2:I21 es, pues, la matriz de Tipo 1 que Excel mantiene invisible en la memoria de
la computadora y que sirve como parámetro para las fórmulas matriciales de Tipo
2.
Borra esta matriz dado que no nos es útil: selecciona desde I2 hasta I21 y pulsa
la tecla SUPR.
 
Veamos un ejemplo más:
Vamos a sumar todas las facturas impagadas de todos los clientes. Hemos dicho
que las impagadas son las facturas que tienen una X roja en la columna H. En
este ejemplo usaremos una simplificación que se usa mucho en el mundillo de las
matrices en Excel que consiste en no poner el cero del tercer parámetro a la
función SI(). El resultado será el mismo que si se pusiese ese cero. Veamos:

 Haz clic en L7

 Teclea la fórmula matricial =SUMA(SI(H2:H21="X";E2:E21)), puedes hacerlo

tecleando los rangos a mano o seleccionando los rangos con el mouse. Observa
que la función SI() tiene solamente dos parámetros, no hemos puesto
el "SI(....;0)" que hemos usado hasta ahora.

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado en L7 es:
4.281

Observa que no cambia nada de lo que hemos dicho acerca de las funciones
matriciales de Tipo 2: es una función de resumen SUMA() dentro de la cual
colocamos la operación matricial de Tipo 1. En este ejemplo la fórmula matricial de
Tipo 1 es la siguiente, resaltada en color:
=SUMA( SI(H2:H21="X";E2:E21) )

Como cualquier fórmula de Excel, podemos ir cambiando valores de la columna E


y ver cómo cambian los resultados.
Esta fórmula es totalmente equivalente a la
fórmula =SUMA(SI(H2:H21="X";E2:E21;0)).
 
El uso matricial de la función de resumen de Tipo 2 SUMA() dentro de la cual hay
una función SI(), es un recurso muy usado dentro del mundillo de las matrices de
Excel, de ahí que hayamos hecho este subapartado especial que hemos llamado
"Uso de las funciones matriciales de Tipo 2 anidadas: SUMA(SI())".
 

Uso de las funciones matriciales de Tipo 2


anidadas: CONTAR(SI())
Como hemos dicho, hemos creado un subapartado para la función
matricial CONTAR(SI(...)), pero sigue siendo una fórmula matricial de Tipo 2. Por
tanto, seguimos en el apartado de las fórmulas matriciales de Tipo 2.
Al igual que un SUMA(SI()) matricial de Tipo 2 es muy usado en el mundillo de las
matrices, la fórmula matricial CONTAR(SI()) es también muy usada y, por tanto,
también le dedicaremos un subtema propio.
La función CONTAR() cuenta los números que hay en un rango. Recuerda que
seguimos en el archivo "MatricesTipo2.xls" con las pestañas de color naranja en la
hoja "Resúmenes". Vamos a contar las facturas de 30 días de todos los
clientes. Provisionalmente haremos el cálculo para todos los clientes a pesar
de que en la columna J ponga "C001":

 Clic en M3

 Teclea =CONTAR(SI(C2:C21=30;E2:E21))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado en M3 debería ser:


13
Y la fórmula en M3 debería aparecer con las llaves { y }:
 

Puedes ver una vez más que el SI() devuelve las celdas del rango E2:E21 que
están en la misma posición que las que tienen un 30 en el rango C2:C21, y la
función CONTAR() va contando todos los elementos devueltos si son un número.
Aquí te lo marcamos en color para que lo veas mejor. Puedes contar a ojo cuántos
valores 30 hay:
 

 
En este caso concreto tenemos que hubiera sido lo mismo:

 poner en un rango cualquiera rangoX la fórmula


matricial =SI(C2:C21=30;E2:E21), y contar los elementos de este rangoX en M3
con una fórmula estándar =CONTAR(rangoX) acabada con ENTER, hubiera sido
lo mismo que...

 lo que hemos hecho, es decir, usar directamente en una sola celda, en M3, la
función =CONTAR(SI(C2:C21=30;E2:E21)) y acabarla con
CONTROL+MAYUSCULAS+ENTER.
Y también:

 en el primer caso se hubiera visto la matriz con los valores intermedios en rangoX
y se hubieran visto los elementos de esa matriz que luego sumaríamos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

 
Como siempre que se usa la función CONTAR() hay que tener la precaución de que
el rango a contar, en este caso E2:E21, ha de tener solamente números, no puede
tener filas vacías ni tener texto, o no contará bien. Por ejemplo la
fórmula =CONTAR(SI(C2:C21=30;D2:D21)) no daría un resultado correcto porque en
D2:D21 hay textos.
Es por eso que en el mundillo de las matrices de Excel se prefiere usar la
función SUMA() para... ¡contar! Veamos.
 

Uso de las funciones matriciales de Tipo 2


anidadas: SUMA(SI(...;1;0)) para contar datos no
numéricos o de cualquier tipo
Como hemos dicho, hemos creado un subapartado para la función
matricial SUMA(SI(...;1;0)), pero sigue siendo una fórmula matricial de Tipo
2. Por tanto, seguimos en el apartado de las fórmulas matriciales de Tipo 2.
Dadas las limitaciones de la función CONTAR(), existe, en el mundillo de las
matrices de Excel, un truco para contar todo tipo de datos, sean números, textos,
celdas vacías, celdas no vacías, etc. Este truco consiste en usar la función
matricial =SUMA(SI(prueba lógica matricial;1;0)) de manera que la
función SI() devuelve un 1 cuando se cumple la prueba lógica y devuelve un 0
cuando no se cumple. Entonces lo que hace la función de resumen SUMA() es ir
sumando estos 1's y 0's devueltos. Por tanto, la suma de tantos 1's como veces se
cumple la prueba lógica es equivalente a contar cuántas veces es cierta la
prueba lógica y esto se puede usar para contar números, textos, celdas vacías,
etc.
 
Este truco se denomina "el truco de contar con la función SUMA()".
 
Nota: Tal vez penséis que sería mejor usar la función CONTARA() que cuenta
textos, pero resulta que Excel no permite usar todas las funciones como funciones
de resumen matricial y, justamente, CONTARA() es de las funciones que Excel no
permite usar como función matricial de resumen. Nunca usar CONTARA() en una
fórmula matricial de ningún Tipo, ya que daría un resultado erróneo sin que Excel
avisase del error.
 
Por ejemplo, vamos a calcular de nuevo la cantidad de facturas a 30 días, pero
usando "el truco de contar con SUMA(SI(...;1;0))". Provisionalmente haremos
el cálculo para todos los clientes a pesar de que en la columna J ponga
"C001". Los pasos serían:

 Clic en M3. Pulsa la tecla SUPR para borrar su contenido

 Teclea =SUMA(SI(C2:C21=30;1;0))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado en M3 será es mismo que antes:


13

Y la fórmula contenida en M3 aparecerá como ¡una suma!:


 

 
Nota: se puede simplificar la fórmula como =SUMA(SI(C2:C21=30;1)) y el resultado
seguirá siendo 13:
 

 
Este truco de contar usando la función SUMA(SI(...;1)) se usa mucho en el
mundillo de las matrices de Excel, por tanto, conviene saberlo cuando busques
funciones matriciales por internet ya que, en muchos casos, cuando veas la
función SUMA() matricial de Tipo 2, a lo mejor no están sumando ¡están
contando!
 

Uso de otras funciones anidadas con SI() de Tipo


2
Otras funciones como PROMEDIO(SI(...)), MAX(SI(...)) y
MIN(SI(...)) también pueden usarse como fórmula matricial de resumen de Tipo
2, pero debéis tener más cuidado al usarlas por el siguiente motivo:
 
Al hacer una operación de SUMA con las celdas de un rango, las celdas de dicho
rango que contienen el valor cero no influyen en la suma. Sin embargo, para otras
operaciones, como PROMEDIO, MÁXIMO, MÍNIMO o DESVIACIÓN ESTÁNDAR,
las celdas que contienen el valor cero sí que influyen en el resultado. Cuando se
usan dichas funciones en una operación matricial en Excel con un SI() anidado,
es mejor poner una cadena vacía "" como tercer parámetros de la
función SI() anidada o bien no poner nada.
 
Por ejemplo, continuando en el archivo "MatricesTipo2.xls" en la hoja
"Resúmenes",  suponer que alguien os solicita cuál es la factura con la cantidad
más pequeña del cliente C001. Tendréis que buscar la factura con la cantidad más
pequeña usando una función MIN(SI(...)) matricial, pero la fórmula correcta sería
una de estas dos:
 

  =MIN(SI(D2:D21="C001";E2:E21))
  =MIN(SI(D2:D21="C001";E2:E21;""))
 
y nunca habrá que usar esta porque dará un resultado erróneo:
 

  =MIN(SI(D2:D21="C001";E2:E21;0)) → ¡siempre dará resultado cero!


 
Uso de celdas externas en las fórmulas matriciales
de Tipo 2
Vamos a complicar un poco el ejemplo, en realidad podemos sustituir el "C001"
por la celda externa J2 que contiene C001, de manera que podemos obtener
igualmente en L2 la suma de las cantidades de las facturas del cliente C001:
Haz lo siguiente:

 Clic en L2. Pulsa la tecla SUPR para borrar su contenido

 Teclea =SUMA(SI(D2:D21=J2;E2:E21))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

 Clic en M2

 Teclea =CONTAR(SI(D2:D21=J2;E2:E21))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


 

 
Da el mismo resultado que antes 6.222. La diferencia es que ahora si cambio el
valor de J2 por otro cliente, la suma también cambiará: C001 da 6.222, pero si
ponemos en J2 C002 en L2 sale 2.460:
 

 
Si ponemos en J2 C003, en L2 sale 1.237:
 
 
... y así sucesivamente con todos los clientes.
Fíjate que también el conteo de facturas en M2 van cambiando.
También podríamos sustituir el 30 por una celda externa que contuviese el valor
de 30 para contar las facturas a 30 días. En este caso podríamos usar la celda K3
y poner en M3 la fórmula matricial =SUMA(SI(C2:C21=K3;1)), observa que el cliente
en J2 no influye en el resultado:
 

 
Si cambiáis el valor de la celda K3 por 60 o por 90 el valor en M3 también irá cambiando.
 

 
Mira cómo se hace:

 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Operaciones matriciales de Tipo 3.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Operaciones matriciales de Tipo 3: Funciones


estándar que se introducen con ENTER pero que
tienen un comportamiento matricial.
Las hemos definido antes como:
"TIPO 3: Funciones estándar con comportamiento matricial. Ocupan una sola
celda y se introducen con ENTER, como cualquier fórmula estándar. Para crear
este tipo de fórmulas matriciales debes hacer clic en una celda, teclear una
fórmula y acabar con ENTER. La fórmula es una función estándar pero que se
comporta de modo matricial de por sí. Básicamente es la función
SUMAPRODUCTO()."
Por tanto, son funciones unicelda y de resumen, como las del Tipo 2, pero que se
introducen con un ENTER normal, como cualquier función estándar.
Básicamente se trata de la función SUMAPRODUCTO(rango) que tiene la ventaja de
ser usada como función de resumen acabada con un ENTER, es decir, no
tenemos que introducirla con CONTROL+MAYUSCULAS+ENTER.
 
En el mundillo de las matrices de Excel, la función SUMAPRODUCTO(rango) se usa
mucho por la comodidad que representa introducir la función con un ENTER y no
tener que pulsar CONTROL+MAYUSCULAS+ENTER. De esta
manera, SUMAPRODUCTO(rango) se usa mucho para sustituir a la función SUMA().
 
Aun así, SUMAPRODUCTO() tiene una limitación importante que explicaremos más
adelante.
 
Otras funciones que se comportan matricialmente con sólo pulsar la tecla ENTER
son: CONTAR.SI() y SUMAR.SI(). Si bien estas dos funciones no son consideradas
matriciales en los manuales de Excel, nosotros las explicaremos aquí por su
capacidad de trabajar ordenadamente con los elementos de los rangos.
A partir de la versión de Excel 2007 se añadieron las funciones PROMEDIO.SI(),
CONTAR.SI.CONJUNTO(), SUMAR.SI.CONJUNTO(),
PROMEDIO.SI.CONJUNTO(). Tampoco aparecen como matriciales en los manuales
de Excel pero las explicaremos aquí por su capacidad de trabajar ordenadamente
con los elementos de los rangos.
A partir de la versión de Excel 2016 se añadieron las
funciones MAX.SI.CONJUNTO(), MIN.SI.CONJUNTO() y SI.CONJUNTO(). Tampoco
aparecen como matriciales en los manuales de Excel pero las explicaremos aquí
por su capacidad de trabajar ordenadamente con los elementos de los rangos, en
especial la función SI.CONJUNTO() que nos evita tener que utilizar
los SI() anidados, algo que interesa mucho en las fórmulas matriciales.
Las funciones xxx.SI.CONJUNTO, denominadas funciones SI CONJUNTO,
admiten hasta 127 pruebas lógicas.
 
Estas funciones que aquí consideramos matriciales de Tipo 3, no son un tipo de
funciones matriciales que hagan cosas únicas, se pueden sustituir perfectamente
por funciones matriciales de Tipo 2, pero el caso es que usando las de Tipo 3 es
más fácil y más cómodo hacer los cálculos y además se introducen con un ENTER
normal, y esta es la "fama" que tienen dentro del mundillo de las matrices de
Excel.
 
Vamos a ver cada una de ellas.
 
Abre el archivo "MatricesTipo3.xls". Veréis que tiene la hoja "Cálculos" que hemos
usado en los temas anteriores, ya que como hemos dicho, las funciones
matriciales de Tipo 3 sirven para sustituir a las de Tipo 2, pero veremos que son
mucho más cómodas. Se trata, pues, de repetir ejemplos que hemos usado en
temas anteriores, pero con las nuevas fórmulas de Tipo 3.
 
SUMAPRODUCTO() para versiones Excel 2003 y
posteriores
Se trata de una función realmente matricial. Se puede saber porque, en la ayuda
contextual que aparece cuando se teclea una fórmula en Excel, aparece la palabra
"matriz":
 

 
Nota: si estás usando una versión en inglés aparece la palabra "array".
 
Para ver su uso, vamos a recordar que, en el tema anterior, en el archivo
"MatricesTipo2.xls", nos poníamos en la hoja "Cálculos" y calculábamos la suma
de las facturas en una sola celda con la fórmula matricial =SUMA(cantidad*precio
unitario) acabada con CONTROL+MAYUSCULAS+ENTER. Ahora,
usando =SUMAPRODUCTO(cantidad*precio unitario), podremos acabar con un
ENTER normal para hacer los cálculos.
Lo vamos a comprobar rápidamente. En el archivo "MatricesTipo3.xls" en la hoja
"Cálculos":
 
 
Hemos puesto las pestañas de las hojas de color amarillo para evitar confusiones
con los otros archivos. Teclea las siguientes fórmulas en esta hoja "Cálculos":

 Haz clic en F27

 Teclea la fórmula =SUMAPRODUCTO(B3:B24*C3:C24)

 Y acaba con un ENTER normal.

 Haz clic en H27

 Teclea la fórmula  =SUMAPRODUCTO(B3:B24*C3:C24*(1-D3:D24)*(1+E3:E24))

 Y acaba con un ENTER normal.

Los resultado ha de ser el mismo que el que obtuvimos en "MatricesTipo2.xls":


 

 
¡Y todo sin pulsar CONTROL+MAYUSCULAS+ENTER!
 
Mira cómo se hace:

 
La función SUMAPRODUCTO() es en realidad una función que usa varias matrices:
 
=SUMAPRODUCTO(rango1;rango2;rango3;....)

 
Lo que hace es multiplicar los elementos que están en la misma posición en todas
las matrices, y luego suma los elementos de la matriz resultante. Sin embargo, si
se usa con un solo rango:
 
=SUMAPRODUCTO(rango)

 
entonces lo que hace la función es limitarse a sumar los elementos de esa
matriz. Con este truco, podemos usar SUMAPRODUCTO(rango) y ENTER, como
sustitución de SUMA(rango) y CONTROL+MAYUSCULAS+ENTER, lo cual es
más cómodo de usar en el mundillo de las matrices en Excel.
Además, las dos fórmulas siguientes son totalmente equivalentes:
 

 =SUMAPRODUCTO(rango1;rango2;rango3;...;...;...) y ENTER

 =SUMAPRODUCTO(rango1*rango2*rango3*...*...*...) y ENTER

 
Esto es debido a que en la primera de ellas es la propia función SUMAPRODUCTO() la
que multiplica las matrices y luego suma los elementos de la matriz resultante. En
la segunda, somos nosotros quienes formulamos la multiplicación
y SUMAPRODUCTO() se limita a sumar el resultado.
Al igual que en el tema anterior, en este caso concreto tenemos que hubiera sido
lo mismo:

 poner en un rango cualquiera rangoX la fórmula matricial =B3:B24*C3:C24, y

sumar los elementos de este rangoX en F27


con =SUMAPRODUCTO(rangoX) acabado con ENTER, hubiera sido lo mismo que...

 lo que hemos hecho, es decir, usar directamente en una sola celda, en este caso
F27, la función =SUMAPRODUCTO(B3:B24*C3:C24) y acabarla con ENTER.
Y también:

 en el primer caso se hubiera visto la matriz con los cálculos intermedios en rangoX
y se hubieran visto los elementos de esa matriz que luego sumaríamos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

Por tanto, no hay diferencia en realidad entre las operaciones matriciales de Tipo 2
y las de Tipo 3, lo que pasa es que son más cómodas, no necesitan
CONTROL+MAYUSCULAS+ENTER y son más asequibles para todo el mundo, ya
que el tema de las matrices siempre es difícil.
 
Ahora hazlo tú:
Teniendo en cuenta que SUMAPRODUCTO(rango1;rango2;rango3;rango4) multiplica
ordenadamente los elementos de los rangos (los primeros con los primeros, los
segundos con los segundos, los terceros con los terceros...) y luego suma estas
multiplicaciones, te proponemos que compruebes por ti mismo que las siguientes
dos fórmulas matriciales son equivalentes:

 =SUMAPRODUCTO(B3:B24*C3:C24*(1-D3:D24)*(1+E3:E24)) y ENTER

 =SUMAPRODUCTO(B3:B24;C3:C24;(1-D3:D24);(1+E3:E24)) y ENTER

Teclea ambas fórmulas en dos celdas cualesquiera, por ejemplo, la primera ya la


tienes en H27, teclea la segunda en H28. Comprueba que dan el mismo valor y
comprueba que cambiando los datos de las columnas B, C, D y E ambas fórmulas
dan los mismos resultados.
Te pedimos que deduzcas por ti mismo cuál es la razón por la que ambas
fórmulas son equivalentes y que encuentres, por el mismo método, la fórmula
equivalente a =SUMAPRODUCTO(B3:B24*C3:C24) y la pongas en F28.
 
Te damos la solución:
Clic aquí para ver

 
Ahora hazlo tú:
Seguimos en el archivo "MatricesTipo3.xls" con las pestañas de color amarillo. Ve
a la hoja "Pagar" donde verás una lista de personas cada una de las cuales ha
trabajado una ciertas horas a un cierto precio/hora:
 
 
Te pedimos que, en la celda B21, pongas una fórmula matricial que calcule el total
a pagar (para todas las personas) sin usar celdas con cálculos intermedios y sin
usar CONTROL+MAYUSCULAS+ENTER. El resultado debería ser:
21.925,00 €

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Función CONTAR.SI() para versiones Excel 2003


y posteriores
Es una función de resumen de rangos que mezcla el conteo con una sola prueba
lógica. Esta función pueden sustituir a =CONTAR(SI()) que hemos visto en el
apartado anterior para contar algunos datos, pero CONTAR.SI() es menos
potente, si bien es más simple de usar. Veremos su sintaxis y luego unos
ejemplos, ya que esta función se usa mucho:
 
=CONTAR.SI(rango a contar;"prueba lógica para el rango")

 
Observa que la prueba lógica va entre comillas porque la prueba lógica se ha de
poner en forma de texto, pero por lo demás se usan los operadores lógicos
normales = , > , >= , <  , <= , <>. En el caso del operador igual (=) puede
sustituirse por no poner ningún operador.
 
Como podemos ver sólo hay 1 criterio o prueba lógica, por lo que tampoco se
pueden hacer cosas sofisticadas. La prueba lógica se aplica a los mismos
elementos del rango a contar.
 
No es una función matricial estrictamente hablando, porque en la ayuda contextual
de Excel al teclear la fórmula no aparece la palabra "matriz":
 

 
Pero a pesar de ello, en este Minicurso la consideraremos como matricial por su
capacidad de trabajar ordenadamente con rangos.
Veamos unos ejemplos. Seguimos en el archivo "MatricesTipo3.xls" y vamos a la
hoja "Resúmenes". Vamos a contar las facturas que tengan un plazo de 30 días,
para hacerlo bastaría con contar cuántos 30 hay en la columna C. Vamos a poner
la fórmula provisionalmente en L6 que sería:

 Haz clic en L6

 Teclea la fórmula =CONTAR.SI(C2:C21;"=30")

 Y acaba con un ENTER normal.

Esto da como resultado:


13
... que es cuántos 30's hay en la columna C. Observa que la prueba lógica se
aplica al mismo rango que se cuenta. No hay posibilidad de usar varios rangos.
 
Mira cómo se hace:

 
Si te piden cuántas facturas hay a 60 días "y" a 90 días, hay que tener en cuenta
que muchas veces en el lenguaje hablado, cuando se dice la palabra "y", en
realidad se está diciendo "más" o "sumadas". Por tanto,  en este caso concreto, te
estarían pidiendo "cuántas facturas hay a 60 días más cuántas a 90 días". Para
conseguirlo, provisionalmente, teclea cualquiera de estas fórmula en L6:

 Haz clic en L6

 Teclea cualquiera de estas fórmulas:


=CONTAR.SI(C2:C21;"=60")+CONTAR.SI(C2:C21;"=90")

Como el signo igual (=) se puede obviar, también puedes poner:


=CONTAR.SI(C2:C21;"60")+CONTAR.SI(C2:C21;"90")

Y, solamente en caso de querer contar valores iguales a un número, se pueden


quitar las comillas:
=CONTAR.SI(C2:C21;60)+CONTAR.SI(C2:C21;90)

 Y acaba con un ENTER normal.

En todos casos el resultado es:


7

Ahora hazlo tú:


Intenta teclear la última de las fórmulas en L6.

Por tanto, la ventaja de CONTAR.SI() es que puede contar tanto números y textos.
Lo que diferencia contar números o textos cómo pongas la prueba lógica.
Por ejemplo, vamos a hacer un conteo de las facturas del cliente C001, para
hacerlo bastaría con contar cuántos textos "C001" hay en la columna D. Vamos a
poner la fórmula en L6 que sería:

 Haz clic en L6

 Pulsa la tecla SUPR para borrar su contenido


 Teclea la fórmula =CONTAR.SI(D2:D21;"=C001")

 Y acaba con un ENTER normal.

El resultado debería ser:


8

Pero como hemos dicho que podemos obviar el operador igual (=), la siguiente
función es equivalente:
 
=CONTAR.SI(D2:D21;"C001") y ENTER
 
En cambio, no podemos quitar las comillas porque es un texto.
Pero sí que podemos poner el "C001" en una celda externa, por tanto la siguiente
función es equivalente:
 
=CONTAR.SI(D2:D21;J6) y ENTER
 
En los tres casos ha de dar como resultado:
8

Ahora hazlo tú:


Intenta teclear esta última fórmula en L6. Una vez tecleada no la borres, ya que la
usaremos en el siguiente apartado.
 
Compruébalo mirando cuántos C001 aparecen en la columna D. Quizás de las 3
funciones equivalentes la más útil sea la tercera ya que, cambiando el contenido
de la celda J6 por C001, C002, C003, etc., obtendremos el conteo de las facturas
del cliente que haya en la celda J6.
Ahora hazlo tú:
En la hoja "Resúmenes" cuenta en la celda L10 las facturas pagadas que son las
que tienen un texto "SI" (un sí afirmativo pero sin tilde) en la columna F. El
resultado debería ser:
5
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
Ahora hazlo tú:
Seguimos en el archivo "MatricesTipo3.xls" y vamos a la hoja "Pagar".
Necesitamos contar cuántas personas han trabajado 40 ó más horas. Pon el
conteo en la celda F3. El resultado debería ser:
6

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Función SUMAR.SI() para versiones Excel 2003 y


posteriores
Es una función de resumen de rangos que mezcla la suma con una sola prueba
lógica. Esta función pueden sustituir a =SUMA(SI()) que hemos visto en el
apartado anterior para sumar algunos datos pero es menos potente, si bien más
simple de usar. Veremos su sintaxis y luego unos ejemplos, ya que esta función se
usa mucho:
 
=SUMAR.SI(rango a comparar;"prueba lógica para el rango";rango a sumar)

 
SUMAR.SI() usa dos rangos: el rango que está a la izquierda de la prueba lógica
que es el rango sobre el que aplicamos dicha prueba lógica, y el rango que está a
la derecha de la prueba lógica que es el rango cuyas celdas sumamos.
Ha de quedar claro que SUMAR.SI() no sumará todas las celdas del rango de la
derecha: solamente sumará las celdas que estén en la misma posición que las
celdas del rango de la izquierda que cumplan la prueba lógica.
En el caso de que el rango a comparar y el rango a sumar sean el mismo rango,
no hace falta poner el rango a sumar.
Observar que la prueba lógica va entre comillas porque la prueba lógica se ha de
poner en forma de texto, pero por lo demás se usan los operadores lógicos
normales = , > , >= , <  , <= , <>. En el caso del operador igual (=) puede
sustituirse por no poner ningún operador.
 
Como podemos ver sólo hay 1 criterio o prueba lógica, por lo que tampoco se
pueden hacer cosas sofisticadas. La función SUMAR.SI() no puede usarse para
contar, como hacíamos con SUMA(SI(...;1;0)), es decir, no podemos usar
ningún "truco" para hacer conteos usando la función SUMAR.SI().
 
SUMAR.SI() tampoco es una función estrictamente matricial:
 

 
Pero a pesar de ello, en este Minicurso la consideraremos como matricial por su
capacidad de trabajar ordenadamente con rangos.
Vamos a aclararlo con un ejemplo. Seguimos en el archivo "MatricesTipo3.xls" en
la hoja "Resúmenes" y vamos a sumar la cantidad (columna E) de las facturas de
30 días, o sea, las facturas que en la columna C tengan un 30. Poner
provisionalmente en L6 la siguiente fórmula:

 Haz clic en L6

 Teclea la fórmula =SUMAR.SI(C2:C21;"=30";E2:E21)

 Y acaba con un ENTER normal.

El resultado debería ser:


9474

Para ver más claramente qué celdas del rango E2:E21 ha sumado la función
SUMAR.SI(), te las mostramos coloreadas en verde:
 

 
Como hemos dicho, la fórmula =SUMAR.SI(C2:C21;"=30";E2:E21) suma las celdas
de la columna E que están en la misma posición que los 30's de la columna C.
 
Mira cómo se hace:

 
Recuerda que cuando el operador lógico es un igual (=) no hace falta poner el
signo igual (=) si no quieres y, si además de ser un igual (=), la prueba lógica es
para comparar números, podemos obviar las comillas. Por tanto, la siguiente
fórmula es equivalente a la que acabáis de teclear en L6:
 
=SUMAR.SI(C2:C21;30;E2:E21)

 
Ahora, vamos a sumar la cantidad (columna E) de las facturas del cliente C001, o
sea, las facturas que en la columna D tengan el texto C001. Pon en L6 la siguiente
fórmula:

 Haz clic en L6

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula =SUMAR.SI(D2:D21;"C001";E2:E21)

 Y acaba con un ENTER normal.

Y el resultado debería ser:


6.222

Lo que ha hecho la función SUMAR.SI() es sumar las cantidades de la columna E


de las facturas que en la columna D tengan C001. Para que funcione bien, los dos
rangos han de tener el mismo tamaño, ya que Excel va comparando por orden:
mira si la primera celda del rango D2:D21 es C001 y si es C001 suma la primera
celda del rango E2:E21, si la 2ª celda del rango D2:D21 es C001 suma la 2ª celda
del rango E2:E21, si la 3ª celda del rango D2:D21 es C001 suma la 3ª celda del
rango E2:E21…. y así sucesivamente. Aquí te mostramos en color verde las
celdas de la columna E sumadas:

 
Al igual que con CONTAR.SI() podemos usar el criterio en una celda externa, por
ejemplo, podemos poner C001 en J6 y poner esta fórmula en M6:
 Haz clic en M6

 Teclea la fórmula =SUMAR.SI(D2:D21;J6;E2:E21)

 Y acaba con un ENTER normal.

En principio el resultado es el mismo, 6.222, pero si ahora vais cambiando J6 por


C002, C003, C004…. Irá dando la suma de las cantidades de las facturas de esos
clientes, que serían respectivamente: 2.460, 1.237, 920 ….
 
También, al igual que con CONTAR.SI(), si te piden que sumes las facturas de los
clientes C001, C002 "y" C003, recuerda que muchas veces en el lenguaje
hablado, cuando se dice la palabra "y", en realidad se está diciendo "más" o
"sumadas". Por tanto,  en este caso concreto, te estarían pidiendo que sumes las
facturas de los clientes C001, más las facturas de C002 más las facturas de C003.
En tal caso deberías seguir estos pasos:

 Haz clic en una celda sin usar, por ejemplo en J15

 Teclea la fórmula:
=SUMAR.SI(D2:D21;"C001";E2:E21)+SUMAR.SI(D2:D21;"C002";E2:E21)+SUMAR.SI(D
2:D21;"C003";E2:E21)

 Y acaba con un ENTER normal.

El resultado debería ser:


9.919,00

Que corresponde a la suma de estas cantidades:


 
 
Por último, acabaremos calculando el promedio de las cantidades de las facturas,
en la celda N6 tendremos que poner:
=M6/L6

Recuerda que en L6 tienes el conteo de facturas que hicimos en el apartado


anterior. Si no lo tienes teclea en L6 la fórmula =CONTAR.SI(D2:D21;J6) acabada
con ENTER. Y en M6 tienes la suma =SUMAR.SI(D2:D21;J6;E2:E21) acabada en
ENTER. El resultado en N6 debería ser: 778 para C001, 615 para C002, 1237
para C003... En el siguiente apartado veremos una función que simplifica este
cálculo.
Ahora hazlo tú:
Seguimos en el archivo "MatricesTipo3.xls" en la hoja "Pagar". Nos piden en la
celda F3 la suma de las horas que han trabajado las personas que cobran 20 ó
menos euros de Precio hora. El resultado debería ser:
315

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Función PROMEDIO.SI() para versiones Excel


2007 y posteriores (tema opcional)
Siguiendo con el ejemplo anterior, en el archivo "MatricesTipo3.xls" en la hoja
"Resúmenes", si estamos usando Excel 2003 y queremos calcular en la celda N6
el promedio de las facturas del cliente C001, hemos tenido que poner en la celda
N6 la fórmula =M6/L6 y, para poder crear esta fórmula, hemos tenido que poner
previamente en L6 la fórmula =CONTAR.SI(D2:D21;J6) y en M6 la
fórmula =SUMAR.SI(D2:D21;J6;E2:E21).
Pero a partir de la versión Excel 2007, ya podemos usar directamente la
función PROMEDIO.SI() y ya no hace falta usar SUMAR.SI() y CONTAR.SI() y luego
hacer la división. La sintaxis de PROMEDIO.SI() es idéntica a la de SUMAR.SI(), la
única diferencia es que calcula el promedio en vez de la suma. Este tema es
opcional porque Excel 2007 también tiene la versión PROMEDIO.SI.CONJUNTO() que
puede sustituir a la función PROMEDIO.SI().
 
Este es un tema opcional. Haz clic aquí para mostrar/ocultar el tema.

 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Operaciones matriciales de Tipo 3.
 
Fórmulas matriciales: minicurso para aprender a trabajar con rangos en vez
de con celdas con la finalidad de trabajar con datos organizados en rangos
más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI.
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Operaciones matriciales de Tipo 3: Funciones SI


CONJUNTO.
Seguimos con las funciones matriciales de Tipo 3, es decir, aquellas funciones de
Excel que tienen un comportamiento matricial, pues operan ordenadamente con
las celdas de los rangos y por tanto tratan a los rangos como matrices, pero que
se introducen con un ENTER normal, no es necesario acabar con
CONTROL+MAYUSCULAS+ENTER, lo que las hace más cómodas y fáciles de
usar.
Hasta ahora hemos visto SUMAPRODUCTO(), que es una función auténticamente
matricial, y hemos visto también CONTAR.SI(), SUMAR.SI() y PROMEDIO.SI(), que,
si bien son funciones que no son estrictamente matriciales, en este Minicurso las
trataremos como si fuesen matriciales por su capacidad de trabajar
ordenadamente con las celdas de los rangos.
Hemos visto que estas tres últimas funciones, CONTAR.SI(), SUMAR.SI() y
PROMEDIO.SI(), solamente admiten una prueba lógica.

Con el tiempo, los usuarios de Excel solicitaron a Microsoft que incluyese nuevas
funciones que permitiesen poner varias pruebas lógicas para así poder hacer
cálculos potentes pero de manera sencilla. De este modo, a partir de la versión
Excel 2007, Microsoft añadió a Excel las denominadas funciones SI CONJUNTO,
que son una serie de funciones condicionales que admiten hasta 127 criterios o
pruebas lógicas. Estas funciones SI CONJUNTO son:
 

 CONTAR.SI.CONJUNTO() a partir de Excel 2007

 SUMAR.SI.CONJUNTO() a partir de Excel 2007

 PROMEDIO.SI.CONJUNTO() a partir de Excel 2007

 MAX.SI.CONJUNTO() a partir de Office 365 versión enero 2016*

 MIN.SI.CONJUNTO() a partir de Office 365 versión enero 2016*

 
(*) En el momento de crear este Minicurso aún no existía una versión de Office de
escritorio independiente de Office 365 que implementase estas funciones.
Nuevamente, estas funciones SI CONJUNTO no son estrictamente matriciales,
pero aquí las trataremos como matriciales. De hecho, hasta la versión Excel 2003
inclusive (antes de que existiesen estas funciones SI CONJUNTO) era obligatorio
usar fórmulas matriciales para trabajar con criterios múltiples, como veremos
dentro de un momento.
Estas funciones SI CONJUNTO están pensadas para ser usadas en listas de
Excel. Una lista de Excel equivale a organizar en columnas muchos elementos
de una misma entidad, como si fuese una tabla de Access. Por ejemplo, una lista
de Estudiantes, una lista de Profesores, una lista de Trabajadores, una lista de
Proveedores, una lista de Productos, una lista de Facturas... Por ello, veremos los
ejemplos de todas estas funciones sobre una serie de listas que hemos preparado
en el archivo de Excel 2007, con extensión xlsx, con el nombre de
"FuncionesSiConjunto.xlsx". Este archivo no se puede abrir en Excel 2003. La hoja
"funciones SI CONJUNTO" debe tener este aspecto:
 

 
Esta hoja contiene una lista de facturas en sistema europeo en euros (€), con su
fecha de emisión, plazo de pago en días, código de Cliente, cantidad, y si está
pagada, vencida. Si una factura no está pagada y está vencida se considera
impagada.
También tiene la hoja "Cine":
 
 
Esta hoja contiene una lista de películas con su director, protagonista, año,
valoración en IMDB.com, número de votantes en IMDB.com, país, productora y un
supuesto número de disco externo donde está la película.
Usaremos estas dos hojas para hacer cálculos con las funciones multicriterio SI
CONJUNTO que salieron a partir de la versión Excel 2007.
 
Nota: En Excel, como en Access o cualquier base de datos, existe el concepto
de "tabla", pero, estrictamente hablando, una "tabla" en Excel tiene más
funcionalidades que una "lista". Las listas en Excel son más simples.
 
 
Vamos a verlas todas ellas. Haremos una subdivisión en dos partes de este
tema:
 
- En la primera parte veremos las funciones SI CONJUNTO que se añadieron a
partir de Excel 2007, con lo que necesitaréis la versión Excel 2007 o mayor para
poder verlas.
La versión Office 2007+ (2007, 2010, 2013, 2016, 365) es la que deberíais usar ya
que la versión de Office 2003 se encuentra descatalogada y puede dar problemas
de seguridad. Office 2003 es, además, muy ineficiente para trabajar en una
empresa si lo comparamos con Office 2007+.
 
- En la segunda parte veremos las funciones SI CONJUNTO que se añadieron a
partir de Office 365 versión Enero 2016 (Versión 16.0.7070.2036), con lo que
necesitaréis esta versión o superior para poder verlas.
La versión Office 365 es un servicio de suscripción de "MS Office en la nube" por
medio del cual se tiene acceso a MS Office desde cualquier dispositivo con acceso
a Internet, si bien también se puede instalar una copia en local en un dispositivo y
trabajar sin necesidad de Internet. Office 365 requiere una suscripción de pago y,
dado que la copia local ha de hacerse a través de la suscripción, nosotros no
tenemos acceso a una versión de prueba gratuita de Office 365.
 
No obstante, si tienes acceso a Internet con tarifa plana, puedes usar Office
Online Gratuito, también conocido como Microsoft OneDrive, que te permite
crear documentos de Excel en la nube con una versión más simple que la versión
de pago. Para acceder a Microsoft OneDrive ve al sitio web:
 
https://onedrive.live.com/
 
... haz clic en la opción "Suscríbete gratuitamente" y crea una cuenta
"xxx@outlook.com" o bien xxx@outlook.[tu país]. Entonces usa la opción "Nuevo
→ Libro de Excel". El inconveniente de Microsoft OneDrive es que las fórmulas
hay que teclearlas en inglés. Por ello, en este Minicurso, indicaremos la manera de
introducir la fórmula en inglés. En inglés los parámetros de una función van
separados por comas (,).Tienes un listado de equivalencias de nombres de
funciones en inglés y español en el sitio web:
 
http://www.piuha.fi/excel-function-name-translation/index.php?page=espanol-
english.html
 
 
 
Mira cómo se hace:

 
Nota: Si queréis estar informados de qué funciones nuevas se incorporarán a
Excel y en qué fecha, podéis visitar el sitio web "Hoja de Ruta de Excel" (en
inglés):
http://fasttrack.microsoft.com/roadmap
Incluso, si os atrevéis, podéis sugerir la incorporación de nuevas fórmulas que
vosotros creáis que son necesarias. Microsoft recibirá vuestra sugerencia y la
sopesará. Esto se hace en el sitio web "La Voz del Usuario" (en inglés):
https://excel.uservoice.com/
 
Función CONTAR.SI.CONJUNTO() para versiones
Excel 2007 y posteriores
Su sintaxis es:
 
=CONTAR.SI.CONJUNTO(rango de datos a contar;"criterio a comprobar en ese
rango";otro rango de datos;"otro criterio para ese rango";otro rango de
datos;"otro criterio para ese rango";...)

 
Nota: En inglés es =COUNTIFS(rango,"criterio",rango,"criterio",...)
 
CONTAR.SI.CONJUNTO() hace un conteo de cuántos elementos de una lista cumplen
uno o más criterios (pruebas lógicas) que se comprueban en una o varias
columnas de la lista. Observa que a la derecha de cada rango está el criterio a
comprobar en ese rango. Se puede poner hasta 127 rangos con sus
correspondientes 127 criterios. Entre estos 127 rangos se pueden repetir rangos
pero poniendo criterios distintos.
Los criterios siguen la misma sintaxis que hemos visto hasta ahora: los criterios o
pruebas lógicas van entre comillas porque las pruebas lógicas se han de poner
en forma de texto, pero por lo demás se usan los operadores lógicos normales
= , > , >= , <  , <= , <>. En el caso del operador igual (=) puede sustituirse por no
poner ningún operador y además puede ponerse el valor de comparación en una
celda externa.
Si has descargado los ejemplos, abrir el archivo "FuncionesSiConjunto.xlsx" en la
hoja "funciones SI CONJUNTO".
Vamos a hacer un conteo con más de un criterio, empezaremos por poner dos
criterios: contaremos en la celda K6 cuántas facturas no pagadas tiene el cliente
C001. Es decir, las dos pruebas lógicas son: que en la columna D haya un "C001"
y que en la columna F haya un "NO". Sigue estos pasos:

 Haz clic en la celda K6

 Teclea la fórmula =CONTAR.SI.CONJUNTO(D2:D21;"C001";F2:F21;"NO"), puedes

hacerlo tecleando los rangos a mano o seleccionando los rangos con el mouse

 Y acaba con un ENTER normal.

El resultado ha de ser:
7
Es decir, hay 7 facturas del cliente C001 no pagadas. Fíjate en que esta función
no tiene un parámetro que sea "rango a contar", simplemente el conteo se hace en
los mismos rangos en los que se ponen los criterios. Los rangos son comprobados
por columnas y cuando una fila de la lista cumple todos los criterios, se añade a la
cuenta.
Para ver más claramente qué celdas ha contado la función CONTAR.SI.CONJUNTO(),
te las mostramos coloreadas en verde:
 

 
Hemos coloreado primero en amarillo todas las filas con un C001 en la columna D,
luego en amarillo todas las filas con un NO en la columna F, y por último, y, por
último, las filas que coinciden que son amarillas a la vez en las columnas  D y
F, las hemos señalado en verde, que son las que entran en el conteo.
Dado que los criterios son comparación de igualdad (=), podemos obviar el signo
igual y además podemos poner el parámetro del criterio en una celda externa, en
este caso podemos usar las celdas K2 y K3. Sigue estos pasos:

 Haz clic en la celda K6

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula =CONTAR.SI.CONJUNTO(D2:D21;K2;F2:F21;K3), puedes

hacerlo tecleando los rangos a mano o seleccionando los rangos con el mouse
 Y acaba con un ENTER normal.

El resultado ha de ser igual que en la fórmula anterior:


7

Es decir, hay 7 facturas del cliente C001 no pagadas. Pero si vas cambiando el
contenido de las celdas K2 y K3, el resultado en K6 también va cambiando.
Puedes ir probando con valores de C001 hasta C006 en K2 y con valores SI o NO
en K3. Por ejemplo, C001 y SI da un valor de 1 en K6, C002 y SI da un valor de 3
en K6, C002 y NO da un valor de 1 en K6, etc.
 
Mira cómo se hace:

Nota: Tal como hemos dicho, para conseguir el mismo resultado en Excel 2003,
antes de que existiesen las funciones SI CONJUNTO, habría que haber usado la
siguiente fórmula de lógica matricial:
 
=SUMA((D2:D21=K2)*(F2:F21=K3)) y CONTROL+MAYUSCULAS+ENTER

 
o bien
 
=SUMAPRODUCTO((D2:D21=K2)*(F2:F21=K3)) y ENTER

 
... pero el tema de la lógica matricial lo veremos más adelante.
 
Recuerda que puedes poner hasta 127 pares de rango-criterio. Vamos a probar
con 4 criterios. Supón que te piden que pongas en la celda K6 cuántas facturas
hay del cliente C001 pagadas pero solamente las facturas del año que hay en la
celda L1. Aunque a primera vista no lo parezca, esto implica poner 4 criterios, esto
es debido a que para filtrar las facturas que sean de un cierto año, hay que poner
2 criterios: que la fecha en la columna B sea mayor o igual que el 1 de enero de tal
año y, al mismo tiempo, que la fecha en la columna B sea menor o igual que el 31
de diciembre de tal año. Si a esto añadimos los otros dos criterios de que la
columna D tenga un C001 y la columna F tenga un SI, da un total de 4 criterios.
Resumiendo, necesitamos contar cuántas filas de la lista de facturas cumplen lo
siguiente:
 

 Criterio 1: que la columna D tenga un C001, y...

 Criterio 2: que la columna F tenga un texto SI, y...

 Criterio 3: que la columna B tenga una fecha mayor o igual que FECHA(L1;1;1),

y...

 Criterio 4: que la columna B tenga una fecha menor o igual


que FECHA(L1;12;31)

Recordemos que en Excel, dentro de una fórmula, se puede poner una fecha entre
comillas para hacer criterios (por ejemplo "31/12/2010"), pero ello no es en
absoluto aconsejable porque cada país tiene un formato de fecha diferente y el
orden de "día/mes/año" no es válido en todas partes. Por eso, es aconsejable usar
la función FECHA(año;mes;día) que dará siempre un valor correcto independiente
del país o región en que se use Excel.
Hasta ahora hemos dicho que cuando un criterio es de igualdad, el signo igual (=)
se puede obviar, y poner el criterio en una celda externa.
 
Pero lo que no hemos dicho hasta ahora es que, para los demás criterios >, >=,
<, <=, <>, dado que no es posible obviarlos, si queremos usar dichos criterios con
una celda externa o con una fórmula, debe enlazarse dicha celda externa o dicha
fórmula con un carácter de concatenación (&).
 
Por ejemplo, supongamos que queremos usar una celda externa como A1 para
hacer una comparación en un criterio, todos los criterios posibles serían estos:
 

 Para igual que...  =nombrefuncion( ... A1 ...)

 Para mayor que... =nombrefuncion( ... ">"&A1 ...)

 Para mayor o igual que...  =nombrefuncion( ... ">="&A1 ...)

 Para menor que...  =nombrefuncion( ... "<"&A1 ...)

 Para menor o igual que...  =nombrefuncion( ... "<="&A1 ...)

 Para distinto que...  =nombrefuncion( ... "<>"&A1 ...)


Y en nuestro caso concreto, para la función FECHA(año;mes;día) deberíamos
poner:
 

 Para igual que...  =nombrefuncion( ... FECHA(año;mes;día) ...)

 Para mayor que...  =nombrefuncion( ... ">"&FECHA(año;mes;día) ...)

 Para mayor o igual


que...  =nombrefuncion( ... ">="&FECHA(año;mes;día) ...)

 Para menor que...  =nombrefuncion( ... "<"&FECHA(año;mes;día) ...)

 Para menor o igual


que...  =nombrefuncion( ... "<="&FECHA(año;mes;día) ...)

 Para distinto que...  =nombrefuncion( ... "<>"&FECHA(año;mes;día) ...)

Por tanto, sigue estos pasos para crear la fórmula que nos piden:

 Haz clic en la celda K3

 Teclea el texto "SI" y pulsa la tecla ENTER

 Haz clic en la celda K6

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula
 
=CONTAR.SI.CONJUNTO(D2:D21;K2;F2:F21;K3;B2:B21;">="&FECHA(L1;1;1);
B2:B21;"<="&FECHA(L1;12;31))
 

puedes hacerlo tecleando los rangos a mano o seleccionando los rangos con el
mouse

 Y acaba con un ENTER normal.

El resultado debería ser:


1

 
Mira cómo se hace:

 
Para que veas más claramente qué celdas ha contado la
función CONTAR.SI.CONJUNTO(), te las mostramos coloreadas en verde:
 

 
Hemos coloreado primero en amarillo todas las filas con un C001 en la columna D,
luego en amarillo todas las filas con un SI en la columna F, luego en amarillo todas
las filas con la fechas del año que hay en L2 y, por último, las filas que coinciden
que son amarillas a la vez en las columnas B, D y F, las hemos señalado en
verde, que son las que entran en el conteo.
Es decir, hay 1 facturas del cliente C001 del año en L1 que SI están pagadas.
Pero si vas cambiando el contenido de las celdas K2 y K3, o incluso el año en L1,
el resultado en K6 también va cambiando. Puedes ir probando con valores de
C001 hasta C006 en K2 y con valores SI o NO en K3. Por ejemplo, C001 y NO da
un valor de 5 en K6, C002 y NO da un valor de 0 en K6, C002 y SI da un valor de
3 en K6, etc.
Ahora hazlo tú:
Siguiendo en el archivo "FuncionesSiConjunto.xlsx", ve a la hoja "Cine" y, en la
celda N2, pon una fórmula para contar cuántas películas de "Aventura" de la
década desde 2010 hasta 2020 ambos inclusive tienen 500.000 o más votantes. El
resultado debería ser:
3
Nota: los rangos abarcan desde la fila 2 hasta la fila 178, pero puedes poner los
rangos desde la fila 2 hasta la fila 3000 en previsión de que se añadan más
películas con el tiempo.
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Los diversos criterios de una función SI CONJUNTO


son interpretados por Excel como un AND
En cualquier función SI CONJUNTO, Excel solamente contea (o suma, o
promedia...) las filas que cumplan todas las pruebas lógicas a la vez. Esto es lo
que en informática se denomina "un AND lógico", que vendría a ser lo que en el
lenguaje hablado diríamos "a la vez". Una función como CONTAR.SI.CONJUNTO(),
solamente incluye en el conteo las filas que cumplen todos los criterios "a la vez",
es decir: los criterios están formulados como un AND.
 
Una función SI CONJUNTO (ya sea sumar, contar, promediar, etc.) que tenga
varios criterios, interpreta dichos criterios como un AND, es decir, solamente
tomará en cuenta las filas que cumplan todos esos criterios "a la vez": criterio1
AND criterio2 AND criterio3 AND criterio4 AND ...
 
Por ejemplo, dijimos en un tema anterior que si alguien te pide cuántas facturas a
60 días hay del cliente C001 "y" del cliente C005, ese "y" habría que "traducirlo" a
Excel como una suma de funciones, y ello sigue siendo válido para las funciones
SI CONJUNTO. En ningún caso la solución es poner en una misma función dos
criterios para un mismo rango, en este caso el rango de clientes, dado que
ningún cliente es el cliente C001 y "a la vez" (AND) el C005.
Por ejemplo, siguiendo en el archivo "FuncionesSiConjunto.xlsx" en la hoja
"funciones SI CONJUNTO", si te piden contar cuántas facturas hay a 60 días del
cliente C001 "y" del cliente C005, habría que "traducir" a Excel como "las facturas
a 60 días del cliente C001" más "las facturas a 60 días del cliente C005".
Entonces, la fórmula correcta es:
 Haz clic en una celda vacía, por ejemplo en N2

 Teclea la fórmula:
=CONTAR.SI.CONJUNTO(C2:C21;60;D2:D21;"C001")
+CONTAR.SI.CONJUNTO(C2:C21;60;D2:D21;"C005")

 Y acaba con un ENTER normal.

El resultado es:
1

... que corresponde a las celdas contadas, que son las que aquí mostramos en
color verde:
 

 
Nunca habrá que usar una función como la que sigue porque dará un
resultado erróneo:

=CONTAR.SI.CONJUNTO(C2:C21;60;D2:D21;"C001";D2:D21;"C005")  →
¡siempre dará resultado cero porque ningún cliente es el cliente C001 y "a la
vez" (AND) es el cliente C005!
 
Uso del carácter de concatenación & para cambiar el
operador lógico (tema opcional)
Aprovechando que hemos visto cómo usar el carácter de concatenación & para
crear una prueba lógica usando una celda externa o una fórmula, vamos a ver que
& también puede usarse para cambiar el propio operador lógico de la propia
prueba lógica usando una celda externa. Ya hemos visto que los operadores
lógicos son 6, es decir, = , > , >=, < , <= , <>. Ahora vamos a ver una fórmula en la
que ponemos uno de estos 6 operadores lógicos en una celda externa para
permitir al usuario más versatilidad para elegir qué datos quiere ver.
 
Este es un tema opcional. Haz clic aquí para mostrar/ocultar el tema.

Función SUMAR.SI.CONJUNTO() para versiones


Excel 2007 y posteriores
Su sintaxis es:
 
=SUMAR.SI.CONJUNTO(rango de datos a sumar;rango de datos;"criterio a
comprobar en ese rango";otro rango de datos;"otro criterio para ese
rango";otro rango de datos;"otro criterio para ese rango";...)

 
Nota: En inglés es =SUMIFS(rango,rango,"criterio",rango,"criterio",...)
 
SUMAR.SI.CONJUNTO() hace una suma de los valores que hay en el primer rango de
datos, es decir, en el primer parámetro de la función. El resto de los criterios
indican qué filas de dicho rango usará Excel para calcular la suma. Observa que a
la derecha de cada rango está el criterio a comprobar en ese rango. Se puede
poner hasta 127 rangos con sus correspondientes 127 criterios. Entre estos 127
rangos se pueden repetir rangos pero poniendo criterios distintos.
 
Nota: observa que en la función SUMAR.SI() el primer parámetro es el rango al que
se aplica el criterio, mientras que en la función SUMAR.SI.CONJUNTO() el primer
parámetro es el rango al que se aplica la suma.
 
Los criterios siguen la misma sintaxis que hemos visto hasta ahora: los criterios
(pruebas lógicas) van entre comillas porque las pruebas lógicas se han de poner
en forma de texto, pero por lo demás se usan los operadores lógicos normales
= , > , >= , <  , <= , <>. En el caso del operador igual (=) puede sustituirse por no
poner ningún operador y además puede ponerse el valor de comparación en una
celda externa.
Si ya has descargado los ejemplos, abre el archivo "FuncionesSiConjunto.xlsx" en
la hoja "funciones SI CONJUNTO".
Vamos a hacer una suma con más de un criterio, empezaremos por poner dos
criterios: sumaremos en la celda K5 las facturas no pagadas del cliente C001. Es
decir, las dos pruebas lógicas son: que en la columna D haya un "C001" y que en
la columna F haya un "NO", pero lo que se suma serán los valores de la columna
E. En este caso usaremos directamente celdas externas para los criterios. Sigue
estos pasos:

 Haz clic en la celda K5

 Teclea la fórmula =SUMAR.SI.CONJUNTO(E2:E21;D2:D21;K2;F2:F21;K3), puedes

hacerlo tecleando los rangos a mano o seleccionando los rangos con el mouse

 Y acaba con un ENTER normal.

El resultado ha de ser:
5.898,00

... que es la suma de las cantidades de las facturas no pagadas de C001. Observa
que el primer parámetro de la función es la columna E y por tanto, como hemos
dicho, es el rango sobre el que Excel hace la suma.
Si vas cambiando los valores de las celdas K2 y K3, el resultado ira cambiando
según el cliente (pon en K2 los valores desde C001 hasta C006) y según desees
ver las facturas pagadas (pon un SI en K3) o las no pagadas (pon un NO en K3).
Observa que al primer parámetro, el "rango a sumar", no se le aplica ningún
criterio. Los rangos en los que Excel comprueba los criterios son los que se ponen
a partir del segundo parámetro. Estos rangos son comprobados por columnas y
cuando una fila de la lista cumple todos los criterios, se añade a la suma. Por
ejemplo, en este caso, con "C001" en K2 y "NO" en K3, las cantidades sumadas
han sido las que aquí indicamos en color verde:
 
 
Para conseguir el mismo resultado en Excel 2003, habría que haber usado la
función de lógica matricial:
=SUMA((E2:E21)*(D2:D21=K2)*(F2:F21=K3)) y
CONTROL+MAYUSCULAS+ENTER
o bien
=SUMAPRODUCTO((E2:E21)*(D2:D21=K2)*(F2:F21=K3)) y ENTER
... pero el tema de la lógica matricial lo veremos más adelante.
 
A pesar de que al primer parámetro de la función SUMAR.SI.CONJUNTO(), es decir,
el rango a sumar, no se le aplica ningún criterio, nada impide usar ese rango a
partir del segundo parámetro para ponerle algún criterio. Por ejemplo, supón que
te piden calcular cuánto totalizan las facturas no pagadas de C001 mayores o
iguales de 1000 euros a 30 días. Haz lo siguiente:

 Haz clic en la celda L2 e introduce el valor 30

 Haz clic en la celda L3 e introduce el valor 1000

 Haz clic en la celda K2 e introduce el texto "C001"

 Haz clic en la celda K3 e introduce el texto "NO"


 Haz clic en la celda K5 y pulsa la tecla SUPR para borrar su contenido

 Teclea la siguiente fórmula:


=SUMAR.SI.CONJUNTO(E2:E21;D2:D21;K2;C2:C21;L2;F2:F21;K3;E2:E21;">="&L3)

 Y acaba con un ENTER normal.

El resultado ha de ser:
3.443,00

... que es la suma de las cantidades de las facturas NO pagadas de C001 a 30


días mayores o iguales que 1000 euros.
 
Mira cómo se hace:

 
Observa que el primer parámetro de la función es la columna E y por tanto, como
hemos dicho, es el rango sobre el que Excel hace la suma, pero el último rango
también es la columna E sobre la que aplicamos el criterio que sea mayor o igual
que la cantidad que hay en L3. Hemos coloreado en amarillo el cliente C001, 30
días, NO pagadas y cantidad mayor o igual que 1000. Las filas que coincide que
son todas amarillas indican las celdas a las que afecta la suma, que te mostramos
en color verde:
 
 
Ahora hazlo tú:
Siguiendo en el archivo "FuncionesSiConjunto.xlsx", ve a la hoja "Cine" e intenta
poner en la celda N2 una función SUMAR.SI.CONJUNTO() que sume los votantes
de las películas con 500.000 o más votantes del género "Ciencia Ficción" (con
tilde la ó) a partir del año 2000 inclusive. Usa como rangos las columnas
completas. El resultado debería ser:
2388996

Nota: los rangos abarcan desde la fila 2 hasta la fila 178, pero puedes poner los
rangos desde la fila 2 hasta la fila 3000 en previsión de que se añadan más
películas con el tiempo.
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
Función PROMEDIO.SI.CONJUNTO() para
versiones Excel 2007 y posteriores
Su sintaxis es totalmente igual que SUMAR.SI.CONJUNTO(), la diferencia es
que PROMEDIO.SI.CONJUNTO() calcula el promedio de las celdas del primer rango:
 
=PROMEDIO.SI.CONJUNTO(rango de datos a promediar;rango de datos;"criterio
a comprobar en ese rango";otro rango de datos;"otro criterio para ese
rango";otro rango de datos;"otro criterio para ese rango";...)

 
Nota: En inglés es =AVERAGEIFS(rango,rango,"criterio",rango,"criterio",...)
 
PROMEDIO.SI.CONJUNTO() hace un promedio de los valores que hay en el primer
rango de datos, es decir, en el primer parámetro de la función. El resto de los
criterios indican qué filas de dicho rango usará Excel para calcular el promedio.
Observa que a la derecha de cada rango está el criterio a comprobar en ese
rango. Se puede poner hasta 127 rangos con sus correspondientes 127 criterios.
Entre estos 127 rangos se pueden repetir rangos pero poniendo criterios distintos.
 
Nota: observa que en la función PROMEDIO.SI() el primer parámetro es el rango al
que se aplica el criterio, mientras que en la función PROMEDIO.SI.CONJUNTO() el
primer parámetro es el rango al que se aplica el promedio.
Tener siempre en cuenta que, en una suma, las celdas con valores cero o vacías
no influyen en el resultado de la suma.
Por el contrario, un promedio da un cierto valor si las celdas a promediar contienen
algunos ceros y otro valor distinto si las celdas a promediar no contienen ceros.
Por tanto, es conveniente que te acostumbres a usar la función promedio de
manera diferente a la función suma según desees que los ceros influyan o no en
el resultado. Las celdas vacías no influyen en el cálculo del promedio.
 
Los criterios siguen la misma sintaxis que hemos visto hasta ahora: los criterios
(pruebas lógicas) van entre comillas porque las pruebas lógicas se han de poner
en forma de texto, pero por lo demás se usan los operadores lógicos normales = ,
> , >= , <  , <= , <>. En el caso del operador igual (=) puede sustituirse por no
poner ningún operador y además puede ponerse el valor de comparación en una
celda externa.
Si ya has descargado los ejemplos, abre el archivo "FuncionesSiConjunto.xlsx" en
la hoja "funciones SI CONJUNTO".
Vamos a hacer un promedio con más de un criterio: supón que te piden promediar
en la celda K4 las facturas no pagadas del cliente C001 y que los ceros no
influyan en el cálculo del promedio. Es decir, las pruebas lógicas son: que en la
columna D haya un "C001", que en la columna F haya un "NO" y que el valor en la
columna E sea mayor que cero. Lo que se promedia serán los valores de la
columna E. En este caso usaremos directamente celdas externas para los
criterios. Sigue estos pasos:

 Haz clic en la celda K4

 Entonces tienes dos opciones:

 Si quieres que los ceros influyan en el cálculo del promedio teclea esta fórmula:
=PROMEDIO.SI.CONJUNTO(E2:E21;D2:D21;K2;F2:F21;K3)

 Si quieres que los ceros no influyan en el cálculo del promedio teclea esta fórmula:
=PROMEDIO.SI.CONJUNTO(E2:E21;D2:D21;K2;F2:F21;K3;E2:E21;">0")

En este caso, teclea esta segunda fórmula, debido a que te piden que los ceros no
influyan en el cálculo.

 Y acaba con un ENTER normal.

El resultado debería ser:


842,57

 
Mira cómo se hace:

 
Nota: Tal como hemos dicho, para conseguir el mismo resultado en Excel 2003,
antes de que existiesen las funciones SI CONJUNTO, habría que haber usado la
siguiente fórmula de lógica matricial:
 
=PROMEDIO(SI((D2:D21=K2)*(F2:F21=K3)*(E2:E21>0)=1;(E2:E21);"")) y
CONTROL+MAYUSCULAS+ENTER
 
... pero el tema de la lógica matricial lo veremos más adelante.

Para comprobar que los ceros no influyen, puedes hacer clic en la celda E3, que
contiene el valor 345, e introducir un cero. Como resultado, el promedio aumenta a
925,50 porque el valor cero no influye, si influyese el cero, es decir, si hubieses
tecleado la primera de las dos fórmulas, el promedio habría disminuido a 793,29.
Haz clic en E3 y vuelve a introducir el valor 345.
Ahora hazlo tú:
Teclea en la celda K12 una fórmula con PROMEDIO.SI.CONJUNTO() que calcule el
promedio de las facturas NO pagadas del cliente C001, del año que hay en la
celda L9 y que los ceros no influyan en el cálculo del promedio. Usa las celdas
externas K10, K11 y L9 para la fórmula. El resultado debería ser:
1.226,00
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Operaciones matriciales de Tipo 3.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Operaciones matriciales de Tipo 3: Funciones SI


CONJUNTO.
Pasamos a la segunda entrega de las funciones SI CONJUNTO. Veremos en este
tema las funciones SI CONJUNTO que se añadieron a partir de Office 365
versión Enero 2016 (Versión 16.0.7070.2036), con lo que necesitaréis la versión
Office 365 o posterior para poder verlas.
Nota: En el momento de crear este Minicurso aún no existía una versión de Office
de escritorio independiente de Office 365 que implementase estas funciones.
 
Como explicamos en la entrega anterior, si no tienes esta versión, puedes ver el
uso de estas fórmulas en OneDrive de manera gratuita, pero las fórmulas estarán
en inglés. Volvemos a poner aquí la manera de obtener una cuenta de OneDrive
gratuita:
 
Mira cómo se hace:

Funciones MAX.SI.CONJUNTO() y
MIN.SI.CONJUNTO() para versiones Excel 2016 y
posteriores
Sus sintaxis son totalmente igual que PROMEDIO.SI.CONJUNTO(), la diferencia es
que MAX.SI.CONJUNTO() retorna un sólo valor que es el valor mayor de las celdas
del primer rango y MIN.SI.CONJUNTO() retorna un solo valor que es el valor menor
de las celdas del primer rango:

=MAX.SI.CONJUNTO(rango de datos en el que se busca el valor mayor;rango


de datos;"criterio a comprobar en ese rango";otro rango de datos;"otro
criterio para ese rango";otro rango de datos;"otro criterio para ese
rango";...)

=MIN.SI.CONJUNTO(rango de datos en el que se busca el valor menor;rango


de datos;"criterio a comprobar en ese rango";otro rango de datos;"otro
criterio para ese rango";otro rango de datos;"otro criterio para ese
rango";...)

 
Nota: En inglés es:
=MAXIFS(rango,rango,"criterio",rango,"criterio",...) y
=MINIFS(rango,rango,"criterio",rango,"criterio",...)
 
MAX.SI.CONJUNTO() busca el valor más grande que hay en el primer rango de
datos, es decir, en el primer parámetro de la función. El resto de los criterios
indican qué filas de dicho rango usará Excel para buscar el valor más grande. La
función  MIN.SI.CONJUNTO() hace lo mismo pero busca el valor más pequeño.
Observa que a la derecha de cada rango está el criterio a comprobar en ese
rango. Se puede poner hasta 127 rangos con sus correspondientes 127 criterios.
Entre estos 127 rangos se pueden repetir rangos pero poniendo criterios distintos.
 
Nota: en una búsqueda de un valor máximo o un valor mínimo dentro de un rango,
las celdas de dicho rango con valores cero influyen en el resultado final. Por tanto,
es conveniente que te acostumbres a usar las funciones MAX y MIN de manera
diferente a la función suma, según desees que los ceros influyan o no en el
resultado. Las celdas vacías no influyen en el cálculo del máximo o del mínimo.
 
Los criterios siguen la misma sintaxis que hemos visto hasta ahora: los criterios
(pruebas lógicas) van entre comillas porque las pruebas lógicas se han de
poner en forma de texto, pero por lo demás se usan los operadores lógicos
normales = , > , >= , <  , <= , <>. En el caso del operador igual (=) puede
sustituirse por no poner ningún operador y además puede ponerse el valor de
comparación en una celda externa.
Si ya has descargado los ejemplos, abre el archivo "FuncionesSiConjunto-2.xlsx"
en la hoja "MAX y MIN", que tiene que tener este aspecto:
 

 
Observa que hay unos números positivos, cero y negativos dentro del rango desde
A2 hasta E11. Supón que te piden calcular el número más grande y el número
más pequeño de dichos números, pero con la condición de incluir en los cálculos
solamente los valores que están entre -1000 y 1000 ambos inclusive, dicho de otra
manera, entre lo que hay en H4 y H5. Los valores cero han de ser incluidos en los
cálculos. Sigue estos pasos:

 Haz clic en la celda H6

 Teclea la fórmula:
=MIN.SI.CONJUNTO(A2:E11;A2:E11;">="&H4;A2:E11;"<="&H5)

 Y acaba con un ENTER normal

 Haz clic en la celda H7

 Teclea la fórmula:
=MAX.SI.CONJUNTO(A2:E11;A2:E11;">="&H4;A2:E11;"<="&H5)

 Y acaba con un ENTER normal.

Nota: observa que la segunda fórmula es exactamente igual que la primera salvo


que cambia la palabra MIN por MAX. Puedes aprovechar esto para crear la
segunda fórmula a partir de la primera.

El resultado debería ser:


 

 
Mira cómo se hace:

 
Es decir, Excel ha incluido en los cálculos solamente los números entre -1000 y
1000 de los valores que hay en el rango A2:E11, el número más pequeño que ha
hallado Excel es -950 y el más grande es 850. Las celdas que Excel ha incluido en
los cálculo te las ponemos en color amarillo y el máximo y el mínimo en color
verde:
 
 
Puedes ir cambiando los valores que hay en H4 y H5 y los valores mínimo y
máximo irán cambiando:
 

 
Observa que los ceros están incluidos dentro de los valores que Excel incluye en
los cálculos.

Nota: Tal como hemos dicho, para conseguir el mismo resultado en Excel 2003,
2007, 2010, 2013 y 2016 antes de que existiesen estas funciones, habría que
haber usado las siguientes fórmulas de lógica matricial si se quiere incluir los
ceros en los cálculos:
 
=MIN((A2:E11>=H4)*(A2:E11<=H5)*(A2:E11)) y
CONTROL+MAYUSCULAS+ENTER
y
=MAX((A2:E11>=H4)*(A2:E11<=H5)*(A2:E11)) y CONTROL+MAYUSCULAS+ENTER

... pero el tema de la lógica matricial lo veremos más adelante.


Ahora hazlo tú:
Se trata de que cambies las dos fórmulas para que los ceros no influyan en el
cálculo del máximo y del mínimo. Por ejemplo, poniendo en H4 y H5 los valores
-10000 y 0 el resultado debería ser:
 

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
 
Nota: no existen en Excel funciones para obtener el mínimo y el máximo de un
rango con un solo criterio. Es decir, tanto si queremos usar un solo criterio como si
queremos usar varios criterios, habrá que usar siempre MAX.SI.CONJUNTO() y
MIN.SI.CONJUNTO().
 
 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Operaciones matriciales de Tipo 4.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Operaciones matriciales de Tipo 4 (fórmulas


matriciales de resumen que se ponen en una
celda y se copian con el cuadro de relleno).
Las hemos definido antes como:
"TIPO 4: Fórmulas matriciales de Tipo 2 ó 3 que se crean en una celda y
luego se copian en un rango de celdas con el cuadro de relleno. Es lo mismo
que hacemos con las funciones normales. Lo importante es que no deben
confundirse con fórmulas de Tipo 1. En estos casos hay que tener en cuenta cómo
se ponen los $ en los rangos."
En este Minicurso hemos clasificado las fórmulas matriciales como de Tipo 1, Tipo
2, Tipo 3 y Tipo 4. Pero esta clasificación solamente queda dentro de este
Minicurso. Microsoft no hace esta clasificación. Microsoft subdivide las fórmulas
matriciales en multicelda y unicelda. Las multicelda equivalen a nuestra
clasificación de Tipo 1, y las unicelda entrarían en las de Tipo 2 y 3 pero también
en el Tipo 4 que vamos a ver ahora.
Siempre que hablamos de matrices unicelda, es lo mismo que hablar de
una función de resumen (suma, promedio, conteo...) dentro de la cual ponemos
una fórmula matricial multicelda o bien varios rangos y criterios.
En las fórmulas matriciales de Tipo 4, lo que vamos a hacer es teclear, en una
sola celda, una función de resumen unicelda de Tipo 2 o de Tipo 3. Pero
entonces, lo que haremos será copiar con el cuadro de relleno esa fórmula con la
finalidad de repetir esa fórmula en varias celdas porque queremos
tener varias fórmulas de resumen.
 
De acuerdo con nuestra clasificación en este Minicurso, las fórmulas matriciales
de Tipo 4 están formadas por varias funciones de resumen matriciales pero que,
con la finalidad de ahorrarnos el trabajo de teclearlas todas una por
una, solamente teclearemos la primera de ellas y el resto las copiaremos con el
cuadro de relleno. Para que esto funcione correctamente, habrá que
poner referencias absolutas en los rangos.
 
Vamos a ver cómo se hacen.
 
Si ya has descargado los ejemplos, abre el archivo "MatricesTipo4.xls" en la hoja
"Resúmenes", que tiene que tener este aspecto:
 

 
En el tema anterior hemos usado la función CONTAR.SI() como función de Tipo 3.
Esto nos permitía contar los clientes. Por ejemplo, cuántos clientes eran el "C001".
Ahora vamos a hacer lo mismo pero en muchas celdas a la vez y tecleando la
fórmula solamente una vez. Sigue estos pasos:

 Haz un clic en K5

 Teclea la fórmula =CONTAR.SI(D2:D21;J5)

 Acaba con un ENTER normal.

Es de Tipo 3, por tanto, acaba con un ENTER normal. Al hacerlo tenemos el


primer resumen que es el conteo de las facturas que hay del cliente "C001":
 
 
Lo que pasa es que con esta fórmula de resumen unicelda (de Tipo 3 en este
caso) no me basta. Necesito más fórmulas de resumen en el resto de la
columna hasta K10 para el resto de los clientes.
Ahora bien, como que estas fórmulas que necesito hasta K10 cumplen el mismo
patrón que la primera fórmula en K5, no necesito teclearlas todas. Puedo hacer
clic en K5 y copiar la fórmula hasta K10, así me ahorro de volver a teclear cada
función de resumen. Es decir, lo que estoy haciendo es ahorrarme el trabajo de
teclear, no tiene nada que ver con hacer una matriz desde K5 hasta K10.
Por consiguiente, hemos de respetar el uso de los $, ya que en este caso
rellenaremos el rango hasta K10 con la misma fórmula y debemos cumplir las
reglas de referencias absolutas y relativas. Es exactamente lo mismo que se hace
con las fórmulas normales no matriciales, no hay más misterio. Para conseguirlo,
haz los siguientes pasos:

 Haz clic en K5

 Coloca el puntero del mouse en la barra de fórmulas y selecciona la parte de la


fórmula que aquí resaltamos en color:
=CONTAR.SI(D2:D21;J5)

 Pulsa la tecla F4, la fórmula cambia a =CONTAR.SI($D$2:$D$21;J5). Recuerda

que la tecla F4 convierte los rangos relativos en rangos absolutos sin necesidad
de que tengas que teclear los $ a mano.

Nota: esta fórmula la podías haber tecleado poniendo los dólares ($) directamente
a mano tranquilamente.

 Y acaba con un ENTER normal

El resultado en K5 no cambia porque en realidad sigue siendo la misma fórmula


de antes, pero ahora con los rangos como referencia absoluta. Ahora esta fórmula
ya está lista para ser copiada hasta K10. Sigue estos pasos:

 Haz clic en K5
 Coloca el puntero del mouse en el cuadro de relleno del selector de celda (parte
inferior derecha de K5). El puntero del mouse toma forma de una cruz pequeña.

 Arrastra con el mouse hasta K10 (o si quieres haz doble clic en el cuadro de
relleno)

El resultado debería ser:


 

 
Lo que me da cuántas facturas tiene cada cliente, desde el cliente C001 hasta el
cliente C006.
Y las fórmulas en cada celda deberían ser las siguientes (destacamos en color la
parte que cambia en cada fórmula):
 
=CONTAR.SI($D$2:$D$21;J5)
=CONTAR.SI($D$2:$D$21;J6)
=CONTAR.SI($D$2:$D$21;J7)
=CONTAR.SI($D$2:$D$21;J8)
=CONTAR.SI($D$2:$D$21;J9)
=CONTAR.SI($D$2:$D$21;J10)

 
Lo que hemos hecho, es en realidad lo habitual para rellenar una columna con la
misma fórmula. Hemos puesto en la celda K5 una sola función de
resumen. Entonces, dado que necesitábamos la misma función de resumen para
el resto de las columna, lo que hemos hecho ha sido copiarla. En realidad, cada
una de las celdas desde K5 hasta K10 contiene una función de resumen
independiente, lo que ocurre es que en vez de teclearlas todas una por una,
solamente he tecleado la primera fórmula y he usado el cuadro de relleno para
ahorrarme trabajo. Es igual que cuando queremos rellenar una columna con
funciones no matriciales. Eso sí, es necesario poner bien los $ para que, al copiar
la fórmula, no cambien los rangos.
 
Por tanto, una fórmula matricial de Tipo 4 no es más que hacer siempre este
proceso para tener muchas fórmulas de resumen: teclear solamente la primera
fórmula de resumen matricial con los $ en los rangos y copiar dicha fórmula en el
resto de las celdas.
 
 
Mira cómo se hace:

 
Ahora hazlo tú:
Supón que te piden que, en las celdas desde L5 hasta L10, calcules la suma de
las facturas no pagadas y vencidas para cada cliente. Los clientes están en las
celdas desde J5 hasta J10. Cada suma de cada cliente ha de estar en la misma
fila que su correspondiente cliente en la columna J. Teclea solamente en L5 la
fórmula para el cliente C001 y las demás fórmulas para los demás clientes
cópialas de esta primera fórmula.
Ten en cuenta lo siguiente: Has de usar una fórmula SI CONJUNTO. La suma se
calcula en base a los valores de la columna E. El cliente es el que está en la
columna D. "No pagadas" significa que haya un "NO" en la columna F. "Vencidas"
significa que haya una "X" en la columna G. El resultado debería ser:
 

 
Te damos una pista (1):
Clic aquí para ver

 
Te damos una pista (2):
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Funciones más útiles para crear fórmulas
matriciales en Excel. Parte 1.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Funciones más útiles en el mundillo de las


fórmulas matriciales de Excel
Con lo visto hasta ahora, ya deberíais tener una idea clara de lo que son las
fórmulas matriciales y de cómo construirlas. Básicamente, las fórmulas matriciales
más usadas son las de Tipo 2 y Tipo 3 pero, para crear una fórmula de Tipo 2, hay
que conocer el uso de las fórmulas matriciales de Tipo 1 como ya vimos.
 
En este tema vamos a ver cuáles son las funciones estándares de Excel que son
más útiles para ser usadas como funciones matriciales, tanto de Tipo 1, como Tipo
2, como Tipo 3 y como Tipo 4. Por tanto, en este tema, vamos a mezclar los 4
tipos de fórmulas matriciales y vamos a usar muchas funciones estándar como
matriciales.
 
En concreto vamos a ver aquellas funciones que tienen más "fama" en el mundillo
de las fórmulas matriciales por ser las que tienen más utilidad: funciones que nos
ahorran el uso de fórmulas estándar muy complejas y funciones que permiten
hacer cosas con fórmulas matriciales que con fórmulas estándar no se pueden
hacer (o que al menos no se pueden hacer en el momento de crear este
Minicurso).
Recuerda que la mayoría de las funciones estándar de Excel pueden usarse como
matriciales. Simplemente hay que teclear rangos en vez de celdas en sus
parámetros y acabar introduciéndolas con CONTROL+MAYUSCULAS+ENTER
(salvo las de Tipo 3). En el mundillo de las matrices de Excel el uso de
CONTROL+MAYUSCULAS+ENTER, o también llamado
CONTROL+SHIFT+ENTER, se abrevia como "fórmulas CSE".
Nota: Hay que hacer notar que, otros softwares de hoja de cálculo de empresas
que no son Microsoft, no usan "CSE" para crear fórmulas matriciales a partir de
fórmulas estándar, sino que usan otros métodos. Por ejemplo, uno de los métodos
usados es anidar la fórmula estándar dentro de una función especial, por ejemplo,
MATRICIAL(fórmula estándar), y entonces la fórmula ya es matricial. De hecho,
Microsoft está sopesando la posibilidad de incluir, en futuras versiones de Excel, la
fórmula ARRAY(fórmula estándar) que convierte una fórmula estándar en matricial
sin necesidad de usar CSE.
 
Empecemos a verlas.
 

Funciones SI() anidadas y función SI.CONJUNTO() a


partir de la versión de Office 365 enero 2016
Si estás siguiendo un Minicurso de fórmulas matriciales como este, significa que
ya estás muy avanzado en el uso de Excel. Por tanto ya deberás conocer el uso
de las funciones SI() anidadas y, por tanto, ya deberás conocer también que
los SI() anidados son bastante liosos de usar y, siempre que se pueda, hay que
evitar utilizarlos. La mejor manera de evitar el uso de SI() anidados es usando la
lógica matricial. Pero la lógica matricial la veremos más adelante.
Por ahora vamos a ver la función SI.CONJUNTO() que nos evitará tener que
usar SI() anidados. Ahora bien, esta función SI.CONJUNTO() fue incorporada a
Excel a partir de la versión Office 365 enero 2016, por lo que, si tenéis versiones
anteriores, como Excel 2003, 2007, 2010, 2013 ó Excel 2016 escritorio, no podréis
usarla, pero recordar que podéis usarla gratuitamente en OneDrive.com con la
condición de que la uséis en inglés: en inglés es la función IFS().
Funciones SI() anidadas a partir de la versión Excel 97
Por todo ello, empezaremos viendo los SI() anidados estándar, los "liosos" por
decirlo de manera clara. Pero no los veremos en profundidad. Preferimos entrar en
profundidad en la lógica matricial, que es mucho más eficiente.
Si ya has descargado los ejemplos, abre el archivo "MasUsadasEnMatrices.xls" en
la hoja "Resúmenes", que tiene que tener este aspecto:
 

 
Supón que te piden que obtengas, en la celda L2, la suma de las facturas del
cliente C001 y de 30 días a la vez. Para ello, pon "C001" en J2 y 30 en K2. Pero te
piden hacerlo usando funciones SI() anidadas porque quieren el archivo en
formato Excel 2003 (.xls) que no tiene incorporadas las funciones SI CONJUNTO.
Sigue estos pasos:

 Haz clic en L2

 Teclea la fórmula =SUMA(SI(D2:D21=J2;SI(C2:C21=K2;E2:E21)))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado es:
5.426

Nuevamente cambiando los valores en J2 y K2 obtenemos valores


distintos. Observa que no se pone nada en la parte falsa del SI() lo que implica
que, si no se cumple el criterio, la función SI() retorna un valor nulo que no influye
en la suma. Esta fórmula sólo retorna la suma de las celdas del rango E2:E21 que
cumplan los criterios requeridos.
Al crear una fórmula con varias funciones SI() anidadas, el anidamiento ha de ser
organizado con un cierto orden: de mayor a menor, de menor a mayor, de
contenedor a contenido... en base al hecho de que Excel evalúa
los SI() anidados de izquierda a derecha. Este orden se puede "dibujar" en
forma de esquema:
 

 
 
Nota importante: quizás sepas que se puede simplificar la creación de
una fórmula estándar usando columnas enteras como rangos, por ejemplo D:D,
C:C, E:E... Pero es importante saber que el uso de columnas enteras como rangos
fue añadido a partir de la versión Excel 2007. Por tanto, para cualquier archivo que
tengáis que hacer compatible con Excel 2003, en formato .xls, hay que usar
rangos limitados, nunca columnas enteras. En este caso concreto hemos usado
D2:D21, C2:C21 y E2:E21. Nunca deberíamos usar D:D, C:C o E:E para un
archivo .xls incluso aunque estemos trabajando en "modo compatibilidad" con un
archivo .xls en una versión igual o mayor que Excel 2007.
 
En una fórmula matricial acabada con
CONTROL+MAYUSCULAS+ENTER nunca deben usarse columnas enteras
como rangos. Los resultados serán totalmente erróneos.
 
 
Ahora hazlo tú:
Te proponemos algo muy sencillo. La fórmula matricial
anterior =SUMA(SI(D2:D21=J2;SI(C2:C21=K2;E2:E21))) ¿Es de Tipo 1, 2, 3 ó 4
según la clasificación hecha en este Minicurso? ¿Y según la clasificación que hace
Microsoft?
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
Ahora hazlo tú:
Continuamos en el archivo "MasUsadasEnMatrices.xls" en la hoja "Resúmenes".
Supón que te piden que pongas en la celda M2 una sola fórmula, sin usar rangos
con valores intermedios, que calcule cuántas facturas tiene el cliente C001 a 30
días. La fórmula que pongas ha de ser compatible con Excel 2003. El resultado
debería ser:
6

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
Ahora hazlo tú:
Te piden que rellenes las celdas L3 y L4 con la fórmula que hay en L2, y que
rellenes las celdas M3 y M4 con la fórmula que hay en M2. Has de hacerlo de
manera tal que las 6 fórmulas resultantes referencien siempre al cliente que hay
en J2. En cambio, la referencia a los plazos de pago de 30, 60 y 90 días en las
celdas K2, K3 y K4, ha de cambiar en las fórmulas de las filas 2, 3 y 4
respectivamente. Fíjate que lo que te piden es que conviertas las fórmulas de Tipo
2 que hay en L2 y M2, en fórmulas de Tipo 4, y que las arrastres con el cuadro de
relleno para rellenar las filas 3 y 4. El resultado debería ser:
 

 
Nota: recuerda que las fórmulas matriciales de Tipo 1 y Tipo 2 aparecen entre
llaves { y } en la barra de fórmulas. Cuando rellenas un rango a partir de una
fórmula de resumen matricial de Tipo 2, las fórmulas que aparecerán en ese rango
también serán matriciales de Tipo 2 y quedarán entre llaves { y }.
 
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Función SI.CONJUNTO() para evitar SI() anidados


La función SI.CONJUNTO() fue incorporada a Excel a partir de la versión Office
365 enero 2016, por lo que, si tienes versiones anteriores, como Excel 2007, 2010,
2013 ó Excel 2016 escritorio, no podrás usarla, pero recuerda que puedes usarla
gratuitamente en OneDrive.com con la condición de que la uses en inglés: en
inglés es la función IFS().
Efectivamente, dado que los SI() anidados son, como hemos dicho, "liosos", los
usuarios solicitaron a Microsoft que incorporase una función nueva que evitase
usar SI() anidados. Como resultado, Microsoft incorporó a Office 365 Professional
en la nube la función SI.CONJUNTO(). En el momento de crear este Minicurso, la
función aún no estaba disponible en la versión de Office para escritorio, pero será
incorporada, si tiene éxito, junto con MAX.SI.CONJUNTO(), MIN.SI.CONJUNTO() y
otras funciones que facilitan el manejo de cadenas de texto.
Su sintaxis es la siguiente:
=SI.CONJUNTO(criterio;valor a retornar si VERDADERO;otro criterio;otro
valor a retornar si VERDADERO;otro criterio;otro valor retornar si
VERDADERO;...)

Nota: En inglés es =IFS(criterio,valor si TRUE,criterio,valor si TRUE,criterio,valor


si TRUE,...)
 
En la función SI.CONJUNTO() los criterios son operaciones lógicas estándares,
igual que en la función SI() estándar. Es decir, no son textos, como ocurre en
otras funciones SI CONJUNTO.
 
Los criterios (pruebas lógicas) son operaciones lógicas que evalúan a VERDADERO o
FALSO. Son los criterios estándar  = , > , >= , <  , <= , <>, pero, dado que no son
criterios en forma de texto como ocurre en otras funciones SI CONJUNTO, se
pueden usar funciones de información como ESTEXTO(), ESNUMERO(),
ESBLANCO(), ESERROR() y otras. A partir de Excel 2013 se añadió la función de
información ESFORMULA().
Excel evalúa los criterios por el mismo orden en que están tecleados en la fórmula
(de izquierda a derecha igual que los SI() anidados). Cuando un criterio evalúa
a VERDADERO, la función SI.CONJUNTO() retorna el valor que hay a la derecha del
criterio evaluado como VERDADERO y detiene la evaluación, es decir, ya no evalúa
los demás criterios. Se puede poner hasta 127 criterios con sus
correspondientes 127 valores a retornar, lo que se denomina 127 pares criterio-
valor.
 
No obstante, esta función ha sido diseñada con la finalidad de reemplazar a
los SI() anidados, por lo que tiene algo de "truco" para usarla. Vamos a verlo.
 
Dado que es una función nueva, primero vamos a ver cómo se usa de manera
estándar y, una vez entendido eso, pasaremos a ver cómo se usa a nivel matricial.
 
SI.CONJUNTO() no es una función matricial de por sí y ni siquiera trabaja con
rangos ordenados. Es una función estándar que trabaja con celdas individuales
como parámetros. Es muy similar a la función estándar SI(). Pero, al igual que la
mayoría de las funciones estándar de Excel, se puede usar como función matricial
de Tipo 1 multicelda o dentro de una función de resumen de tipo 2 unicelda,
siempre que se introduzca con CONTROL+MAYUSCULAS+ENTER.
 
Continuamos en el archivo "MasUsadasEnMatrices.xls" en la hoja "Resúmenes".
Observa que la columna I está vacía. Supón que te piden que pongas en la celda
I2 una fórmula estándar no matricial, que retorne la cantidad de cada factura si
el cliente en D2 es el mismo que hay en J2, si además la factura es del primer
semestre del año y si además la cantidad de la factura es mayor o igual que 500.
Sigue estos pasos:

 Haz clic en J2 e introduce el texto "C001"

 Haz clic en I2

 Teclea la fórmula
=SI.CONJUNTO(D2<>$J$2;"";MES(B2)>6;"";E2>=500;E2)

 Acaba con un ENTER, esto no es porque sea una función de Tipo 3, sino porque
es una función estándar de toda la vida: ni es matricial ni trabaja con rangos
ordenados

 Haz clic otra vez de I2

 Arrastra por el cuadro de relleno (parte inferior derecha de la celda) hasta I21 para
rellenar la columna I con la misma fórmula.

El resultado es:
 
 
Con este resultado, a primera vista parece que la función tiene algún fallo puesto
que en la columna I aparecen errores #N/A. Ni siquiera podemos ver la suma en
I22 que también es #N/A. Pero esto no es un fallo de la función.
El problema de los errores #N/A viene dado por dos motivos:
- Hemos dicho que, cuando uno de los criterios evalúa a VERDADERO, la función
retorna el valor que hay a la derecha de dicho criterio VERDADERO y la función ya no
evalúa más criterios. Se detiene. En los casos en que ninguno de los criterios
de SI.CONJUNTO() evalúe a VERDADERO, la función llega al último criterio y ya no
tiene más criterios que evaluar. Microsoft decidió que, en estos casos, la función
retornará un #N/A, con lo que, en realidad, la función nos está diciendo que no
hemos previsto qué valor ha de ser retornado cuando ningún criterio
sea VERDADERO. La solución es bien sencilla, forzamos a que el último criterio sea
siempre VERDADERO y que retorne el valor que queramos. En este caso concreto
queremos que retorne un nulo "", por tanto lo mejor es cambiar la fórmula como
sigue:

 Haz clic en I2

 Cambia la fórmula añadiendo al final este par criterio-valor:


=SI.CONJUNTO(D2<>$J$2;"";MES(B2)>6;"";E2>=500;E2;VERDADERO;"")

 Acaba con un ENTER normal (recuerda que la función no es matricial)


 Haz clic otra vez de I2

 Arrastra por el cuadro de relleno (parte inferior derecha de la celda) hasta I21 para
rellenar la columna I con la misma fórmula.

El resultado es:
 

 
Ahora han desaparecido los errores #N/A, dado que hay un criterio que siempre
evaluará a VERDADERO, el último criterio, y siempre devolverá un nulo "". Ahora
podemos ver en I22 que la suma de las facturas solicitadas es:
4019
 
Al usar la función SI.CONJUNTO() hay que prever qué valor queremos que devuelva
cuando ningún criterio (prueba lógica) evalúa a VERDADERO. Por defecto, si no
hacemos nada, devolverá #N/A.

- El otro motivo por el que la fórmula puede retornar un #N/A es el siguiente. Si


miras bien la fórmula, verás que no se corresponde exactamente con lo que te
hemos pedido. No se corresponde a nivel de lenguaje hablado. Es decir:
 te hemos pedido que mires si el cliente es el que hay en J2 pero el criterio que
hemos puesto es D2<>$J$2, justo lo contrario de lo que te hemos dicho

 te hemos pedido que mires si la fecha es del primer semestre (mes <= 6) pero el
criterio que hemos puesto es MES(B2)>6, justo lo contrario de lo que te hemos
dicho

 y, como último criterio, te hemos pedido que mires si la cantidad es >=500 y, en


este caso, el criterio que hemos puesto es E2>=500. Esta vez sí que es lo mismo
que te hemos dicho, así que, en caso de que evalúe a VERDADERO, la función
retorna E2 que es la cantidad solicitada.

 
La contradicción que hay entre lo que te hemos pedido a nivel hablado y los
criterios que hemos tecleado a nivel lógico, es debida a que la
función SI.CONJUNTO() no tiene la misma libertad de uso que la función SI(). Con
la función SI(criterio;parte verdadera; parte falsa) tenemos la libertad de
anidar, según nos convenga, otro SI() en la parte verdadera o de anidar
otro SI() en la parte falsa o de anidar dos SI() en las partes verdadera y falsa.
Pero en la función SI.CONJUNTO() no tenemos esta libertad, estamos obligados a
devolver una valor cuando se cumple el criterio y, si no se cumple, pasar al
siguiente criterio. Solamente podemos jugar con dejar un criterio tal como nos lo
han solicitado o negar ese criterio si queremos que Excel continúe la evaluación
hacia los siguientes criterios. Observa que:

 la negación lógica de cliente=J2 es cliente<>J2

 la negación lógica de mes<=6 es mes>6.

A continuación te ponemos una tabla con las negaciones lógicas de los


operadores lógicos:
 

Operador Negación

= <>

> <=

>= <

< >=
<= >

<> =

ESTEXTO() ESNOTEXTO()

ES.PAR() ES.IMPAR()

 
Además, observa en la fórmula anterior que, en cada par criterio negado-valor, el
valor es un nulo "". Así, si se cumple el criterio negado, la función retorna un valor
nulo "" y este valor nulo no influirá en el resultado final de la suma que hemos
puesto en la celda I22. Los nulos tampoco influyen en un promedio, un conteo, etc.
En nuestro caso:

 El primer criterio es que el cliente sea distinto del que hay en J2, si no es el cliente
que hay en J2 retorna un nulo. Si el cliente es el que hay en J2 continúa la
evaluación en el segundo criterio

 El segundo criterio es que la fecha de la factura no sea del primer semestre, si no


es del primer semestre retorna un nulo. Si el del primer semestre continúa la
evaluación en el tercer criterio

 El tercer criterio es que la cantidad sea mayor o igual que 500, si es mayor o igual
que 500 devuelve la cantidad
 El resultado final es que la función SI.CONJUNTO() solamente devolverá la

cantidad de la factura cuando el cliente es el que hay en J2 y cuando el mes es


<=6.

 
Para que lo veas más claro, en la siguiente imagen hemos puesto en color oscuro
las celdas que cumplen los dos primeros criterios negados, en color amarillo las
que cumplen tercer criterio sin negar y, las que están en color verde, son las que
coinciden que las filas no están color oscuro y sí que están en color amarillo:
 
 
 
En esta fórmula, además, hemos añadido un cuarto criterio para que, en caso de
que ningún criterio se cumpla, la función retorne un valor nulo "". Este cuarto
criterio no es estrictamente necesario.
 
Para que lo veas aún más claro, hemos "dibujado" el orden de evaluación de los
criterios en forma de esquema. Los recuadros de color oscuro son los criterios
negados, en color amarillo es el último criterio no negado, y en color verde hemos
puesto el cuarto criterio que evalúa siempre a VERDADERO:
 
 
 
Por tanto, el "truco" para usar la función SI.CONJUNTO() es negar todos los
criterios excepto el último. Opcionalmente, después del último par criterio-valor,
puedes añadir este otro par: ...;VERDADERO;"") para que SI.CONJUNTO() retorne
un valor nulo "" si no se cumple ninguno de los criterios.
 
Quizás estés pensando que, visto todo esto, a lo mejor al final va a resultar que es
más fácil usar los SI() anidados. Pero SI.CONJUNTO() admite 127 pares criterio-
valor, mientras que si usas la función SI() podrás anidar 7 funciones SI() en
Excel 2003 y 64 funciones SI() en Excel 2007+, cada una dentro de la otra, lo que
hace que los SI() anidados tengan muchos paréntesis. Además, acostumbrarse a
usar la tabla de negaciones es, a la larga, más fácil que tener que pelearse con
una fórmula con montones de paréntesis. Lo dice la experiencia.
 
Una vez visto el uso de la función SI.CONJUNTO() estándar, no matricial, vamos a
ver su uso matricial que es lo que nos interesa.
 
Continuamos en el archivo "MasUsadasEnMatrices.xls" en la hoja "Resúmenes".
Empezaremos usando la misma función que hemos usado, pero en formato
matricial de Tipo 1. No es esto lo que nos interesa, sino que lo que nos interesa es
usar una función de resumen SUMA matricial de Tipo 2. Pero, como todas las
fórmulas matriciales de Tipo 2, primero hay que entender la fórmula matricial de
Tipo 1 que tiene anidada. Sigue estos pasos:

 Haz clic en J2 e introduce el texto "C001"

 Selecciona desde I2 hasta I21


 Pulsa la tecla SUPR para borrar su contenido

 Asegúrate de que sigue seleccionado el rango desde I2 hasta I21 y, sin hacer clic
en ningún sitio para que no se deshaga la selección, teclea la siguiente fórmula:
=SI.CONJUNTO(D2:D21<>J2;"";MES(B2:B21)>6;"";E2:E21>=500;E2:E21;VERDADERO;
"")

 Y acaba con CONTROL+MAYUSCULAS+ENTER

El resultado ha de ser igual que antes:


 

 
La diferencia es que si haces clic en cualquier celda del rango I2:I21 la fórmula
que aparecerá será una fórmula matricial de Tipo 1:
 
{=SI.CONJUNTO(D2:D21<>J2;"";MES(B2:B21)>6;"";E2:E21>=500;E2:E21;VERDADERO
;"")}

 
Mira cómo se hace:

 
Observa que J2 no tiene $. En las funciones matriciales de Tipo 1 cualquier
referencia a una celda externa equivale a una referencia absoluta. Observa
además que, como toda función matricial de Tipo 1, no hemos usado celdas sino
rangos.
Ahora viene cuando, al fin, te pedimos lo que deseamos: te pedimos que calcules
en la celda I22 la suma de las facturas del cliente que hay en J2, del primer
semestre y con la cantidad mayor o igual que 500, sin usar celdas con valores
intermedios. Esta vez te piden que el archivo sea compatible con Office 365 enero
2016 por lo que puedes usar la función SI.CONJUNTO(). Haz lo siguiente:

 Haz clic en J2 e introduce el texto "C001"

 Selecciona desde I2 hasta I21

 Pulsa la tecla SUPR para borrar su contenido

 Selecciona la celda I22

 Pulsa la tecla SUPR para borrar su contenido

 En la celda I22 teclea esta fórmula:


=SUMA(SI.CONJUNTO(D2:D21<>J2;"";MES(B2:B21)>6;"";E2:E21>=500;E2:E21;VERDA
DERO;""))

 Y acaba con CONTROL+MAYUSCULAS+ENTER

El resultado ha de ser igual que antes pero sin celdas con cálculos intermedios a
la vista:
 
 
La fórmula en la celda I22 es una fórmula matricial de Tipo 2, es decir, una función
de resumen, en este caso SUMA(), dentro de la cual hay una función matricial de
Tipo 1, en este caso es exactamente la misma fórmula matricial de Tipo 1 que
hemos usado antes.
Si vas cambiando el cliente en J2 el resultado también irá cambiando:
 
 
 
Nota: Observa que la fórmula anterior es equivalente a:
 
=SUMAR.SI.CONJUNTO(E2:E21;D2:D21;J2;B2:B21;"<"&FECHA(2018;7;1);E2:E21;">=
500") y ENTER

 
Puedes usar cualquiera de ambas según te sea más cómodo.
 
No obstante, si te acostumbras a usar la función SI.CONJUNTO(), tendrás más
posibilidades a la hora de crear fórmulas.
 
Por ejemplo, Excel no tiene una función SI CONJUNTO para obtener la
desviación estándar con varios criterios, pero puedes crearla usando:
 
=DESVEST(SI.CONJUNTO( ............... ;VERDADERO;"")) y
CONTROL+MAYUSCULAS+ENTER

 
Puedes hacer lo mismo con otras funciones como =MEDIANA(SI.CONJUNTO( ...
;VERDADERO;"")), =VAR(SI.CONJUNTO( ... ;VERDADERO;"")) y otras, siempre
acabando con CONTROL+MAYUSCULAS+ENTER.
 
Lo importante, es tener en cuenta que la función SI.CONJUNTO() es una función
destinada a reemplazar el uso de SI() anidados. SI.CONJUNTO() no evalúa todos
los criterios a la vez como hacen el resto de las funciones SI CONJUNTO. De
hecho podríamos decir que la función SI.CONJUNTO() no pertenece a la familia de
las funciones SI CONJUNTO. Sin embargo, con este "truco" de negar todas las
condiciones excepto la última, se puede usar como una función de la familia SI
CONJUNTO.
 
 
Ahora hazlo tú:
Continuamos en el archivo "MasUsadasEnMatrices.xls" en la hoja "Resúmenes".
Supón que te piden lo siguiente: usa la función SI.CONJUNTO() para obtener los
siguientes cálculos: En la celda L6 calcula la suma de las facturas del cliente que
hay en J2 que estén impagadas, entendiendo por "impagadas" que haya una "X"
en la columna H. En la celda L7 calcula la suma de las facturas del cliente que hay
en J2 que estén pagadas, entendiendo por "pagadas" que no haya una "X" en la
columna H. En las celdas M6 y M7, exactamente lo mismo pero te pedimos el
conteo de las facturas.
El resultado debería ser para el cliente C001:
 

 
Por ejemplo, para C006:
 
 
... etc...
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

 
 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Funciones más útiles para crear fórmulas
matriciales en Excel. Parte 2.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 
Funciones más útiles en el mundillo de las
fórmulas matriciales de Excel
 

Fórmulas matriciales que dan resultados correctos


incluso si los rangos tienen errores: 
CONTAR(SI(ESERROR())), SUMA(SI(ESERROR())),
PROMEDIO(SI(ESERROR()))…
Las funciones de información en Excel son un grupo de funciones que
devuelven VERDADERO o FALSO según una celda cumpla un criterio o no. Otras
funciones de información devuelven otros valores.
Estas funciones son:
 

Función Descripción

CELDA() (no disponible en OneDrive) Retorna información acerca del formato, la ubicación o el


contenido de una celda.

ES.IMPAR() Retorna VERDADERO si el número es impar.

ES.PAR() Retorna VERDADERO si el número es par.

ESBLANCO() Retorna VERDADERO si el valor está en blanco.

ESERR() Retorna VERDADERO si el valor es cualquier valor de error excepto #N/A.

ESERROR() Retorna VERDADERO si el valor es cualquier valor de error.

ESFORMULA() (desde Excel 2013) Retorna VERDADERO si existe una referencia a una celda que
contiene una fórmula.

ESLOGICO() Retorna VERDADERO si el valor es un valor lógico.

ESNOD() Retorna VERDADERO si el valor es el valor de error #N/A.

ESNOTEXTO() Retorna VERDADERO si el valor no es texto.


ESNUMERO() Retorna VERDADERO si el valor es un número.

ESREF() Retorna VERDADERO si el valor es una referencia.

ESTEXTO() Retorna VERDADERO si el valor es texto.

HOJA() (desde Excel 2013) Retorna el número de la hoja a la que se hace referencia.

HOJAS() (desde Excel 2013) Retorna la cantidad de hojas en una referencia.

INFO() (no disponible en OneDrive) Retorna información acerca del entorno operativo en uso.

N() Retorna un valor convertido en un número.

NOD() Retorna un error #N/A. Se usa para forzar que una fórmula retorne #N/A cuando nos
interesa que dé error.

TIPO() Retorna un número que indica el tipo de dato de un valor.

TIPO.DE.ERROR() Retorna un número que corresponde a un tipo de error.

 
 
De todas ellas, nos fijaremos en la función lógica de información
ESERROR(celda), que devuelve VERDADERO si una celda contiene un
error (#N/A  #¡VALOR!  #¡REF!  #¡DIV/0!  #¡NUM!  #¿NOMBRE?  #NULO). Es una
función estándar pero también es matricial, por tanto, puede ir bien dentro de una
función matricial de Tipo 1 y, por consiguiente, de Tipo 2. Como Tipo 2, es útil para
ser usada con rangos de datos que contienen errores, de manera que podemos
hacer que la función de resumen ignore los errores y dé un resultado basado
solamente en los valores no erróneos.
 
Vamos a verlo.
 
Seguimos en el archivo "MasUsadasEnMatrices.xls" en la hoja "Errores".
 
 
La columna D tiene la fórmula columna B ÷ columna C. Observa que en el rango
D6:D13 hay errores de división por cero, y la fórmula
estándar =PROMEDIO(D6:D13) que hay en D14 no nos es útil.
Para solucionar esto, usaremos una función matricial de Tipo 2 en D15. Haz lo
siguiente:

 Haz clic en D15

 Teclea la fórmula =PROMEDIO(SI(ESERROR(D6:D13);"";D6:D13))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


113.810,10

Dentro de la función de resumen PROMEDIO() matricial de Tipo 2, hemos puesto la


función matricial de Tipo 1 SI(ESERROR(D6:D13);"";D6:D13). Esta
función SI() recorre el rango D6:D13 retornando a PROMEDIO() solamente los
valores sin error que encuentra en ese rango ya que, si encuentra un error, retorna
un valor nulo "". Es importante poner un nulo "" en el segundo parámetro de la
función SI(), ya que un valor "" no influye en el cálculo de un promedio, de una
suma, de un conteo, etc. Es decir, podemos usar:

 Para un promedio =PROMEDIO(SI(ESERROR(D6:D13);"";D6:D13))

 Para una suma =SUMA(SI(ESERROR(D6:D13);"";D6:D13))


 Para un conteo =CONTAR(SI(ESERROR(D6:D13);"";D6:D13))

 etc.

 
Todas las funciones de información pueden usarse en funciones matriciales, por
ejemplo para contar en la celda C18 cuantos textos hay en la columna B puedes
hacer esto:

 Haz clic en C18

 Teclea la fórmula =SUMA(SI(ESTEXTO(B1:B1000);1))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


5

Observa que hemos usado el truco que vimos en un tema anterior de usar la
función SUMA() para contar.
 
 

Funciones SUMA(K.ESIMO.MAYOR()),
SUMA(K.ESIMO.MENOR()) a partir de la versión Excel
97
Las funciones K.ESIMO son fáciles de entender, si se explica bien lo que hacen.
Tienen esta sintaxis:
 
=K.ESIMO.MAYOR(matriz;lugar)

y
=K.ESIMO.MENOR(matriz;lugar)

 
Ambas funciones operan con un rango de valores como primer parámetro.
K.ESIMO.MAYOR() retorna, de ese rango de valores, el valor que estaría en un cierto
lugar si ese rango estuviese ordenado de mayor a menor, es decir, por ejemplo,
¿qué valor estaría en el 8º lugar si ese rango lo ordenásemos de mayor a menor?
Si el rango estuviese en A1:A100 entonces la
función =K.ESIMO.MAYOR(A1:A100;8) retornará el valor ocuparía el 8º lugar si
hubiésemos ordenado A1:A100 de mayor a menor.
K.ESIMO.MENOR() hace exactamente lo mismo, pero suponiendo que ese
rango estuviese ordenado de menor a mayor. Así, la
función =K.ESIMO.MENOR(A1:A100;21) retorna el valor que ocuparía el 21º lugar si
hubiésemos ordenado A1:A100 de menor a mayor.
 
K.ESIMO.MAYOR() y K.ESIMO.MENOR() nos permiten ahorrarnos de tener que
ordenar un rango para trabajar con él, con lo que podemos trabajar con rangos
desordenados como si estuviesen ordenados.
 
Nota: el segundo parámetro de estas funciones indica un lugar, no indica un
valor: no sirven para obtener un segundo o tercer valor más grande o un segundo
o tercer valor más pequeño dentro de un rango. Sirven para obtener qué valor
habría en el segundo o tercer lugar dentro de un rango si lo ordenásemos de
mayor a menor, o de menor a mayor. Es lo que en inglés se llama un Ranking por
posiciones. Por ejemplo, supón que un rango ordenado de mayor a menor queda
así: 3, 2, 2, 2, 2, 2, 1, entonces el lugar nº 6 de este rango es 2  (3, 2, 2, 2,
2, 2, 1). Si el rango lo ordenásemos de menor a mayor quedaría así: 1, 2, 2,
2, 2, 2, 3, entonces el lugar nº 4 de este rango es también 2  (1, 2, 2, 2, 2,
2, 3).

 
Las funciones K.ESIMO.MAYOR() y K.ESIMO.MENOR() son funciones matriciales
de Tipo 3 de por sí. Se puede saber porque, en la ayuda contextual que aparece
cuando tecleas una fórmula en Excel, aparece la palabra "matriz":
 

 
... y se introducen con un ENTER normal. Sin embargo, dado que el segundo
parámetro no es una matriz, sino que es solamente un número que indica un
lugar, en la práctica no sirve de mucho que sean funciones matriciales. Por
consiguiente, se usan mucho en fórmulas de resumen Tipo 2 introduciéndolas con
CONTROL+MAYUSCULAS+ENTER.
 
Como siempre, antes de ver su uso como Tipo 2, vamos a ver su uso como
Tipo 1.
 
Como funciones de Tipo 1 nos permite extraer datos ordenados de un rango no
ordenado y, como Tipo 2, resumir tales datos. Por ejemplo ¿cómo obtengo la
suma de los números que ocupan los cinco primeros lugares en un rango si este
rango estuviese ordenado de mayor a menor? Para resolverlo, veremos primero la
función K.ESIMO.MAYOR() como Tipo 1.
Vamos a verlo. Seguimos en el archivo "MasUsadasEnMatrices.xls" en la hoja
"Kesimos":
 

Funciones K.ESIMO como funciones matriciales multicelda


de Tipo 1
Supón que te piden que obtengas los números del rango B3:C17 que ocuparían
los cinco primeros lugares si lo ordenásemos de mayor a menor. Observa que
B3:C17 está desordenado y además no se puede ordenar por medios normales
ya que ocupa dos columnas. En las celdas E3:E7 están puestos ya los números
de 1 a 5 que son los lugares (ranking) que te están pidiendo. Sigue estos pasos:

 Selecciona el rango desde F3 hasta F7

 Sin clicar en ningún sitio para que no se deshaga la selección, teclea la fórmula:
=K.ESIMO.MAYOR(B3:C17;E3:E7)

 Y acaba con CONTROL+MAYUSCULAS+ENTER.


El resultado:
 

 
Si quieres comprobar que es correcto, no te quedará más remedio que comprobar
a ojo que es así, mirando todos los números que hay en B3:C17, ya que como
hemos dicho, no podemos ordenar datos dispuestos en dos columnas de manera
convencional.
 
Mira cómo se hace:

Funciones K.ESIMO como funciones matriciales unicelda


de Tipo 2
Sería el caso de si te piden que sumes esos cinco primeros números. Podemos
hacerlo sin usar rangos intermedios con datos visibles usando una fórmula
matricial Tipo 2. Sigue estos pasos:

 Haz clic en J10

 Teclea la fórmula
=SUMA(K.ESIMO.MAYOR(B3:C17;E3:E7))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado es:
231

Puedes comprobar que es correcto sumando el rango F3:F7, si bien el rango


F3:F7 ya no es necesario. Lo puedes borrar pues recuerda que las fórmulas
matriciales de Tipo 2 no necesitan rangos intermedios con datos visibles.
Pero atención, no es del todo cierto que no hayamos usado rangos intermedios
con datos visibles, porque hemos usado el rango E3:E7 que contiene los números
1 a 5, que son los lugares que nos han pedido. ¿Qué podemos hacer para evitar
tener que poner este rango externo?
La solución es usar una constante matricial. Como se vio en la Introducción a
este Minicurso, una constante matricial se construye así:

 encerrar la matriz entre llaves { y } tecleadas manualmente

 separar los números por punto y coma.

En este caso la constante matricial sería: {1;2;3;4;5} y la fórmula habría que


modificarla así:

 Selecciona el rango desde E3 hasta E7

 Pulsa la tecla SUPR para borrar su contenido. Como resultado la fórmula en


J10 muestra un error

 Haz clic en J10

 Teclea o modifica la fórmula así:


=SUMA(K.ESIMO.MAYOR(B3:C17;{1;2;3;4;5}))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El error desaparece y J10 vuelve a mostrar el resultado correcto:


231

Comprueba asimismo que, cambiando los números del rango B3:C17, el resultado
en J10 también cambia. Por ejemplo, cambia B3 por un 999 y observa que la
suma también cambia a 1189. Te recordamos que el rango B3:B17 sigue sin estar
ordenado.
Sin embargo, hay un problema. Si en un momento dado te piden que sumes los
números que están en los 100 primeros lugares de un rango sin ordenar, estarías
obligado a teclear la constante matricial {1;2;3;4;5;6;7; ... ;98;99;100}, es
decir, una constante matricial de ¡100 números!
Afortunadamente, Excel proporciona la función =FILA(1:100) que te evitará tener
que teclear esa constante matricial de 100 números, si bien esto es válido
solamente para constantes matriciales de una sola fila (recuerda que las
constantes matriciales pueden tener varias filas separadas por una contrabarra
"\").
La función FILA() usada no matricialmente tiene otros usos, pero ahora nos
interesa ver solamente su uso matricial, ya que nos va a permitir sustituir la
constante matricial {1;2;3;4;5} por la función FILA(1:5), o bien la constante
matricial {1;2;3;4;5;6;7; ... ;98;99;100} por la función FILA(1:100), etc. Sigue
estos pasos:
 Haz clic en B3

 Vuelve a introducir su valor inicial de 6 (J10 vuelve a ser 231)

 Haz clic en J12

 Teclea la siguiente fórmula:


=SUMA(K.ESIMO.MAYOR(B3:C17;FILA(1:5)))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

J12 muestra igualmente el resultado correcto:


231

 
Mira cómo se hace:

 
Si quieres saber la suma de los números que ocuparían los 15 primeros lugares
del rango B3:C17 si estuviese ordenado de mayor a menor, haz lo siguiente:

 Haz clic en J14

 Teclea la siguiente fórmula:


=SUMA(K.ESIMO.MAYOR(B3:C17;FILA(1:15)))

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado en J14 es:


543

Nota: si alguna vez has de usar la función FILA() dentro de una función matricial


de Tipo 4, es decir, varias fórmulas matriciales de resumen de Tipo 2 pero
tecleando solamente la primera y copiando el resto con el cuadro de relleno,
recuerda que hay que poner $ a la primera fórmula para usar referencias
absolutas. La función FILA(1:5) en formato de referencia absoluta
sería FILA($1:$5).
 

Funciones K.ESIMO como funciones matriciales de Tipo 3


Por último, y dado que estrictamente hablando estas dos funciones son de Tipo 3
que se introducen con un simple ENTER siempre y cuando el segundo parámetro
no sea un rango, vamos a ver cómo usarlas como Tipo 3, que en realidad es igual
que usarlas como Tipo 1 pero de manera más sencilla. Esta vez veremos las dos
funciones K.ESIMO.MAYOR() y K.ESIMO.MENOR(). Supón que te piden que obtengas
los números del rango B3:C17 que ocuparían los cinco primeros lugares si lo
ordenásemos de mayor a menor y, asimismo, los valores que ocuparían los cinco
primeros lugares si lo ordenásemos de menor a mayor.

 Vuelve a rellenar el rango E3:E7 con los valores 1, 2, 3, 4 y 5:

 Haz clic en F3

 Teclea la fórmula =K.ESIMO.MAYOR($B$3:$C$16;E3)

 Acaba con un ENTER normal

 Vuelve a hacer clic en F3

 Copia la fórmula hasta F7 con el cuadro de relleno, bien arrastrándolo bien


haciéndole doble clic

 Haz clic en G3

 Teclea la fórmula =K.ESIMO.MENOR($B$3:$C$16;E3)

 Acaba con un ENTER normal

 Vuelve a hacer clic en G3

 Copia la fórmula hasta G7 con el cuadro de relleno, bien arrastrándolo bien


haciéndole doble clic

El resultado final debería ser:


 
 
Comprueba asimismo que, cambiando los números del rango B3:C17, el resultado
en F3:G7 también cambia. Por ejemplo, cambia B3 por un 99 y C3 por un -99 y
observa que los valores en F3:G7 también cambian. Te recordamos que el rango
B3:B17 sigue sin estar ordenado.
 

Funciones matriciales que se usan como Tipo 1


Vamos a ver las funciones FRECUENCIA() y TENDENCIA(). La
función FRECUENCIA() solamente se puede usar como función matricial de Tipo 1 y
no puede ser usada de otra manera. Siempre ha de introducirse con
CONTROL+MAYUSCULAS+ENTER. La función TENDENCIA() es mejor usarla
como Tipo 1, si bien también puede usarse como Tipo 3 acabada con ENTER
normal.
 

Función FRECUENCIA() para obtener la distribución de


frecuencias de unos valores de un rango
La función FRECUENCIA() solamente puede usarse como una fórmula matricial de
Tipo 1, lo que nos obligará a seleccionar un rango antes de teclearla e introducirla
con CONTROL+MAYUSCULAS+ENTER. No se puede usar de otra
manera. Esta función hace un conteo de cuántos números hay dentro de rango,
pero es un conteo desglosado en intervalos. Su sintaxis es:
 
=FRECUENCIA(rango a contar;rango con los intervalos en que desglosamos el
conteo)

 
Enseguida verás que, para que puedas usar esta función, deberás seleccionar un
rango del mismo tamaño que el segundo parámetro, entonces tendrás que teclear
la fórmula y acabar con CONTROL+MAYUSCULAS+ENTER.
Seguimos en el archivo "MasUsadasEnMatrices.xls" en la hoja "Resúmenes". Nos
centraremos ahora en la zona de la hoja a partir de la celda J10:
 
 
Supón que te piden que cuentes cuántos números hay dentro del rango E2:E21. A
simple vista ya vemos que hay 20 números, pero te piden que desgloses, de esos
20 números, cuántos números hay entre 0 y 100, cuántos hay entre 100 y 200,
cuántos hay entre 200 y 300, cuántos hay entre 300 y 400... en concreto, te piden
que desgloses dicho conteo según los intervalos que hay en el rango desde J11
hasta K28. Haz lo siguiente:

 Selecciona desde M11 hasta M28

 Teclea la fórmula =FRECUENCIA(E2:E21;K11:K28)

 Acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado:
 
 
El conteo desglosado empieza en M11 y significa lo siguiente: hay 1 factura
cuya cantidad está entre 0 y 100 euros, 2 facturas cuya cantidad está entre 100 y
200 euros, 1 factura cuya cantidad está entre 200 y 300 euros, 2 facturas cuya
cantidad está entre 300 y 400 euros, etc… En la celda M29 está la suma de estos
conteos desglosados. Esta suma es 20 que es justamente el conteo que habíamos
hecho a simple vista mirando el rango E2:E21.
 
Este "conteo desglosado en intervalos" se denomina en estadística "distribución
de frecuencias por categorías".
 
Si quieres, puedes ir cambiando los números del rango E2:E21 y verás como
cambia automáticamente este conteo desglosado (o distribución de frecuencias),
pero la suma en M29 siempre ha de dar 20.
 
Mira cómo se hace:

 
Observa que te hemos dicho que queremos un conteo de facturas distribuido
según los intervalos (o categorías) que hay en el rango J11:K28, pero en la
función FRECUENCIA() no hemos usado para nada la columna J. Solamente hemos
usado la columna K, la que tiene los límites superiores de las categorías y, aun
así, la fórmula ha dado resultados correctos. Esto es debido a que la
función FRECUENCIA() solamente necesita los límites superiores de las
categorías en que queremos distribuir el conteo. Para comprobarlo haz lo
siguiente:
 Selecciona el rango desde J11 hasta J28

 Pulsa la tecla SUPR para borrar su contenido

La columna M sigue dando los mismos valores lo que demuestra que la columna J
no es necesaria. Solamente habíamos puesto la columna J para que los intervalos
quedasen más claros a los ojos de un usuario. Así pues, la distribución que hay a
partir de la celda M11 que ha hecho la función FRECUENCIA() es la siguiente:
 

 Hay 1 factura cuya cantidad es menor o igual a 100 euros

 Hay 2 facturas cuya cantidad está entre 100 euros exclusive y 200 inclusive

 Hay 1 factura cuya cantidad está entre 200 euros exclusive y 300 inclusive

 Hay 2 facturas cuya cantidad está entre 300 euros exclusive y 400 inclusive

 etc…

 
Por tanto, a la hora de hacer el cálculo, la función FECUENCIA() toma en cuenta
cada celda del rango K11:K28 pero también la celda inmediatamente superior, y
es por eso que esta función ha de ser siempre de Tipo 1.
Los números que queremos que la función FRECUENCIA() desglose, se ponen en el
primer parámetro de la función, en este caso es el rango E2:E21.
Para que quede más claro, fíjate que la cantidad que hay en E2 es de 200 euros
¿en cuál de las categorías o intervalos está incluida la cantidad de 200? Mira
como está ahora la distribución:
 

 
Haz clic en E2 y teclea 200,01. El resultado:
 
 
Hemos resaltado en amarillo las celdas que han cambiado. La categoría "Hasta
200" ha disminuido en 1 unidad mientras que la categoría "Hasta 300" ha
aumentado en 1 unidad, esto significa que la cantidad de 200 euros estaba
incluida en la categoría "Hasta 200" porque "Hasta 200" significa en realidad
"Desde 100 exclusive hasta 200 inclusive" y, cuando hemos cambiado a 200,01
esta cantidad ha pasado a la categoría "Desde 200 exclusive hasta 300
inclusive".
Ahora haz clic en E2 y teclea 199,99. El resultado vuelve a ser igual que cuando
E2 contenía el valor 200:
 

 
... porque 199,99 es una cantidad incluida en la categoría "Desde 100 exclusive
hasta 200 inclusive".
Ahora haz clic en E2 y teclea el número negativo -9999. Resaltamos en amarillo
los valores que cambian:
 
 
Esto significa que la primera categoría "Hasta 100" significa en realidad "Desde
cualquier valor negativo hasta 100 inclusive".
Resumiendo: M11 muestra el conteo desde cualquier valor negativo hasta 100
inclusive, M12 desde 100 exclusive hasta 200 inclusive, M13 desde 200 exclusive
hasta 300 inclusive, M14 desde 300 exclusive hasta 400 inclusive, etc.
Observa que con este sistema de no usar la columna J, no nos podemos
equivocar en las categorías y la función FRECUENCIA() siempre hará bien la
distribución de los números, de modo que, por mucho que cambies los números
que hay desde E2 hasta E21, la celda M29 siempre mostrará 20, aunque los
valores mostrados desde M11 hasta M28 vayan cambiando.
Observa también que, como hemos dicho, como función matricial de Tipo 1, antes
de teclear la fórmula hay que seleccionar un rango tan grande como el rango con
los intervalos o categorías (en este caso K11:K28), en cambio, el otro rango, el
rango E2:E21, de donde la función FRECUENCIA() toma las cantidades en euros a
distribuir en esos intervalos o categorías, puede ser del tamaño que se quiera.
Si te piden la distribución en porcentajes, usa la fórmula que ponemos a
continuación:

 Haz clic en E2

 Introduce el valor 200

 Selecciona el rango N11:N28

 Teclea la fórmula
=FRECUENCIA(E2:E21;K11:K28)/CONTAR(E2:E21)

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado:
 
 
Sin embargo, si en vez de un conteo, te piden que distribuyas la suma de los
números que están dentro de esos intervalos o categoría, la
función FRECUENCIA() ya no nos es útil. Hay que usar la función de
resumen SUMAR.SI.CONJUNTO() como fórmula matricial de Tipo 4: crear la primera
fórmula con los $ adecuadamente colocados y copiándola con el cuadro de
relleno. Sigue estos pasos:

 Haz clic en E2

 Introduce el valor 200

 Haz clic en L11

 Teclea la fórmula:
=SUMAR.SI(E2:E21;"<="&K11)

 Y acaba con un ENTER normal. Es una función de Tipo 3 pero no es todavía la


primera de las funciones de Tipo 4 con los $ adecuadamente colocados porque
la primera fórmula es distinta de las demás. Ni siguiera hemos
usado SUMAR.SI.CONJUNTO()

 Haz clic en L12

 Teclea la fórmula:
=SUMAR.SI.CONJUNTO($E$2:$E$21;$E$2:$E$21;">"&K11;$E$2:$E$21;"<="&K12)
 Y acaba con un ENTER normal. Es una función de Tipo 3 y esta sí que ya es la
primera de las funciones de Tipo 4 con los $ adecuadamente colocados y, dado
que requiere más de 1 criterio, ya hemos usado SUMAR.SI.CONJUNTO()

 Vuelve a hacer clic en L12 y copia la fórmula arrastrándola por el cuadro de relleno
hasta L28.

El resultado debería ser:


 

 
Tal como dijimos que hay que hacer en las fórmulas de Tipo 4, la primera fórmula
que tecleemos ha de tener los $ adecuadamente colocados. Observa que en L29
está el total de totales de las facturas distribuidas en los intervalos o categorías.
Esta suma necesariamente ha de coincidir con la suma de los valores del rango
E2:E21. Asimismo, la celda M29 contiene la suma del conteo por categorías,
que necesariamente ha de coincidir con el conteo de los valores del rango
E2:E21. Por último, la celda N29 necesariamente ha de sumar 100% si los
porcentajes están bien calculados.

Como curiosidad, en Excel 2003, para calcular las sumas distribuidas por las
categorías, hay que usar SI() anidados, debido a que no existen en Excel 2003
las funciones SI CONJUNTO. La primera de las fórmulas de resumen de Tipo 4
(celda L12) tendría que haber sido en Excel 2003:
 
=SUMA(SI($E$2:$E$21>J11;SI($E$2:$E$21<=K11;$E$2:$E$21))) y
CONTROL+MAYUSCULAS+ENTER
 
Por último, si te piden que uses intervalos de 500 en vez de intervalos de 100,
rellena el rango desde K11 hasta K27 con los valores 500, 1000, 1500... (no
cambies el 9999999 que hay en K28) El resultado:
 

 
Si trabajas con valores muy grandes, deberás cambiar el valor 9.999.999 que hay
en K28.
 
Es importante tener en cuenta siempre que esta función solamente puede usarse
como Tipo 1. Si no se hace así, mostrará valores erróneos pero sin mostrar ningún
mensaje de error específico.
 
 

Función TENDENCIA() para predecir valores futuros a partir


de valores presentes (tema opcional)
La función TENDENCIA() suele usarse como una fórmula matricial de Tipo 1, pero,
de hecho, a diferencia de FRECUENCIA(), también puede usarse como Tipo 3.
Esta función nos permite saber la tendencia de una serie de valores sin necesidad
de hacer un gráfico a partir de esos valores y trazar su línea de tendencia. Su
sintaxis es:
 
=TENDENCIA(rango de valores conocidos;rango de períodos conocidos;rango
de períodos futuros a predecir)

 
Los rangos del 1er y 2o parámetros han de ser iguales. Debe seleccionarse un
rango del mismo tamaño que el 3er parámetro, teclear la fórmula y acabar con
CONTROL+MAYUSCULAS+ENTER. Sin embargo, si el 3er parámetro no es un
rango sino solamente una celda, puede acabarse la fórmula con ENTER normal.
Es una fórmula de poco uso, más bien financiero o estadístico. Básicamente sirve
para predecir, en base a los valores actuales, si en el futuro, de seguir la tendencia
actual, esos valores crecerán o decrecerán. Puede servir para hacer previsiones,
por ejemplo.
 
Este es un tema opcional. Haz clic aquí para mostrar/ocultar el tema.

 
 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Funciones más útiles para crear fórmulas
matriciales en Excel. Parte 3.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Funciones más útiles en el mundillo de las


fórmulas matriciales de Excel
 

Funciones matriciales de Tipo 3 que deben ser


introducidas con CONTROL+MAYUSCULAS+ENTER
Hemos visto que las funciones matriciales de Tipo 3 se introducen con un ENTER
y ya actúan como una función matricial, lo que es mucho más cómodo de usar.
Estas funciones son unas cuantas, pero nosotros vimos SUMAPRODUCTO(),
SUMAR.SI(), CONTAR.SI(), PROMEDIO.SI() y las funciones SI CONJUNTO. Si bien
no todas son estrictamente matriciales, nosotros las consideramos matriciales al
menos dentro de este Minicurso.
En su momento ya dijimos que estas funciones tienen una limitación
importante. Vamos a explicarla ahora.
La limitación consiste en que, en ocasiones, según cómo se usen estas
funciones, darán un resultado incorrecto si se introducen con ENTER.
Solamente darán un resultado correcto si se introducen con
CONTROL+MAYUSCULAS+ENTER.

Vamos a ver solamente dos de estas funciones: CONTAR.SI() que es la más usada


con CONTROL+MAYUSCULAS+ENTER y SUMAPRODUCTO() que solamente hay
que introducirla con CONTROL+MAYUSCULAS+ENTER en pocas ocasiones.
 

Función CONTAR.SI() introducida con


CONTROL+MAYUSCULAS+ENTER
Ya hemos visto la función CONTAR.SI() como función matricial de Tipo 3, y hemos
dicho que es una función que trabaja ordenadamente con rangos de por sí, o sea,
que podemos introducirla con un ENTER normal. Pero ahora vamos a ver su uso
como función matricial que debe introducirse con
CONTROL+MAYUSCULAS+ENTER y que tiene una utilidad diferente a la que
hemos visto, pudiéndose usar como una función especial de conteo.
Para verlo claramente: hasta ahora hemos usado la función CONTAR.SI() como
una función matricial de Tipo 3, así:
=CONTAR.SI(rango;valor) y ENTER
Esta función nos retorna cuántos valores del rango del primer parámetro son
iguales al valor del segundo parámetro.
Pero esta misma función, usada como una función matricial de Tipo 1, es así:
=CONTAR.SI(rango1;rango2) y CONTROL+MAYUSCULAS+ENTER
Observa que ahora el segundo parámetro es un rango, no es un valor. Tanto el
primer parámetro como el segundo son rangos. ¿Cómo se usa? Vamos a verlo.
 

Uso de CONTAR.SI() con ENTER para obtener información


Vamos a empezar, primero, viendo rápidamente que CONTAR.SI(), como función
de Tipo 3 introducida con ENTER, puede usarse para saber si un valor está en un
rango. Es decir, no nos interesa contar cuántas veces aparece un valor en un
rango, sino solamente saber si ese valor está en el rango.
Si ya has descargado los ejemplos, abre el archivo "ContarSiMatricial.xls" y haz
clic en la hoja "Compras Meses". Tiene que aparecer la hoja como sigue:
 

 
Es una lista de compras por departamentos de una supuesta empresa. Supón que
te piden que en la celda G3 aparezca un "SI" en el caso de que el departamento
que hay en la celda F3 esté en la lista de compras (en la columna B) y que
aparezca un "NO" en otro caso. Haz lo siguiente:

 Haz clic en G3

 Teclea la fórmula
=SI(CONTAR.SI(B3:B102;F3)>0;"SI";"NO")
 Y acaba con un ENTER

El resultado:
 

 
Lo que significa que el departamento de Calidad está en la lista de compras, es
decir, como mínimo ha hecho 1 compra (no te interesa el conteo exacto).
Ahora haz clic en F3 e introduce el texto "Administración". El resultado:
 

 
Lo que significa que el departamento de Administración no está en la lista de
compras, es decir, no ha hecho compra alguna (obviamente el conteo es 0 pero
seguimos sin estar interesados en el conteo en sí).
 
Una vez visto esto, vamos a ver algo similar. Se trata de saber si un
departamento está repetido en la lista de compras, no interesa el conteo exacto,
solamente te piden saber si está repetido. Sigue estos pasos:

 Haz clic en G2

 Introduce el texto "¿Repetido?"

 Haz clic en F3

 Introduce el texto "I+D"

 Haz clic en G3

 Cambia la fórmula por


=SI(CONTAR.SI(B3:B102;F3)>1;"SI";"NO")
 Y acaba con un ENTER

El resultado:
 

 
Lo que significa que el departamento de I+D está repetido en la lista de compras,
es decir, como mínimo ha hecho 2 compras (no te interesa el conteo exacto).
Ahora haz clic en F3 e introduce el texto "Jardines". El resultado:
 

 
Lo que significa que el departamento de Jardines no está repetido en la lista de
compras o simplemente no está en la lista  (obviamente el conteo es 0 ó 1 pero
seguimos sin estar interesados en el conteo en sí).
Fíjate que, en los dos ejemplos anteriores, no te han pedido hacer un conteo
exacto de las veces que aparece un departamento en la lista de compras,
solamente te han pedido saber si un departamento estaba o no en la lista y si
estaba o no repetido.
Hasta aquí, hemos visto una utilidad más de la fórmula CONTAR.SI() introducida
con ENTER.
 
Pasemos a ver su utilidad introducida con
CONTROL+MAYUSCULAS+ENTER, en concreto como fórmula matricial de
Tipo 1.
 
Uso de CONTAR.SI() con CONTROL+MAYUSCULAS+ENTER
para obtener contar ocurrencias de valores
Continuamos en el archivo "ContarSiMatricial.xls" en la hoja "Compras Meses".
Una vez visto que podemos ver si un valor está dentro de un rango
usando CONTAR.SI() con ENTER, vamos a ver cómo hacer algo similar usando la
función como matricial de Tipo 1.
Usada matricialmente como fórmula de Tipo 1 y con
CONTROL+MAYUSCULAS+ENTER, la función CONTAR.SI() puede contar
cuántas veces aparece una serie de valores dentro de un rango. Por ejemplo, en
la hoja "Compras Meses", el rango C3:C102 indica el número de compras de un
departamento. Supón que te piden una fórmula que muestre cuántas veces ha
habido 1 compra, 2 compras, 3 compras,... hasta 10 compras. Sigue estos pasos:

 Haz clic en F2

 Introduce el texto "Compras"

 Haz clic en G2

 Introduce el texto "Conteo"

 Haz clic en G3

 Pulsa la tecla SUPR para borrar su contenido

 Rellena desde F3 hasta F12 con los números 1 a 10:

 
Vamos a poner en la columna G la fórmula matricial de Tipo 1 necesaria para
calcular cuántos 1’s aparecen en la columna C, cuántos 2’s aparecen en la
columna C, cuántos 3’s aparecen en la columna C, etc. hasta contar cuántos 10’s
aparecen en la columna C. Continua con estos pasos:

 Selecciona el rango G3:G12

 Teclea la siguiente fórmula matricial como si fuese de Tipo 1:


=CONTAR.SI(C3:C102;F3:F12)

 Y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado:
 

 
Es decir, esto me está diciendo que en la columna C el número 1 aparece 2 veces,
el 2 aparece 3 veces, el 3 aparece 0 veces, ... hasta el 10, que aparece 2 veces en
la columna C. Cada fórmula de la columna G nos indica cuántas veces aparece el
número que hay a su izquierda, en la columna F. Este es el resultado de sustituir
en la función CONTAR.SI() el segundo parámetro por un rango, en concreto el
rango D3:D12 que contiene 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Observa que
simplemente hemos contado ocurrencias de valores únicos, no hemos hecho
ninguna segmentación por intervalos como hicimos en el tema anterior.
 

Contar repeticiones dentro de un mismo rango con CONTAR.SI()


como fórmula matricial de Tipo 1
Una de las utilidades de la función CONTAR.SI() acabada con
CONTROL+MAYUSCULAS+ENTER es la  siguiente:
=CONTAR.SI(rangoX;rangoX)
... es decir, observa que los dos rangos son el mismo rango. En tal
caso, CONTAR.SI(), como función matricial de Tipo 1, calcula cuántas veces
aparece cada valor del rangoX. El resultado es que la fórmula cuenta las
repeticiones de cada valor del rangoX. Esta función se usa como si fuese de Tipo
1 y se coloca a la derecha de donde está el rango en el que queremos contar sus
valores repetidos.
Por ejemplo, continuando en el archivo "ContarSiMatricial.xls" en la hoja
"Repetidos", hay una lista de códigos en la columna B. Imaginemos que son
códigos postales:
 

 
Supón que te piden que calcules, en la celda F2, cuántos códigos hay
repetidos, pero que no haya ningún rango con cálculos intermedios.
Si has pensado que esto podría hacerse con una fórmula matricial de Tipo 2, es
que vas bien encaminado.
Pero lo vamos a hacer por pasos. Primero, calcularemos cuántas veces está
repetido cada código postal usando CONTAR.SI() como función matricial de Tipo 1
acabada con CONTROL+MAYUSCULAS+ENTER. Sigue estos pasos:

 Selecciona desde C2 hasta C120

 Sin hacer clic en ningún sitio para que no se deshaga la selección, teclea la
siguiente fórmula:
=CONTAR.SI(B2:B120;B2:B120)

 y acaba con CONTROL+MAYUSCULAS+ENTER.


El resultado debería ser:
 

 
 
Nota: a partir de la versión Excel 2007, puedes usar como rangos columnas
enteras =CONTAR.SI(B:B;B:B) pero seguramente notarás que Excel irá bastante
más lento para hacer el cálculo, ya que usa una columna entera, que es muy
grande en comparación con un rango pequeño. No obstante, solamente se puede
usar columnas enteras como rangos cuando dichas columnas no tienen celdas
vacías en sus primeras filas, es decir, solamente se puede usar columnas
enteras como rango cuando la columna contiene datos válidos desde la primera
fila. Por tanto, aconsejamos nunca usar CONTAR.SI() ni SUMAR.SI() con columnas
enteras como rangos. Además, al usar columnas enteras, el archivo no será
compatible con Excel 2003.
 
Lo que hemos hecho ha sido obtener justo a la derecha de cada código, cuántas
veces aparece repetido dicho código.
Fíjate que la mayoría están sin repetir porque aparece un 1 a su derecha. Los
códigos que tienen un valor mayor que 1 a su derecha son los que están
repetidos. Por ejemplo, el código 615266 (en B4) tiene un 2 a su derecha, es decir,
615266 está 2 veces, esto indica que está repetido.
Sin embargo, recuerda que lo que te han pedido es contar los repetidos. Una
solución sería indicar en la columna C con una "X" los códigos repetidos y luego
contar cuántas "X" hay. Vamos a probar. Sigue estos pasos:

 Haz clic en C2
 Teclea o modifica la fórmula así:
=SI(CONTAR.SI(B2:B120;B2:B120)>1;"X";"")

 y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


 

 
Al igual que comentábamos en el apartado anterior, cada código que tiene una X a
su derecha significa que está repetido en la lista de códigos, no te interesa el
conteo exacto. Obviamente, los códigos que no tienen una "X" a su derecha no
están repetidos, solamente aparecen 1 vez en la columna B.
 
Ahora, solamente falta contar cuántas "X" hay en la columna C:

 Haz clic en F2

 Teclea la fórmula =CONTAR.SI(C2:C120;"X")

 Y acaba con ENTER

El resultado es:
 

 
Sin embargo, una manera más fácil, es usar la función SUMA() estándar como
función de conteo, usando el truco que hemos usado hasta ahora que es poner 1's
y 0's en vez de "X" y luego sumar los 1's. Haz lo siguiente:

 Haz clic en C2

 Teclea o cambia la fórmula así:


=SI(CONTAR.SI(B2:B120;B2:B120)>1;1;"")

 Introduce la fórmula con CONTROL+MAYUSCULAS+ENTER

La columna C muestra ahora un 1 a la derecha de cada código repetido y un nulo


"" si no está repetido:
 

 
Dado que los nulos no afectan al resultado de la mayoría de las fórmulas, ahora
bastará con sumar todos los 1's de la columna C para tener el conteo de códigos
repetidos:

 Haz clic en F2

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula =SUMA(C2:C120)

 Acaba con ENTER.

El resultado será igualmente:


16
Sin embargo, te han pedido contar en la celda F2 los códigos repetidos, pero sin
usar un rango visible con cálculos intermedios. El proceso será el de siempre: usar
la fórmula matricial multicelda de Tipo 1 que has tecleado en la columna C y
ponerla dentro de una función de resumen unicelda SUMA() acabada con
CONTROL+MAYUSCULAS+ENTER. Sigue estos pasos:

 Haz clic en F2

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula:
=SUMA(SI(CONTAR.SI(B2:B120;B2:B120)>1;1;""))

 y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser el mismo:


16

Para comprobar que la columna C ya no es necesaria, selecciona toda la columna


C y pulsa la tecla SUPR para borrar su contenido. El resultado debería seguir sin
cambiar:
 

 
Como dijimos en las matrices de Tipo 2, es lo mismo:

 poner en C2:C120 la fórmula


matricial =SI(CONTAR.SI(B2:B120;B2:B120)>1;1;"") y sumar este rango
con =SUMA(C2:C120), es lo mismo que...

 usar directamente la función en una sola


celda =SUMA(SI(CONTAR.SI(B2:B120;B2:B120)>1;1;"") y acabarla con
CONTROL+MAYUSCULAS+ENTER.
 
Observaciones finales:

 En realidad este resultado de 16 no indica exactamente cuántos códigos hay


repetidos sino el número de repeticiones que Excel ha detectado, es decir,
podría ser un código repetido 16 veces pero también 8 códigos repetidos 2
veces.

 En Excel 2007+ se pueden usar las fórmulas:

=SUMA(SI(CONTAR.SI(B:B;B:B)>1;1;"") y CONTROL+MAYUSCULAS+ENTER
tanto si el archivo es .xls como si es .xlsx
=SUMA(SI(CONTAR.SI.CONJUNTO(B:B;B:B)>1;1;"") y
CONTROL+MAYUSCULAS+ENTER si el archivo es .xlsx
... pero es peligroso usar columnas enteras como rangos debido a que se
obtienen resultados erróneos si hay celdas vacías en las primeras filas de las
columnas y, además, los cálculos serán muy lentos debido a que usan
columnas enteras. Por otra parte, ninguna de las dos fórmulas será compatible
con Excel 2003. Por tanto, volvemos a aconsejar nunca usar columnas enteras
como rangos en fórmulas matriciales.

 Nunca debe usarse la función =CONTAR.SI(rango;valor) en ninguna fórmula

matricial acabada con CONTROL+MAYUSCULAS+ENTER, ya que dará un


resultado no válido. En cualquier fórmula que acabe con
CONTROL+MAYUSCULAS+ENTER sólo se puede
usar =CONTAR.SI(rango;rango). La manera correcta de usar una fórmula
matricial de Tipo 2 para hacer un conteo de las veces que aparece un solo
valor dentro de un rango es =SUMA(SI(rango=valor;1)) introducida con
CONTROL+MAYUSCULAS+ENTER.

Uso de SUMAPRODUCTO() introducida con


CONTROL+MAYUSCULAS+ENTER
Hemos dicho varias veces que la función SUMAPRODUCTO() puede usarse para
sustituir a la función SUMA() con la ventaja de que puede introducirse acabándola
con ENTER, lo que es más cómodo.
 
Pero ello no es posible si ponemos como parámetro de SUMAPRODUCTO() una
función SI() o, en general, cualquier función que no sea intrínsecamente
matricial.
 
Esto significa que, siguiendo en la hoja "Repetidos", en la celda F2, no podemos
sustituir SUMA() por SUMAPRODUCTO() e introducirla con ENTER para ahorrarnos
trabajo. Es una fórmula incorrecta. Para comprobarlo haz lo siguiente:

 Haz clic en F2

 Teclea la fórmula incorrecta:


   =SUMAPRODUCTO(SI(CONTAR.SI(B2:B120;B2:B120)>1;1;"")) y ENTER

El resultado es un error #¡VALOR!.
 

 
¿Por qué da un resultado erróneo?
 
El resultado es erróneo porque debemos forzar que la función SI(), que está
puesta dentro de SUMAPRODUCTO(), sea tratada como matricial por Excel
introduciendo la fórmula con CONTROL+MAYUSCULAS+ENTER.
 
Para comprobarlo, haz lo siguiente:

 Haz doble clic en la celda F2, esto hará que entres en modo edición de fórmula

 Pulsa la combinación de teclas CONTROL+MAYUSCULAS+ENTER

 
El resultado ha de ser nuevamente el correcto:
 
 
Observa en la barra de fórmulas que la fórmula es la misma pero ahora está
rodeada de { y } indicando una fórmula matricial.
 
¿Vale la pena en estos casos sustituir el SUMA() por un SUMAPRODUCTO()?
La respuesta es que no, porque teclear SUMAPRODUCTO() es más largo que
teclear SUMA() y como no nos ahorramos de pulsar
CONTROL+MAYUSCULAS+ENTER, no ganamos nada. Lo mejor es usar la
fórmula original:
 
=SUMA(SI(CONTAR.SI(B2:B120;B2:B120)>1;1;"")) y
CONTROL+MAYUSCULAS+ENTER
 
En general, cuando SUMAPRODUCTO() tenga dentro una función SI() como
parámetro, habrá que acabar con CONTROL+MAYUSCULAS+ENTER para forzar
que el SI() que hay dentro de SUMAPRODUCTO() actúe como matricial.
 
De todos modos, es importante que continúes teniendo en cuenta que la
función SUMAPRODUCTO() sigue siendo una función matricial muy importante. En el
próximo tema de la lógica matricial, verás que podemos usar SUMAPRODUCTO() y
acabar con ENTER sin que Excel muestre error. Para ello, usaremos un truco para
evitar tener que usar la función SI() como parámetro dentro de SUMAPRODUCTO().
Este truco se explicará.
 
Ahora hazlo tú:
Seguimos en el archivo "ContarSiMatricial.xls". Haz clic en la hoja "Vuelos":
 
 
Esta hoja contiene en la columna B una lista de 3 letras que son los códigos
internacionales de los aeropuertos.
Te piden que uses la columna C para que aparezca cuántas veces se repite cada
código de aeropuerto. El resultado debería ser:
 

 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Contar valores únicos con CONTAR.SI()


Como hemos visto, la función CONTAR.SI() sirve para contar valores repetidos en
un rango. Pero alguna vez te pueden pedir todo lo contrario, es decir, que cuentes
cuántos valores hay en un rango sin tener en cuenta si están repetidos o no. Es lo
que se denomina "contar valores únicos". Microsoft tiene pensado añadir a Excel
una función, que probablemente se llame [¿] CONTAR.UNICOS() [?], que
permitirá hacer este cálculo de manera sencilla. Pero, en el momento de crear
este Minicurso, la única manera de hacerlo es usar una fórmula matricial.
Por ejemplo, en la lista de aeropuertos de la hoja "Vuelos", supón que te piden
contar cuántos códigos de aeropuerto hay, pero contando como 1 cada código,
incluso aunque esté repetido varias veces. Te adelantamos que hay 18 códigos de
aeropuerto en total, independientemente de si están repetidos o no. Partimos de la
base de que la columna C está ya rellenada con el número de veces que se repite
cada código. Para ver cómo se calcula, usaremos provisionalmente la columna D.
Teclea la siguiente fórmula matricial de Tipo 1:

 Selecciona el rango D4:D27

 Teclea la fórmula =1/C4:C27

 y acaba con CONTROL+MAYUSCULAS+ENTER.

El resultado debería ser:


 
 
Ahora supón que quieres obtener en la celda B29 cuántos códigos de aeropuerto
sin contar las repeticiones. Usa la fórmula estándar SUMA():

 Haz clic en B29

 Teclea la fórmula =SUMA(D4:D27)

 Acaba con ENTER

El resultado es el correcto:
 

 
El funcionamiento de esta fórmula es como sigue:

 Si un aeropuerto sólo aparece una vez se sumará 1/1 que es 1.


 Si aparece 2 veces se sumará 1/2 la primera vez que aparezca y 1/2 la segunda
vez que aparezca y 1/2+1/2 es 1.

 Si aparece 3 veces se sumará 1/3+1/3+1/3 que es 1.

 Si aparece 4 veces se sumará 1/4+1/4+1/4+1/4 que es 1.

 Etc…

En Internet encontrarás fórmulas ingeniosas como esta.


Sin embargo, nos interesa, como siempre, que la fórmula no dependa de rangos
con datos provisionales. Por tanto, para hacer que esta fórmula sea
independiente de los valores que hay en las columnas C y D, haz lo siguiente:

 Haz clic en B29

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula: =SUMA(1/CONTAR.SI(B4:B27;B4:B27))

 y acaba con CONTROL+MAYUSCULAS+ENTER. El resultado sigue siendo el


correcto.

Selecciona el rango D4:D27 y pulsa la tecla SUPR para borrar su contenido.


Observa que el resultado en B29 sigue siendo el correcto. La fórmula en B29 ya
no depende de ningún dato de la columna C o D.

Nota: Si hay celdas en blanco la función dará error porque los blancos se
consideran 0 y daría error de división por cero. La solución es usar en la celda B30
la fórmula (en Excel 2007+):
 
=SUMA(SI.ERROR(1/CONTAR.SI(B4:B27;B4:B27);"")) y
CONTROL+MAYUSCULAS+ENTER
 
Comprueba que funciona bien borrando el código de aeropuerto en la celda B26.
La fórmula en B29 dará error y la fórmula en B30 seguirá bien:
 
 
Esta fórmula la podemos usar también para contar los códigos postales únicos en
el ejemplo anterior de los códigos postales. Por ejemplo, en la hoja "Repetidos"
teclea la palabra "Únicos" en la celda F4 y en la celda F5 teclea la fórmula:
 
=SUMA(1/CONTAR.SI(B2:B120;B2:B120)) y CONTROL+MAYUSCULAS+ENTER
 
El resultado es 111 códigos postales únicos.
 

Indicar la primera repetición de un valor en una columna


Continuamos de nuevo en la hoja "Vuelos". Como ya hemos hecho varias veces,
en vez de indicar cuántas veces se repite cada valor de un rango, puedo
simplemente indicar con una "X" si un valor se repite o no, es decir, si no nos
interesa saber cuántas veces se repite un valor sino que simplemente queremos
saber si se repite o no. Por ejemplo, podemos usar la columna D para indicar
con una "X" los aeropuertos que se repiten y dejar la celda vacía para los que no
se repiten. Utilizaremos fórmulas matriciales de Tipo 4. Haz lo siguiente:

 Haz clic en B26

 Teclea el texto "TFS" que habíamos borrado antes

 Haz clic en D4

 Teclea la primera fórmula con las referencias absolutas correctamente indicadas:


=SI(CONTAR.SI($B$4:$B$27;B4)>1;"X";"")

 Introduce la fórmula con ENTER

 Vuelve a hacer clic en D4

 Usa el cuadro de relleno (parte inferior derecha de la celda) para rellenar con la
fórmula desde D4 hasta D27.
El resultado debería ser:
 

 
Como vemos, solamente aparece una "X" en los códigos repetidos (no nos
interesa el número exacto de repeticiones).
Sin embargo, esto no indica claramente en qué momento aparece la primera
repetición de cada aeropuerto. Supón que te piden que, en la columna E,
aparezca el texto "Repet.", no en todos los aeropuertos repetidos, sino solamente
cuando aparezca la primera repetición de un aeropuerto. Una fórmula así tendría
la utilidad de saber en qué celda de un rango se ha tecleado un valor repetido.
Para conseguirlo, hay que usar una fórmula que no hemos visto hasta ahora, que
sería de Tipo 4 pero con referencias mixtas. Una referencia mixta es un rango
que no tiene los 4 símbolos $, sino que solamente tiene 2 símbolos $ en la celda
inicial del rango. Veamos cómo se usa:

 Haz clic en la celda E4

 Teclea la siguiente fórmula, pero, atención, los $ no están equivocados, tecléalos


tal cual:
=SI(CONTAR.SI($B$4:B4;B4)>1;"Repet.";"")

 Introduce la fórmula con ENTER


 Vuelve a hacer clic en E4

 Usa el cuadro de relleno (parte inferior derecha de la celda) para rellenar con la
fórmula desde E4 hasta E27.

El resultado debería ser:


 

 
Aparece el texto "Repet." a partir de la celda en que Excel encuentra la primera
repetición de un aeropuerto.
Esta fórmula usa un rango mixto o semi-relativo, que es un rango en la forma:
$Columna$Fila:ColumnaFila

Por ejemplo:
$H$6:H18

De manera que, al copiar con el cuadro de relleno una fórmula que tenga ese
rango, la parte que tiene los $ se mantiene fija, H6, pero la parte que no tiene los $
va variando: H18, H19, H20, H21... Así, en nuestro caso, usamos este rango mixto
o semi-relativo en la fórmula:
 
 
y al arrastrar por el cuadro de relleno hacia abajo, este rango irá
cambiando B4:B4, B4:B5, B4:B6, B4:B7, B4:B8, ...
De esta manera, la función CONTAR.SI() que usa este rango semi-relativo, siempre
hace el conteo desde donde está la fórmula hacia arriba, hacia la primera celda
del rango. No cuenta las repeticiones en todo el rango, como hemos hecho hasta
ahora. Con ello, el resultado que obtengo es que Excel me mostrará el texto
"Repet." en la celda en que aparece la primera repetición de un aeropuerto y, si
bien también aparece en la segunda, tercera y siguientes repeticiones, con
este resultado la fórmula ya nos es útil.
 
Estas fórmulas que hemos visto pueden servirte para saber si un valor está
repetido en una lista, tanto si te interesa saber cuántas veces aparece, como si te
interesa precisamente lo contrario, controlar que los datos no estén repetidos.
 
 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Operaciones lógicas matriciales Parte 1.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Introducción a las operaciones lógicas


 
Cuando hablamos de valores lógicos, estamos diciendo que Excel es capaz de
trabajar con la lógica binaria VERDADERO y FALSO, pero también con valores 1 y
0. Los valores lógicos se obtienen como resultado de una operación lógica.
 
En seguida explicamos lo que es una operación lógica que opera con los
dos valores VERDADERO y FALSO, pero primero vamos a explicar para qué
sirven.
 
Las operaciones lógicas pueden usarse tanto en las fórmulas matriciales como en
las fórmulas estándar. Son importantes porque te permitirán crear funciones de
resumen (conteo, suma, promedio...) muy versátiles. Esto es debido a que las
operaciones lógicas permiten crear fórmulas con muchos criterios o pruebas
lógicas (también llamadas "condiciones") sin necesidad de usar los SI() anidados.
Recuerda que dijimos que es mejor evitar los SI() anidados porque son muy
"liosos". Además, según todo lo visto hasta ahora, si usas fórmulas estándar
tendrás que usar rangos intermedios visibles, pero si usas fórmulas matriciales de
resumen, Tipo 2 o Tipo 3, no necesitarás rangos con cálculos intermedios.
Por tanto, es muy interesante el hecho de no tener que usar la función SI() ni
tener que usar rangos con cálculos intermedios, ya que ambas cosas te permitirán
crear hojas de cálculo poco confusas y más potentes.
 
A partir de la introducción en Excel 2007 de las funciones SI CONJUNTO, ya no
son necesarios los SI() anidados y las fórmulas lógicas matriciales han perdido un
poco de protagonismo, pero siguen siendo unas fórmulas muy versátiles y llegan
allí donde las funciones SI CONJUNTO no llegan.
 
Para este tema, seguiremos este método: primero veremos el uso de las
operaciones lógicas en las fórmulas estándar. Después veremos la fácil manera
de convertir una fórmula estándar en una fórmula matricial de Tipo 1. Y, como
siempre, desde el Tipo 1 pasaremos a una función matricial de resumen de Tipo 2
o Tipo 3.
 
Vamos a ver estos pasos.

Por ejemplo, supón una función SI() estándar como esta:


 
=SI(A1>1;"X";"") y ENTER
 
Supón que introducimos esta fórmula en toda la columna B. La columna B
mostraría con una "X" qué celdas de la columna A cumplen el criterio (o
"condición") de que contengan un valor mayor que 1. Además, podríamos contar
cuántas "X" hay en la columna B y ya habríamos contado cuántas celdas de la
columna A cumplen dicha condición.
Esto sería útil más bien cuando queremos que el usuario de Excel vea claramente
si una celda de la columna A cumple o no la condición, gracias a la "X" que tiene a
su derecha en la columna B. Recuerda que una función
como CONTAR.SI.CONJUNTO() permite contar las celdas de la columna A mayores
que 1 directamente, sin necesidad de poner "X" en la columna B. Aun así, para
contar cuántas "X" hay en la columna B (suponiendo las 100 primeras filas)
bastaría usar la función:
 
=CONTAR.SI(B1:B100;"X") y ENTER
 
... o bien, usando las más modernas funciones SI CONJUNTO que fueron
incorporadas a Excel a partir de la versión Excel 2007, puedes usar como rango la
columna B entera:
 
=CONTAR.SI.CONJUNTO(B:B;"X") y ENTER
 
Pero también vimos que había una manera más fácil de contar.
Las dos funciones que acabamos de ver para contar cuántas "X" hay en un rango,
son más complicada que una simple SUMA(). Por consiguiente, podíamos cambiar
las "X" por 1's, y entonces bastaría con sumar esos 1's con una función tan
sencilla como la SUMA() estándar para obtener el conteo. Recordar que a esto lo
llamábamos el "truco de usar la función SUMA() para contar". Por ejemplo, en la
columna B pondríamos:
 
=SI(A1>1;1;0) y ENTER
 
... y así, para obtener el total de las celdas que cumplen la condición, bastaría una
simple SUMA() estándar:
 
=SUMA(B:B)

 
Así, todo es mucho más sencillo.
 
Pero todavía se puede hacer aún más sencillo. Y aquí es donde entran las
operaciones lógicas (matriciales o estándares).
Esta sencillez se consigue sustituyendo la función SI() por una operación lógica.
 
Para convertir una función SI() en una operación lógica, basta con borrar la
función SI() dejando la prueba lógica o criterio (o "condición") que hay dentro de
la función SI().
 
Por ejemplo, para transformar la función:
 
=SI(A1>1;1;0) y ENTER
 
... en una operación lógica, basta con dejar solamente su condición, el primer
parámetro:
 
=(A1>1) y ENTER
 
Y ya tenemos la operación lógica.
 
En cuanto veamos el primer ejemplo verás que una fórmula de este tipo devuelve
solamente VERDADERO o FALSO. Recuerda que seguiremos estos pasos:

 Primero, veremos el ejemplo usando fórmulas estándar, no matriciales, copiadas


con el cuadro de relleno, para averiguar las celdas que cumplen las condiciones
que te solicitan.

 Seguidamente, cambiaremos la versión estándar por la versión matricial de Tipo 1


multicelda. El resultado siempre es el mismo que la fórmula estándar, solamente
cambia la manera de obtener dicho resultado.

 Y, como siempre, una vez tenemos la versión en Tipo 1, es ya una paso directo
obtener la fórmula de resumen matricial unicelda de Tipo 2 para efectuar conteos
o sumas. No siempre te pedirán una función de resumen de conteo o suma, pero
nosotros siempre la pondremos.

Contar valores que cumplen una condición con operaciones


lógicas matriciales
Empecemos con un ejemplo sencillo. Si ya has descargado los ejemplos, abre el
archivo "Cuestiones.xls" y ponte en la hoja "Verdadero y Falso":
 

 
Supón que te piden que calcules, en la celda E2, cuántos números de la columna
A son mayores que 20. Lo primero que podríamos hacer es, en la columna B,
poner una fórmula que indique cuándo en la columna A hay un número mayor
que 20.
Los pasos que recomendamos para solucionarlo serían los tres pasos que hemos
apuntado antes: fórmula estándar, fórmula Tipo 1, función de resumen Tipo
2. Pero lo vamos a hacer usando funciones lógicas, es decir, usando los
valores VERDADERO y FALSO o bien 1's y 0's.
Fórmula estándar:

 Haz clic en B2

 Teclea la fórmula =SI(A2>20;"X";"") y ENTER

 Vuelve a hacer clic en B2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna B

El resultado:
 

 
Observa que sólo hay una X en la columna B cuando en la misma fila de la
columna A hay un número mayor que 20.
Ahora sería cuestión de contar las "X", pero, atención, hemos dicho que
usaremos solamente VERDADERO y FALSO, no "X" o nulos "". Por tanto, sigue el
paso que hemos explicado antes para transformar un SI() en una operación
lógica, es decir, bórralo todo excepto el "=" al inicio de la fórmula, los paréntesis y
la prueba lógica o condición:
 Haz clic en B2

 Teclea o modifica la fórmula así =(A2>20) y ENTER

 Vuelve a hacer clic en B2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna B

El resultado:
 

 
Un valor VERDADERO indica que el número en la columna A es mayor que 20 y un
valor FALSO indica que el número en la columna A no es mayor que 20. Ahora la
fórmula en la columna B es mucho más sencilla y no requiere de la función SI().
Bastaría ahora con contar los VERDADERO de la columna B y ya tendríamos el
conteo de los valores mayores que 20. Pero la función para contar
los VERDADERO debería ser una función SI(), CONTAR.SI(), SUMAR.SI() o
funciones SI CONJUNTO y hemos dicho que la forma más sencilla posible para
contar es usar la función SUMA() con 1's y 0's.
Pero para ello no podemos usar VERDADERO o FALSO. Debemos usar 1's y 0's.
La cuestión es: ¿cómo convertimos estos valores VERDADERO o FALSO en 1's y 0's?.
La respuesta es que Excel proporciona muchas fórmulas para hacerlo. Pero, de
entre todas las fórmulas, hay 6 que son las más usadas.
 
 
Para convertir un valor VERDADERO o FALSO en un valor 1 y 0 respectivamente,
podemos usar estas 6 fórmulas:
 
(A2>20)*1
(A2>20)+0
--(A2>20)
N(A2>20)
(A2>20)*VERDADERO
(A2>20)+FALSO
 
Excel considera los 0's como valor FALSO y los 1's como valor VERDADERO, si bien en
la práctica, Excel considerará 0 como FALSO, y cualquier valor distinto de cero: ...
-4, -3, -2, -1, 1, 2, 3, 4... como VERDADERO.
 
 
Vamos a verlo. Observa que la celda A2 contiene un valor de 21 por tanto la
operación lógica =(A2>20) tiene que dar VERDADERO que es equivalente a un valor
1. Vamos a verlo:

 Haz clic en la celda H2

 Teclea la fórmula: =(A2>20) y ENTER

El resultado es VERDADERO:
 

 
Vamos a ver cómo transformar ese VERDADERO en un 1 con las 6 fórmulas. Sigue
estos pasos:

 Haz clic en H3

 Teclea la fórmula =(A2>20)*1 y ENTER

 Haz clic en H4

 Teclea la fórmula =(A2>20)+0 y ENTER

 Haz clic en H5

 Teclea la fórmula =--(A2>20) y ENTER

 Haz clic en H6
 Teclea la fórmula =N(A2>20) y ENTER

 Haz clic en H7

 Teclea la fórmula =(A2>20)*VERDADERO y ENTER

 Haz clic en H8

 Teclea la fórmula =(A2>20)+FALSO y ENTER

El resultado:
 

 
 
Por tanto, hemos convertido el valor VERDADERO en un 1 usando 6 fórmulas
distintas. Cualquiera de ellas igual de válida, no hay una fórmula mejor que las
otras. Pero nosotros, en este Minicurso, elegiremos la primera de ellas y las dos
últimas por una razón que explicaremos más adelante.
 
Ahora vamos a usar la celda A3, que tiene el valor de 20 y por tanto la operación
lógica =(A3>20) tiene que dar FALSO, que es equivalente a un valor 0. Vamos a
verlo:

 Haz clic en la celda I2

 Teclea la fórmula =(A3>20) y ENTER

El resultado es FALSO:
 
 
Vamos a ver cómo transformar ese FALSO en un 0 con las 6 fórmulas. Sigue
estos pasos:

 Haz clic en I3

 Teclea la fórmula =(A3>20)*1 y ENTER

 Haz clic en I4

 Teclea la fórmula =(A3>20)+0 y ENTER

 Haz clic en I5

 Teclea la fórmula =--(A3>20) y ENTER

 Haz clic en I6

 Teclea la fórmula =N(A3>20) y ENTER

 Haz clic en I7

 Teclea la fórmula =(A3>20)*VERDADERO y ENTER

 Haz clic en I8

 Teclea la fórmula =(A3>20)+FALSO y ENTER

El resultado:
 
 
 
Por tanto, hemos convertido el valor FALSO en un 0 usando 6 fórmulas
distintas. Cualquiera de ellas igual de válida, no hay una fórmula mejor que las
otras. Pero nosotros, en este Minicurso, elegiremos la primera de ellas y las dos
últimas por una razón que explicaremos más adelante.
 
Si buscas fórmulas matriciales en Internet, te puedes encontrar cualquiera de las 6
fórmulas. Pero insistimos que nosotros usaremos la primera y las dos últimas por
una razón que explicaremos más adelante.
 
Una vez vistas las 6 maneras de convertir un VERDADERO en un 1 o un FALSO en un
0, vamos a aplicarlo a nuestro ejemplo con la finalidad de crear una fórmula lo más
sencilla posible que me cuente en la celda E2 cuántos números mayores que 20
hay en la columna A. Lo que tenemos que hacer es usar cualquiera de las 6
fórmulas para convertir los VERDADERO y FALSO de la columna B en 1's y 0's. Haz lo
siguiente:

 Haz clic en B2

 Teclea o modifica la fórmula así =(A2>20)*1 y ENTER

 Vuelve a hacer clic en B2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna B

El resultado:
 
 
Un valor 1 indica que el número en la columna A es mayor que 20 y un valor 0
indica que el número en la columna A no es mayor que 20. La fórmula sigue
siendo muy sencilla y no requiere de la función SI().
Por último, bastará ahora con sumar la columna B y ya tendríamos el conteo de
los valores mayores que 20. La fórmula más sencilla que hay sería:

 Haz clic en E2

 Teclea la fórmula =SUMA(B2:B31) y ENTER

El resultado:
 

 
Esto significa que la columna A tiene 17 celdas con valores mayores que 20.
 
Observa que hemos hecho el conteo usando funciones muy sencillas. Es la
forma más sencilla que hemos visto hasta ahora de hacer un conteo. Solamente
hemos usado estas dos funciones: =(A2>20)*1 en la columna B
y =SUMA(B2:B31) en la celda E2. Recuerda que hemos usado el truco de usar la
función SUMA() para contar.
 
Sin embargo, aún no hemos acabado, porque para obtener el conteo, hemos
necesitado de la columna B, y nosotros lo que queremos es no usar rangos con
datos intermedios. Hemos de obtener una fórmula que no necesite de la columna
B y, como siempre, esto nos lleva a buscar una función matricial de Tipo 1 que
haga lo mismo que la fórmula estándar, y, una vez obtenida esta función de Tipo
1, ya te será fácil en este punto del curso ver cómo obtenemos una función de
Tipo 2 o de Tipo 3 para hacer el conteo.
 
Fórmula matricial de Tipo 1:

 Selecciona desde B2 hasta B31

 Pulsa la tecla SUPR para borrar su contenido. No hagas clic en ningún sitio para
que no se deshaga la selección.
 Teclea la fórmula =(A2:A31>20)*1 y CONTROL+MAYÚSCULAS+ENTER

(resaltamos en color la única parte que cambia con respecto a la fórmula


estándar en el apartado anterior)

El resultado:
 

 
Es exactamente igual que antes. No cambia nada. Solamente que ahora tenemos
ya la fórmula matricial de Tipo 1.
 
Fórmula de resumen matricial de Tipo 2 o Tipo 3
A partir de la fórmula de Tipo 1 obtenemos la de Tipo 2 o Tipo 3. Basta con teclear
la función de resumen y ponerle en su interior como parámetro la misma fórmula
de Tipo 1. Vamos a ver dos fórmulas, la de Tipo 2 que será SUMA() acabada con
CONTROL+MAYUSCULAS+ENTER y la de Tipo 3 que
será SUMAPRODUCTO() acabado en ENTER.

 Haz clic en E2

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula:
=SUMA((A2:A31>20)*1)

 Acaba con CONTROL+MAYUSCULAS+ENTER

 Haz clic en E3

 Teclea la fórmula:
=SUMAPRODUCTO((A2:A31>20)*1)

 Acaba con ENTER

El resultado con ambas fórmulas habría de ser el correcto:


 

 
Ahora ya puedes borrar el contenido de la columna B y verás que las fórmulas en
E2 y E3 no cambian, es decir, son fórmulas totalmente independientes que no
necesitan de rangos intermedios:
 
 
Es más, si cambiamos el valor de la celda A3 e introducimos el valor 99, las
fórmulas E2 y E3 incrementarán el conteo para añadir este nuevo valor mayor que
20:
 

 
Si hay que elegir entre las dos fórmulas, SUMA() introducida con
CONTROL+MAYUSCULAS+ENTER o SUMAPRODUCTO() introducida con ENTER,
recuera que siempre es más cómodo usar SUMAPRODUCTO() acabado en ENTER y
además esta función tiene una gran ventaja que veremos enseguida.

Si recuerdas, en las fórmulas matriciales de Tipo 2, siempre acabábamos diciendo


que es lo mismo...
 ... poner en el rango B2:B31 la fórmula matricial  de Tipo 1 =(A2:A31>20)*1, y
sumar este rango con =SUMAPRODUCTO(B2:B31) y ENTER, es lo mismo que...

 ... usar directamente en una sola celda la función de Tipo


3 =SUMAPRODUCTO((A2:A31>20)*1) y ENTER

Y también:

 en el primer caso se ve la matriz intermedia en B2:B31 y se ven los elementos de


esa matriz que luego sumaremos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

 
Ahora hazlo tú:
Continuamos en archivo "Cuestiones.xls", en la hoja "Meses":
 

 
En esta hoja hay una lista con muchas fechas en la columna A. Supón que te
piden, en la celda E2, una fórmula que haga un conteo de cuántas fechas hay del
mes de septiembre en la columna A. Te piden que no uses rangos con datos
intermedios. Hazlo usando SUMA() ó SUMAPRODUCTO() para contar y con las menos
funciones posibles, teniendo en cuenta que una de las funciones que tendrás que
usar es MES(fecha).
El resultado debería ser:
 
 
Te damos una pista:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Contar valores repetidos con operaciones lógicas


matriciales
Continuaremos con otro ejemplo. Ahora no contaremos elementos que cumplan
una condición sino que contaremos valores repetidos en un rango.
 
Las fórmulas que se usan para contar valores repetidos son totalmente
distintas de las que se usan para contar valores que cumplan ciertas condiciones.
 
Si ya has descargado los ejemplos, abre el archivo "Cuestiones.xls" y ponte en la
hoja "Repetidos":
 
 
Esta hoja ya la hemos usado antes en el tema de usar CONTAR.SI() matricial.
Ahora vamos a ver cómo contar repetidos con fórmulas de lógica matricial y verás
que es mucho más sencillo. Supón que te piden que calcules, en la celda F2,
cuántos códigos de la columna C están repetidos. Lo primero que podríamos
hacer es, en la columna B, poner una fórmula que indique cuándo en la columna
B hay un código repetido.
Los pasos que recomendamos para solucionarlo serían los tres pasos que hemos
apuntado antes: fórmula estándar, fórmula Tipo 1, función de resumen Tipo
2. Pero lo vamos a hacer usando funciones lógicas.
 
Fórmula estándar:

 Haz clic en C2

 Teclea la fórmula:

=SI(CONTAR.SI($B$2:$B$120;B2)>1;"X";"") y ENTER

 Vuelve a hacer clic en C2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna C

El resultado:
 
 
Sólo hay una "X" en la columna C cuando en la misma fila de la columna B hay un
código que esté repetido en la propia columna B. Si tienes Excel 2007+ puedes
comprobar que realmente hay una X por cada valor repetido, seleccionando la
columna B completa y haciendo clic en la ficha Inicio → Formato condicional →
Resaltar reglas de celdas* → Duplicar valores** → Aceptar. Aparecerán
coloreadas las celdas repetidas de B y verás que coinciden con las "X" de C:
 

 
(*) Mala traducción del inglés "Reglas para resaltar celdas"
(**) Mala traducción del inglés "Resaltar valores duplicados"

 
Ahora sería cuestión de contar las "X", pero, atención, habíamos dicho que
trabajaríamos solamente con VERDADERO y FALSO, no con "X" o nulos "". Por tanto,
sigue el paso que hemos explicado antes para transformar un SI() en una
operación lógica, es decir, bórralo todo excepto el "=" al inicio de la fórmula, los
paréntesis y la prueba lógica o condición:

 Haz clic en C2

 Teclea o modifica la fórmula:

=(CONTAR.SI($B$2:$B$120;B2)>1) y ENTER

 Vuelve a hacer clic en C2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna C

El resultado:
 

 
Un valor VERDADERO indica que el código en la columna B está repetido y un
valor FALSO indica que el código en la columna B no está repetido. Ahora la
fórmula es mucho más sencilla y no requiere de la función SI().
Bastaría ahora con contar los VERDADERO de la columna C y ya tendríamos el
conteo de los valores repetidos. Pero ya hemos dicho que la forma más sencilla
posible para contar es usar la función SUMA() con 1's y 0's. Para convertir un
valor VERDADERO o FALSO en un valor 1 y 0 respectivamente recordar que hay 6
fórmulas:

(CONTAR.SI($B$2:$B$120;B2)>1)*1
(CONTAR.SI($B$2:$B$120;B2)>1)+0
--(CONTAR.SI($B$2:$B$120;B2)>1)
N(CONTAR.SI($B$2:$B$120;B2)>1)
(CONTAR.SI($B$2:$B$120;B2)>1)*VERDADERO
(CONTAR.SI($B$2:$B$120;B2)>1)+FALSO

Excel considera los 0's como valor FALSO y los 1's como valor VERDADERO, si bien en
la práctica, Excel considerará 0 como FALSO, y cualquier valor distinto de cero: ...
-4, -3, -2, -1, 1, 2, 3, 4 ... como VERDADERO. Como hemos dicho, cualquiera de las 6
fórmulas es igual de válida y, si buscas fórmulas matriciales en Internet, te puedes
encontrar cualquiera de ellas. Pero insistimos que nosotros usaremos la primera y
las dos últimas por una razón que explicaremos más adelante.
Vamos a convertir los VERDADERO y FALSO de la columna C en 1's y 0's. Haz los
siguiente:

 Haz clic en C2

 Teclea la fórmula:

=(CONTAR.SI($B$2:$B$120;B2)>1)*1 y ENTER (resaltamos los paréntesis porque


recuerda que es necesario ponerlos)

 Vuelve a hacer clic en C2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna C

El resultado:
 
 
Un valor 1 indica que el código en la columna B está repetido y un valor 0 indica
que el código en la columna B no está repetido. La fórmula ya no requiere de la
función SI().
Por último, bastará ahora con sumar la columna C y ya tendríamos el conteo de
los valores repetidos en la columna B. La fórmula más sencilla que hay sería:

 Haz clic en F2

 Teclea la fórmula =SUMA(C2:C120) y ENTER

El resultado:
 

 
Esto significa que la columna B tiene 16 celdas con valores repetidos, si bien no
queda claro cuántos códigos únicos hay repetidos, ya que este 16 puede significar
1 código repetido 16 veces, 8 códigos repetidos 2 veces, etc.
 
Observa que hemos hecho el conteo usando funciones bastante sencillas.
Recuerda que hemos usado el truco de usar la función SUMA() para contar.
 
Sin embargo, aún no hemos acabado, porque para obtener el conteo, hemos
necesitado de la columna C, y nosotros lo que queremos es no usar rangos con
datos intermedios. Hemos de obtener una fórmula que no necesite de la columna
C y, como siempre, esto nos lleva a buscar una función matricial de Tipo 1 que
haga lo mismo que la fórmula estándar, y, una vez obtenida esta función de Tipo
1, ya te será fácil en este punto del curso ver cómo obtenemos una función de
Tipo 2 o de Tipo 3 para hacer el conteo.
 
Fórmula matricial de Tipo 1:

 Selecciona desde C2 hasta C120 (una manera rápida de hacerlo es hacer clic en
C2 y pulsar CTRL+SHIFT+↓)

 Pulsa la tecla SUPR para borrar su contenido. No hagas clic en ningún sitio para
que no se deshaga la selección.

 Teclea la fórmula:

=(CONTAR.SI(B2:B120;B2:B120)>1)*1 y CONTROL+MAYÚSCULAS+ENTER
El resultado:
 

 
Es exactamente igual que antes. No cambia nada. Solamente que ahora tenemos
ya la fórmula matricial de Tipo 1.
 
Fórmula de resumen matricial de Tipo 2 o Tipo 3
A partir de la fórmula de Tipo 1 obtenemos la de Tipo 2 o Tipo 3. Basta con teclear
la función de resumen y ponerle en su interior como parámetro la misma fórmula
de Tipo 1. Vamos a ver dos fórmulas, la de Tipo 2 que será SUMA() acabada con
CONTROL+MAYUSCULAS+ENTER y la de Tipo 3 que
será SUMAPRODUCTO() acabado en ENTER.

 Haz clic en F2

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula:

=SUMA((CONTAR.SI(B2:B120;B2:B120)>1)*1) y
CONTROL+MAYÚSCULAS+ENTER

 Haz clic en F3

 Teclea la fórmula:

=SUMAPRODUCTO((CONTAR.SI(B2:B120;B2:B120)>1)*1) y ENTER

 Incluso, si quieres, podrías teclear la siguiente fórmula en F4, el resultado sería


siempre el mismo que las dos fórmulas anteriores y no habría ningún
inconveniente:

=SUMAPRODUCTO(N(CONTAR.SI(B2:B120;B2:B120)>1)) y ENTER
 
El resultado con estas fórmulas habría de ser el correcto:
 

 
Ahora ya puedes borrar el contenido de la columna C y verás que las fórmulas en
F2 y F3 no cambian, es decir, son fórmulas totalmente independientes que no
necesitan de rangos intermedios:
 
 
Es más, si cambiamos el valor de, por ejemplo, las celdas B6 y B7 introduciendo el
código "AAA", las fórmulas F2 y F3 incrementarán el conteo en 2 para añadir este
nuevo código repetido 2 veces:
 

 
Si hay que elegir entre las dos fórmulas, SUMA() introducida con
CONTROL+MAYUSCULAS+ENTER o SUMAPRODUCTO() introducida con ENTER,
recuera que siempre es más cómodo usar SUMAPRODUCTO() acabado en ENTER y
además esta función tiene una gran ventaja que veremos enseguida.

Si recuerdas, en las fórmulas matriciales de Tipo 2, siempre acabábamos diciendo


que es lo mismo...

 ... poner en el rango C2:C120 la fórmula matricial  de Tipo


1 =(CONTAR.SI(B2:B120;B2:B120)>1)*1, y sumar este rango
con =SUMAPRODUCTO(C2:C120) y ENTER, es lo mismo que...
 ... usar directamente en una sola celda la función de Tipo
3 =SUMAPRODUCTO((CONTAR.SI(B2:B120;B2:B120)>1)*1) y ENTER

Y también:

 en el primer caso se ve la matriz intermedia en C2:C120 y se ven los elementos de


esa matriz que luego sumaremos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Operaciones lógicas matriciales Parte 2.
 
Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar
con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1
 
Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera
entrega de este minicurso de Matrices en Excel.
 

Definición de "operación lógica"


Ya hemos visto lo que son las operaciones lógicas, sabemos que son
"funciones SI() pero quitando el SI()", pero nos falta una definición más estricta.
La definición la podemos hacer comparando una operación aritmética estándar
con una operación lógica. Estamos acostumbrados a oír que una operación
aritmética estándar se denomine "operación", que tenga uno o más "operadores" y
que tenga uno o más "operandos". Por ejemplo, "2+4" es una "operación", sólo
hay un "operador" que es "más" (+) y dos "operandos" que son los números 2 y 4.
El resultado de esta operación es 6. También una función aritmética puede ser un
operador matemático, como RAIZ(), ENTERO(), PROMEDIO(), SUMA() y otras
funciones llamadas "matemáticas y trigonométricas". Por último, el resultado de
una operación aritmética es siempre un número.
 
Pues bien, de la misma manera, una "operación lógica" tiene también
sus "operandos" y sus "operadores", como pueden ser los operadores
lógicos estándar =, >, <, >=, <=, <>, pero también hay funciones que hacen de
operadores como ES.IMPAR(), ES.PAR(), ESBLANCO(), ESERROR(), ESNOTEXTO(),
ESNUMERO(), ESTEXTO() y otras funciones llamadas "de información". Por último,
el resultado de una operación lógica es siempre VERDADERO o FALSO.
 
También hay otras dos operaciones lógicas importantes que son "*" y "+". Ya
sabemos que el operador "*" en una operación aritmética significa "multiplicación"
y que el operador "+" en una operación aritmética significa "suma". Además,
sabemos que los paréntesis "(" y ")" cambian la precedencia de los operadores.
 
Pero en una operación lógica, el operador "*" equivale a "AND" y el
operador "+" equivale a "OR". Además, los paréntesis "(" y ")" también cambian
la precedencia de los operadores.
 
Vamos a verlo y también veremos por qué hemos dicho antes que, de las 6
funciones que transformaban VERDADERO y FALSO en 1's y 0's, nosotros
preferimos (operación)*1, (operación)*VERDADERO y (operación)+FALSO.
 

Producto de varias operaciones lógicas (AND lógico)


Ya hemos visto que multiplicando una operación lógica por 1, convertimos
el VERDADERO en un 1, y el FALSO en un 0. Pero hay otra manera de
convertir VERDADERO y FALSO en 1's y 0's, que es usar el operador "*" como
"AND" lógico, usando este operador cuando nos piden una fórmula que requiere
de dos o más operaciones lógicas.
 
Vamos a verlo.
 
Seguimos en el archivo "Cuestiones.xls" en la hoja "Meses". Supón que te piden
que, en la celda F4, calcules cuántas fechas de la columna A son del tercer
trimestre del año.
Esto es lo mismo que decir que cuentes las fechas entre los meses de julio y
septiembre ambos inclusive, lo que, en una operación lógica, sería decir que se
han de cumplir 2 condiciones a la vez: que el mes de la fecha sea mayor o igual
que 7, y a la vez, que el mes de la fecha sea menor o igual que 9. Pero este "y a
la vez" es en realidad un "AND" lógico, lo que se consigue en Excel con el
operador "*".
Vamos a verlo siguiendo los pasos que hemos seguido hasta ahora: función
estándar transformando VERDADERO y FALSO en 1's y 0's en la columna B, función
equivalente de Tipo 1 y función de resumen de Tipo 2 o Tipo 3.
 
Fórmula estándar con los valores lógicos convertidos ya a 1's y 0's
Usaremos la columna B como rango intermedio para hacer este cálculo. Sigue
estos pasos:

 Haz clic en la celda B3


 Teclea la siguiente fórmula (observa que no hay que poner   *1 como hasta
ahora):

=(MES(A3)>=7)*(MES(A3)<=9) y ENTER

 Vuelve a hacer clic en  la celda B3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna B

El resultado:
 
 
Un valor 1 indica que la fecha en la columna A está entre julio y septiembre y un
valor 0 indica que no lo está. La fórmula no requiere de la función SI() y por tanto
es una operación lógica, y es más sencilla que usar un SI().
Pero hay una diferencia con lo que hemos hecho hasta ahora, y es que no hemos
hecho la multiplicación por 1 para transformar los VERDADERO en 1's y
los FALSO en 0's.
 
Ya no necesito multiplicar por 1, ni necesito ninguna de las 6 maneras que dijimos
de transformar VERDADERO y FALSO en 1's y 0's porque cuando multiplico 2 ó
más operaciones lógicas entre paréntesis, Excel ya hace automáticamente la
conversión en 1's y 0's. Por tanto, sólo es necesario hacer (operación
lógica)*1 cuando solamente tengo 1 operación lógica que quiero convertir en 1
ó 0.
Dicho de otra manera, cuando se usa el operador * como "AND" lógico con 2 ó
más operaciones lógicas, Excel siempre da como resultado un 1 ó un 0. Debe
interpretarse entonces ese 1 como VERDADERO y ese 0 como FALSO.
Aun en estos casos en que se multipliquen varias operaciones lógicas, los
paréntesis alrededor de cada operación lógica hay que seguir
manteniéndolos. Es decir, la operación sin paréntesis   
=MES(A3)>=7*MES(A3)<=9 dará resultados totalmente erróneos.

Antes hemos dicho que preferíamos usar la fórmula (operación lógica)*1 de entre
las 6 fórmulas que podemos usar para convertir VERDADERO y FALSO en 1's y
0's. La razón es que así usaremos siempre el operador "*".
Una vez dicho esto, para obtener el total de fechas del tercer trimestre, puedo,
provisionalmente, poner en F4 el total con una función SUMA() estándar para
sumar todos los 1's:

 Haz clic en F4

 Teclea la fórmula =SUMA(B3:B102) y ENTER

El resultado:
 

 
 
Observa que hemos hecho el conteo usando funciones bastante sencillas.
Recuerda que hemos usado el truco de usar la función SUMA() para contar.
 
Sin embargo, aún no hemos acabado, porque para obtener el conteo, hemos
necesitado de la columna B, y nosotros lo que queremos es no usar rangos con
datos intermedios. Hemos de obtener una fórmula que no necesite de la columna
B y, como siempre, esto nos lleva a buscar una función matricial de Tipo 1 que
haga lo mismo que la fórmula estándar, y, una vez obtenida esta función de Tipo
1, ya te será fácil en este punto del curso ver cómo obtenemos una función de
Tipo 2 o de Tipo 3 para hacer el conteo.
 
Fórmula matricial de Tipo 1:

 Selecciona desde B3 hasta B102 (una manera rápida de hacerlo es hacer clic en
B3 y pulsar CTRL+SHIFT+↓)

 Pulsa la tecla SUPR para borrar su contenido. No hagas clic en ningún sitio para
que no se deshaga la selección.

 Teclea la fórmula:

=(MES(A3:A102)>=7)*(MES(A3:A102)<=9) y CONTROL+MAYÚSCULAS+ENTER
El resultado:
 

 
Es exactamente igual que antes. No cambia nada. Solamente que ahora tenemos
ya la fórmula matricial de Tipo 1.
 
Fórmula de resumen matricial de Tipo 2 o Tipo 3:
A partir de la fórmula de Tipo 1 obtenemos la de Tipo 2 o Tipo 3. Basta con teclear
la función de resumen y ponerle en su interior como parámetro la misma fórmula
de Tipo 1. Vamos a ver dos fórmulas, la de Tipo 2 que será SUMA() acabada con
CONTROL+MAYUSCULAS+ENTER y la de Tipo 3 que
será SUMAPRODUCTO() acabado en ENTER.

 Haz clic en F4

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula:

=SUMA((MES(A3:A102)>=7)*(MES(A3:A102)<=9)) y
CONTROL+MAYÚSCULAS+ENTER

 Haz clic en F5

 Teclea la fórmula:

=SUMAPRODUCTO((MES(A3:A102)>=7)*(MES(A3:A102)<=9)) y ENTER
El resultado con ambas fórmulas habría de ser el correcto:
 

 
Ahora ya puedes borrar el contenido de la columna B y verás que las fórmulas en
F4 y F5 no cambian, es decir, son fórmulas totalmente independientes que no
necesitan de rangos intermedios:
 

 
Es más, si cambiamos el valor de, por ejemplo, la celda A3 por una fecha del mes
de julio, las fórmulas F4 y F5 incrementarán el conteo en 1 para añadir esta nueva
fecha del segundo semestre:
 

 
Si hay que elegir entre las dos fórmulas, SUMA() introducida con
CONTROL+MAYUSCULAS+ENTER o SUMAPRODUCTO() introducida con ENTER,
recuera que siempre es más cómodo usar SUMAPRODUCTO() acabado en ENTER y
además esta función tiene una gran ventaja que veremos enseguida.

Si recuerdas, en las fórmulas matriciales de Tipo 2, siempre acabábamos diciendo


que es lo mismo...

 ... poner en el rango B2:B102 la fórmula matricial  de Tipo


1 =(MES(A3:A102)>=7)*(MES(A3:A102)<=9), y sumar este rango
con =SUMAPRODUCTO(B2:B120) y ENTER, es lo mismo que...

 ... usar directamente en una sola celda la


función =SUMAPRODUCTO((MES(A3:A102)>=7)*(MES(A3:A102)<=9)) y ENTER

Y también:

 en el primer caso se ve la matriz intermedia en B2:B102 y se ven los elementos de


esa matriz que luego sumaremos.

 en el segundo caso no se ve la matriz, la pone Excel en la memoria de la


computadora y hace la suma con esta matriz que no se ve.

 
Sería interesante que vieses cómo opera Excel con el operador * usado
como AND lógico. Haz lo siguiente:

Ponte en la hoja "Compras Meses 2" del archivo "Cuestiones.xls":


 
 
Vamos a hacer el mismo ejemplo que el anterior pero lo haremos por partes:
usaremos la columna D para indicar si el mes de la fecha en la columna A es
mayor o igual que 7 y usaremos la columna E para indicar si el mes de la fecha en
la columna A es menor o igual que 9. Lo haremos con operaciones lógicas no
matriciales para verlo más claramente:

 Haz clic en D3

 Teclea la fórmula =(MES(A3)>=7)*1 y ENTER (resaltamos los paréntesis porque

recuerda que es necesario ponerlos)

 Vuelve a hacer clic en D3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna D

 Haz clic en E3

 Teclea la fórmula =(MES(A3)<=9)*1 y ENTER

 Vuelve a hacer clic en E3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna E

El resultado debería ser:


 
 
Fíjate que la columna D muestra el valor 1 (VERDADERO) si el mes de la fecha en la
columna A es julio, agosto, septiembre, octubre, noviembre o diciembre. Y también
fíjate que la columna E muestra el valor 1 (VERDADERO) si el mes de la fecha en la
columna A es septiembre, agosto, julio, junio, mayo, abril, marzo, febrero o enero.
Por tanto, si te fijas en las columnas D y E por separado, aparentemente no
estamos resolviendo lo que te piden.
Pero si te fijas en las dos columnas D y E a la vez, verás que las filas que tienen
un 1 en la columna D y, a la vez, un 1 en la columna E, son justamente las filas de
la columna A que son de los meses que te están solicitando: julio, agosto y
septiembre.
Por tanto, podemos crear, en la columna F, una fórmula que me indique
claramente las filas que tienen un 1 a la vez en las columnas D y E. La mejor
fórmula es, precisamente, multiplicar (operador "*") las filas de la columna D y E,
de forma que en la columna F solamente habrá un 1 si D y E son 1 a la vez. Para
verlo, haz lo siguiente:

 Haz clic en F3

 Teclea la fórmula =E3*D3 y ENTER.

 Vuelve a hacer clic en F3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna F

El resultado debería ser:


 
 
Para que lo veas mejor, hemos coloreado las celdas que en la columna D
contienen un 1, las celdas que en la columna E tienen un 1 y comprueba que
solamente las filas que son todas verdes tienen un 1 en la columna F:
 

 
 
Por consiguiente, al trabajar con 1's y 0's en vez de con VERDADERO y FALSO, el
operador * hace las veces de operador lógico "AND" porque, como ves en las
celdas naranjas de la imagen anterior, solamente 1*1 = 1 (VERDADERO), mientras
que en resto de los casos es 0 (FALSO).
 
Ahora es cuestión de sumar los 1's de la columna F para saber cuántas fechas de
la columna A son del tercer trimestre:

 Haz clic en G1

 Teclea la fórmula =SUMA(F:F) y ENTER

El resultado es el mismo que antes:


 

 
Sin embargo, podemos hacer este cálculo si unimos los cálculos de las columnas
D y E en una sola operación en la columna F, haciendo lo siguiente:

 Selecciona las columnas D y E y pulsa la tecla SUPR para borrar su contenido

 Haz clic en F3 y pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula =(MES(A3)>=7)*(MES(A3)<=9) y ENTER (resaltamos los

paréntesis porque recuerda que es necesario ponerlos)

 Vuelve a hacer clic en F3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna F

El resultado debería ser:


 
 
Nuevamente es el resultado en la celda G1 es el correcto, pero ahora solamente
hemos usado la columna F.
Y por último, podemos dejarlo todo en una sola fórmula matricial de Tipo 3,
solamente habrá que tener en cuenta usar rangos en vez de celdas, en concreto,
el rango A3:A102:

 Haz clic en G1

 Teclea o modifica la fórmula así:

=SUMAPRODUCTO((MES(A3:A102)>=7)*(MES(A3:A102)<=9)) y ENTER

 Selecciona la columna F y pulsa la tecla SUPR para borrar su contenido

El resultado no cambia pues ahora la fórmula en G1 es totalmente independiente


de rangos externos:
 
 
 
Esperamos que con esto te haya quedado más claro por qué el operador * actúa
como si fuese un AND lógico.
 

Cambiando un poco lo que hemos estado diciendo hasta ahora, podemos ahora
decir que, es lo mismo:

 Poner en D3 la fórmula =(MES(A3)>=7)*1, acabar con ENTER y rellenar la


columna. Poner en E3 la fórmula =(MES(A3)<=9)*1, acabar con ENTER y
rellenar la columna. Poner en F3 la fórmula =D3*E3 para hacer un "AND", acabar
con ENTER y rellenar la columna. Y por último poner en G1 la
fórmula  =SUMAPRODUCTO(F3:F102) y acabar con ENTER, Es lo mismo que:

 Es lo mismo que usar directamente en G1 la


fórmula =SUMAPRODUCTO((MES(A3:A102)>=7)*(MES(A3:A102)<=9)) y acabar
con ENTER.

 
Ahora hazlo tú:
Seguimos en el archivo "Cuestiones.xls" en la hoja "Compras Meses":
 

 
Es la misma hoja que "Compras Meses 2". Tenemos las mismas fechas en la
columna A, pero además hemos añadido a esa fecha el número de compras de
los clientes y el volumen de facturación de esa fecha en las columnas B y C.
Supón que te piden que uses SUMAPRODUCTO() para calcular en F3 cuántas fechas
de los meses entre septiembre y noviembre hay con 10 ó más compras y con un
volumen de 20.000 ó más. Es decir, te piden usar SUMAPRODUCTO() para hacer un
conteo. El resultado debería ser:
 

 
Te damos una pista 1:
Clic aquí para ver

 
Te damos una pista 2:
Clic aquí para ver

 
Te damos la solución:
Clic aquí para ver

Sumar valores que cumplen una o varias condiciones


lógicas
Hasta ahora hemos usado SUMA() o SUMAPRODUCTO() para contar valores. Ahora
vamos a ver cómo usar estas dos funciones para sumar valores, lo que a fin de
cuentas es la utilidad de estas funciones. Recuerda que, el uso de SUMA() y
SUMAPRODUCTO() para contar, no es más que uno de los "trucos" muy usados en las
fórmulas matriciales.
 
Continuaremos usando el operador * como AND lógico para obtener la suma de
valores que cumplan varias condiciones lógicas a la vez, pero además esta vez lo
mezclaremos con el operador * usado como multiplicación aritmética, la
multiplicación "de toda la vida".
 
Seguimos en el archivo "Cuestiones.xls" en la hoja "Compras meses":
 

 
Esta vez te piden, en la celda F11, una fórmula que calcule la suma total del
volumen de compras, pero solamente de las compras hechas entre los meses de
septiembre a noviembre, con más de 10 compras y que facturen más de
20.000. Fíjate que no te piden "cuántas" sino que "sumes" el volumen de
compras.
Primero te diremos la fórmula y luego te explicaremos por qué esta fórmula da la
suma correcta:

 Haz clic en F11

 Teclea la fórmula:
=SUMAPRODUCTO((MES(A3:A102)>=9)*(MES(A3:A102)<=11)*(B3:B102>=10)*(C3:C102
>=20000)*(C3:C102)) y ENTER

El resultado debería ser:


 

 
Esto significa que la suma de los valores de la columna C que cumplen las 4
condiciones que nos han pedido, es el valor que se muestra en la celda F11.

 También puedes teclear en H11 la fórmula:


=SUMA((MES(A3:A102)>=9)*(MES(A3:A102)<=11)*(B3:B102>=10)*(C3:C102>=20000)
*(C3:C102)) y CONTROL+MAYUSCULAS+ENTER
Y el resultado será el mismo.
 
El quid de la fórmula es la multiplicación por el último rango *(C3:C102), que
hemos resaltado en color. Este rango es justamente el rango que contiene los
valores que te han pedido sumar. Cuando cada una de las 4 condiciones lógicas
sean VERDADERO ó 1, la multiplicación de todas ellas también dará un 1. En el resto
de los casos dará FALSO ó 0. Hasta aquí consideramos el operador * como un AND
lógico. El uso del operador * con las 4 condiciones lógicas solamente puede dar
un resultado 1 ó 0.
Pero si añadimos un * más para multiplicar dicho resultado final 1 ó 0 por un
número (en este caso el número que hay en el rango C3:C102) ya no estamos
usando * como AND lógico sino como una multiplicación aritmética "de toda la
vida". Cuando el resultado final es 1, la multiplicación del valor en la columna C
por un 1 da como resultado ese mismo valor. Cuando el resultado final es 0, la
multiplicación del valor en la columna C por un 0 da como resultado 0. Por
tanto, solamente hay que sumar esos valores para obtener el total ya que los
ceros no influyen en la suma.
 
Al igual que antes, sería interesante que vieses cómo opera Excel con el
producto * usado como AND lógico y, al mismo tiempo, usado para obtener
los valores a sumar. Haz lo siguiente:
 
Ponte en la hoja "Compras Meses 2" del archivo "Cuestiones.xls":
 
 
Borra todas las fórmulas que hayan podido quedar de ejemplos anteriores.
Vamos a hacer el mismo ejemplo que el anterior pero lo haremos por partes:
usaremos la columna D para indicar si el mes de la fecha en la columna A es
mayor o igual que 9, usaremos la columna E para indicar si el mes de la fecha en
la columna A es menor o igual que 11, usaremos la columna F para indicar si la
cantidad de compras de la columna B es mayor o igual que 10 y usaremos la
columna G para indicar si el volumen de compras de la columna C es mayor o
igual que 20.000. Lo haremos con operaciones lógicas no matriciales para verlo
más claramente:

 Haz clic en D3

 Teclea la fórmula =(MES(A3)>=9)*1 y ENTER (resaltamos los paréntesis porque

recuerda que es necesario ponerlos)

 Haz clic en E3

 Teclea la fórmula =(MES(A3)<=11)*1 y ENTER

 Haz clic en F3

 Teclea la fórmula =(B3>=10)*1 y ENTER

 Haz clic en G3

 Teclea la fórmula =(C3>=20000)*1 y ENTER

 Selecciona el rango desde D3 hasta G3


 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda G3) para
rellenar las columnas D, E, F y G con las fórmulas que has tecleado

El resultado debería ser:


 

 
En este caso, la columna D muestra el valor 1 (VERDADERO) si el mes de la fecha en
la columna A es desde septiembre hasta diciembre. La columna E muestra el valor
1 (VERDADERO) si el mes de la fecha en la columna A es desde enero hasta
noviembre. La columna F muestra el valor 1 (VERDADERO) si la cantidad de compras
de la columna B es mayor o igual que 10. La columna G muestra el valor 1
(VERDADERO) si el volumen de compras de la columna C es mayor o igual que
20.000. Por tanto, si te fijas en las columnas D, E, F y G por separado,
aparentemente no estamos resolviendo lo que te piden.
Pero si te fijas en todas las columnas a la vez, verás que las filas que tienen un 1
en las cuatro columnas D, E, F y G a la vez son justamente las filas que cumplen
las 4 condiciones que te han pedido.
Por tanto, podemos crear, en la columna H, una fórmula que me indique
claramente las filas que tienen un 1 a la vez en las columnas D, E, F y G. La mejor
fórmula es, precisamente, multiplicar (operador "*") las filas de las columnas D, E,
F y G de forma que en la columna H solamente habrá un 1 si todas las filas son 1
a la vez. Para verlo, haz lo siguiente:

 Haz clic en H3
 Teclea la fórmula =E3*D3*F3*G3 y ENTER.

 Vuelve a hacer clic en H3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna H

El resultado debería ser:


 

 
Para que lo veas mejor, en la siguiente imagen hemos coloreado las celdas que
contienen un 1 en las columnas D, E, F y G y comprueba que solamente las filas
que son todas verdes tienen un 1 en la columna H:
 
 
 
Por consiguiente, al trabajar con 1's y 0's en vez de con VERDADERO y FALSO, el
operador * hace las veces de operador lógico "AND" porque, como ves en las
celdas naranjas de la imagen anterior, solamente 1*1*1*1 = 1 (VERDADERO),
mientras que en resto de los casos es 0 (FALSO).
 
Pero aún no hemos acabado. Ahora hay que multiplicar la columna H por el
valor que te han pedido sumar, que es el volumen de compras de la columna C.
Lo haremos en la columna I. Haz lo siguiente:

 Haz clic en I3

 Teclea la fórmula =H3*C3 y ENTER (en este caso no estamos usando el


operador * como AND lógico, sino como una multiplicación aritmética "de toda
la vida")

 Vuelve a hacer clic en I3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna I

El resultado:
 
 
Por tanto, la columna I contiene los mismos valores que la columna C pero
solamente cuando el valor en la columna H es 1, es decir, cuando las 4
condiciones que te han pedido son 1 (VERDADERO). Por tanto, la columna I contiene
los volúmenes de ventas de la columna C solamente cuando se cumplen las 4
condiciones a la vez.
Ahora es cuestión de sumar los valores de la columna I para saber la suma de los
valores de la columna C que cumplen las 4 condiciones solicitadas:

 Haz clic en J1

 Teclea la fórmula =SUMA(I:I) y ENTER

El resultado es el mismo que antes:


 
 
Sin embargo, podemos hacer este cálculo si unimos los cálculos de las columnas
D, E, F, G, H e I en una sola operación en la columna I, haciendo lo siguiente:

 Selecciona las columnas D, E, F, G y H y pulsa la tecla SUPR para borrar su


contenido

 Haz clic en I3

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula:

=(MES(A3)>=9)*(MES(A3)<=11)*(B3>=10)*(C3>=20000)*(C3) y ENTER

 Vuelve a hacer clic en I3

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna I

El resultado debería ser:


 
 
Nuevamente es el resultado en la celda J1 es el correcto, pero ahora solamente
hemos usado la columna I.
Y por último, podemos dejarlo todo en una sola fórmula matricial de Tipo 3,
solamente habrá que tener en cuenta usar rangos en vez de celdas, en concreto,
los rangos A3:A102, B3:B102 y C3:C102:

 Haz clic en J1

 Pulsa la tecla SUPR para borrar su contenido

 Teclea la fórmula:
=SUMAPRODUCTO((MES(A3:A102)>=9)*(MES(A3:A102)<=11)*(B3:B102>=10)*(C3:C102
>=20000)*(C3:C102)) y ENTER

 Selecciona la columna I y pulsa la tecla SUPR para borrar su contenido

El resultado no cambia al borrar la columna I pues ahora la fórmula en G1 es


totalmente independiente de rangos externos.
 
Esperamos que con esto te haya quedado más claro por qué el operador * actúa
como si fuese un AND lógico pero a la vez puede actuar como multiplicación
aritmética usada para sumar valores que cumplan condiciones en una lista.
 
Como conclusión final, es mucho mejor y más sencillo usar fórmulas de
lógica matricial que otras fórmulas, por ejemplo, los SI() anidados.
 

Otras operaciones aparte de Contar y Sumar


Como ya hemos dicho, las operaciones de conteo y suma no dan problemas
porque los 0 no influyen. Recuerda que los 0 no influyen en los conteos
siempre y cuando uses el truco de usar la función SUMA() para contar.
Pero en otras operaciones como máximo, mínimo, promedio, desviación estándar,
etc., los ceros sí que influyen en el resultado final. Por tanto, cuando necesitemos
estas operaciones, la lógica matricial de usar 1's y 0's puede dar lugar a resultados
erróneos si no usamos la lógica matricial con precaución.
La solución es bastante simple: cuando queramos que los ceros no influyan en los
resultados de una fórmula, basta con añadir a esa fórmula una
función SI() adicional que cambie los 0's por valores nulos "".
Por ejemplo, siguiendo con el mismo ejemplo anterior de la hoja "Compras Meses
2", vamos a resaltar en color la función SI() que hay añadir en cada caso.
 

 Si te piden calcular el volumen de ventas máximo, tendrías que usar una


función MAX() matricialmente. Por ejemplo, haz clic en K3 y teclea:
=MAX(SI((MES(A3:A102)>=9)*(MES(A3:A102)<=11)*(B3:B102>=10)*(C3:C102>=2000
0);(C3:C102);"")) y CONTROL+MAYUSCULAS+ENTER

 Si te piden calcular el volumen de ventas mínimo, tendrías que usar una


función MIN() matricialmente. Por ejemplo, haz clic en K4 y teclea:
=MIN(SI((MES(A3:A102)>=9)*(MES(A3:A102)<=11)*(B3:B102>=10)*(C3:C102>=2000
0);(C3:C102);"")) y CONTROL+MAYUSCULAS+ENTER

 Si te piden calcular el promedio del volumen de ventas, tendrías que usar una
función PROMEDIO() matricialmente. Por ejemplo, haz clic en K5 y teclea:
=PROMEDIO(SI((MES(A3:A102)>=9)*(MES(A3:A102)<=11)*(B3:B102>=10)*(C3:C102>
=20000);(C3:C102);"")) y CONTROL+MAYUSCULAS+ENTER

 
Lo que hemos hecho es lo siguiente: para las condiciones lógicas hemos usado el
operador * como AND lógico. Pero para devolver los valores del rango C3:C102
que cumplen todas las condiciones lógicas, ya no hemos usado el
operador * como multiplicación aritmética estándar, sino que hemos usado una
función SI() que retorne un nulo "" cuando no se cumplen todas las condiciones
lógicas, y que retorne el valor correspondiente de C3:C102 cuando se cumplen
todas las condiciones lógicas.
El resultado debería ser:
 

Suma de varias operaciones lógicas (OR lógico) y


precaución a tomar
Hasta ahora hemos usado el operador multiplicación "*" como "AND" lógico.
Ahora vamos a ver el uso del operador suma "+" como OR lógico.
Como ya hemos dicho, en el lenguaje cotidiano, suele usarse la palabra "y" de
modo tal que en el lenguaje informático debe interpretarse muchas veces
como "sumado a". Por ejemplo, si te piden el total de las compras de los meses
de enero "y" de abril de un mismo año, en Excel no deberías usar el
operador * (AND), porque ninguna fecha es "a la vez" del mes de enero "y" del
mes de abril. La solución es usar el operador "+" como suma aritmética, es decir,
"el total del mes de enero sumado a el total del mes de abril".
 
Ahora vamos a ver que también se puede usar el operador "+" como "OR"
lógico cuando sea necesario.
 
Recuerda que, cuando usamos en Excel fórmulas matriciales de varios rangos,
Excel opera por orden: primero con la 1ª celda de todos esos rangos, segundo
con la 2ª celda de todos esos rangos, tercero con la 3ª celda de todos esos
rangos, etc. Al conjunto de las celdas que están en el mismo lugar de orden en
todos esos rangos se le denomina "fila". En una función
como SUMAR.SI.CONJUNTO(), por ejemplo, si pones 10 criterio, estos serán tratados
por Excel como AND, es decir, Excel sumará las celdas que cumplan esos 10
criterios a la vez en la misma "fila". Pero esto no quiere decir que no puedas
usar SUMAR.SI.CONJUNTO() con 10 criterios y que Excel sume las celdas que
cumplan solamente alguno de los criterios (OR lógico).
 
Primero lo veremos sin usar la lógica matricial, es decir, usando solamente
funciones matriciales.
 
En este caso usaremos SUMAR.SI.CONJUNTO(), para lo cual has de disponer de
Excel 2007 o mayor, o bien una cuenta de OneDrive.
Seguimos en el archivo "Cuestiones.xls" en la hoja "Ventas Meses":
 

 
Se trata de una lista de ventas de productos con un cierto código (columna A) que
se han vendido en cierta fecha (columna B), una cierta cantidad de unidades
(columna C) y por un cierto valor en euros (columna D).
Supón que te piden el total de ventas en euros (columna D) de aquellos productos
que se hayan vendido una cantidad menor o igual a 10 unidades (columna C) pero
que hayan facturado igual o más de 10.000 euros (columna D nuevamente). Pero
te piden dicho total solamente de los productos PR-001 "y" PR-003 "y" PR-005.
Las dos primeras condiciones hay que interpretarlas como un "AND" normal, pero
la condición de los tres códigos de producto ha de interpretarse como "sumado
a" debido a que ningún producto es a la vez el producto PR-001 y PR-003 y PR-
005. Vamos primero a calcularlo por pasos, por ejemplo, en la columna L.
Resaltamos en color la parte que cambia en cada fórmula:
 Haz clic en L2

 Teclea la fórmula:

=SUMAR.SI.CONJUNTO(D:D;C:C;"<=10";D:D;">=10000";A:A;"PR-001") y ENTER

 Haz clic en L3

 Teclea la fórmula:

=SUMAR.SI.CONJUNTO(D:D;C:C;"<=10";D:D;">=10000";A:A;"PR-003") y ENTER

 Haz clic en L4

 Teclea la fórmula:

=SUMAR.SI.CONJUNTO(D:D;C:C;"<=10";D:D;">=10000";A:A;"PR-005") y ENTER
El resultado debería ser:
 

 
Sin embargo, te han pedido la suma, por lo que debes teclear por ejemplo en L5 la
fórmula:
=L2+L3+L4

El resultado:
 

 
Sin embargo, lo correcto es poner el cálculo en una sola celda. Haz lo siguiente:
 Haz clic en M2

 Teclea la siguiente fórmula que no es más que la suma de las tres fórmulas
anteriores, por lo que si quieres puedes copiarlas y pegarlas para ahorrarte de
teclear:
=SUMAR.SI.CONJUNTO(D:D;C:C;"<=10";D:D;">=10000";A:A;"PR-001") + SUMAR.SI.
CONJUNTO(D:D;C:C;"<=10";D:D;">=10000";A:A;"PR-003") + SUMAR.SI.CONJUNTO(D
:D;C:C;"<=10";D:D;">=10000";A:A;"PR-005") y ENTER

El resultado es el mismo que antes:


 

 
En este caso, por tanto, hemos usado el operador "+" como suma aritmética para
"unir" el total de los tres productos y obtener así el total de ventas de tres los
productos por separado pero que cumplan las dos primeras condiciones (menos
de 10 ventas pero más de 10.000 de facturación). Dicho de otra manera, la
siguiente fórmula incorrecta habría dado un resultado totalmente erróneo:
 

  =SUMAR.SI.CONJUNTO(D:D;C:C;"<=10";D:D;">=10000";A:A;"PR-001";A:A;"PR-
003";A:A;"PR-005")

 
... ya que ningún producto es el producto con el código PR-001, el código PR-003
y el código PR-005 a la vez.
 
Ahora veremos el mismo ejemplo usando la lógica matricial donde el
operador suma "+" se usa como "OR" lógico.
 
Con la lógica matricial ya puedes usar Excel 2003 o mayor. Lo haremos también
por pasos. Indicaremos con 1's y 0's en las columnas E, F y G las filas que
cumplan todas las condiciones:

 Haz clic en E2
 Teclea la siguiente fórmula estándar que indica con 1's si un producto es el PR-
001 "o" el PR-032 "o" el PR-005. Observa que usamos el operador "+" como
"OR" lógico y la condiciones lógicas también han de estar entre paréntesis:

=(A2="PR-001")+(A2="PR-003")+(A2="PR-005") y ENTER (resaltamos en color los


paréntesis porque también es necesario ponerlos cuando se usa el operador "+"
como OR lógico)

 Vuelve a hacer clic en E2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna E

El resultado:
 

 
Observa que en la columna E sólo hay un 1 si el código del producto es PR-
001 "o" PR-003 "o" PR-005.
 

 Haz clic en F2
 Teclea la siguiente fórmula estándar que indica con 1's si de un producto se ha
vendido igual o menos que 10 unidades pero ha facturado igual o más que
10.000 euros. Esta vez las condiciones lógicas sí que han de cumplirse a la vez:

=(C2<=10)*(D2>=10000) y ENTER (observa el operador * usado como AND lógico)

 Vuelve a hacer clic en F2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna F

El resultado:
 

Observa que en la columna F sólo hay un 1 en productos con 10 ó menos


unidades y a la vez 10.000 ó más euros.
 
Por último, las filas que tengan 1 en la columna E y F son las que hay que sumar.
Podemos indicar con un 1 en la columna G estas filas usando el operador * como
AND. Haz lo siguiente:

 Haz clic en G2

 Teclea la siguiente fórmula estándar:

=E2*F2 y ENTER
 Vuelve a hacer clic en G2

 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna G

El resultado:
 

 
Observa que sólo hay un 1 en la columna G cuando las columnas E y F
contienen a la vez un 1.
 
Sumando la columna G podrías contar cuántas de las ventas cumplen estas
condiciones, pero te han pedido la suma de las cantidades en euros, por tanto,
puedes usar en la columna H el operador * como multiplicación aritmética para
obtener los valores de la columna D que cumplen todas las condiciones (que en la
columna G haya un 1):

 Haz clic en H2

 Teclea la siguiente fórmula estándar:

=G2*D2 y ENTER

 Vuelve a hacer clic en H2


 Haz doble clic en el cuadro de relleno (parte inferior derecha de la celda) para
rellenar toda la columna H

El resultado:
 

 
La columna H ya contiene por fin los valores a sumar (el valor de la columna D
cuando la columna G tiene un 1).
Vamos a hacer la suma en la celda K2:

 Haz clic en K2

 Teclea la fórmula =SUMA(H2:H101) y ENTER

El resultado nuevamente debería ser el correcto:


 

 
Sin embargo, las fórmulas matriciales tienen como principal y más importante
utilidad el no tener que usar rangos con cálculos intermedios, por tanto usaremos
una fórmula matricial de Tipo 2 o Tipo 3 para hacer la suma sin rangos con
cálculos intermedios. Nos saltamos el paso de convertir las fórmulas estándares
en fórmulas matriciales de Tipo 1 y solamente te decimos que has de cambiar las
celdas por rangos, que los rangos a usar para la fórmula matricial van desde la
fila 2 hasta la fila 101 y que usaremos SUMAPRODUCTO() con ENTER (Tipo 3):

 Haz clic en K3

 Teclea la fórmula:
=SUMAPRODUCTO(((A2:A101="PR-001")+(A2:A101="PR-003")+(A2:A101="PR-
005"))*(C2:C101<=10)*(D2:D101>=10000)*(D2:D101)) y ENTER

Dado que la precedencia del operador * es mayor que la del operador +, las
condiciones lógicas unidas por el operador + han de ir encerradas entre
paréntesis, que hemos resaltado en color junto con los rangos que has de poner.

 Selecciona las columnas E, F, G y H y pulsa la tecla SUPR para borrar su


contenido.

El resultado:
 

 
La fórmula en K3 muestra el resultado correcto sin rangos intermedios (la fórmula
en K2 da resultado incorrecto pues necesita de las columnas E hasta H).
Recuerda que los valores cero no influyen en una suma pero sí en otras funciones.
Si te pidiesen el promedio, máximo, mínimo, etc., habrías de sustituir el último
operador *, el que actúa como multiplicación aritmética, por una función SI() que
devuelva un nulo "" cuando no se cumplan las condiciones:
=PROMEDIO(SI(((A2:A101="PR-001")+(A2:A101="PR-003")+(A2:A101="PR-
005"))*(C2:C101<=10)*(D2:D101>=10000);(D2:D101);"")) y
CONTROL+MAYUSCULAS+ENTER
El promedio habría de ser en este caso 60.000.
 

Precaución a tomar cuando se usa el operador + como OR


lógico
Hemos dicho que Excel trabaja indistintamente con FALSO o con 0's, es decir, para
Excel un 0 y FALSO son lo mismo. Pero, en cambio, Excel
considera VERDADERO cualquier otro valor distinto de cero, como 1, 2, 3, 4, 5, 6... o
incluso números negativos. Esto hace que cuando usemos el operador + como
OR lógico con varias condiciones lógicas, si el resultado es FALSO podemos estar
seguros de que es un 0.
 
Pero si usamos el operador + como OR lógico y el resultado es VERDADERO, no
podemos saber si ese VERDADERO es 1, 2, 3, 4, 5, 20, 80, -1, -2, -3, -25, 4000,
10.000,... Puede ser cualquier valor distinto de cero. Esto hace que necesitemos
tomar precauciones cuando usemos + como OR lógico junto con el
operador * como multiplicación, porque podemos pensar que siempre
estaremos multiplicando por 1, pero en realidad podemos estar multiplicando
por 1, 2, 3, 4, 5, 20, 80, -1, -2, -3, -25, 4000, 10.000,... o cualquier valor distinto de
cero.
 
Para solucionar este inconveniente, se usa la función SI(). Vamos a ver un
ejemplo y cómo se soluciona este inconveniente. Seguimos en el archivo
"Cuestiones.xls" en la hoja "Cambios":
 

 
Se trata de una hoja de una supuesta empresa que vende unos productos. En
esta hoja se anotan las incidencias en las ventas. Es una lista de productos mal
entregados y que ha habido que cambiar. En la columna A están los códigos de
los productos que fueron entregados al cliente y en la columna B los códigos de
los productos que el cliente realmente solicitó. En la columna C está la cantidad de
unidades cambiadas.
Supón que te piden que calcules la suma de unidades cambiadas que afectan a
los productos PR-001 "y" PR-003, pero te lo piden tanto si esos dos productos
son 'a cambiar' como si son 'cambiar por', es decir, tanto si aparecen en la
columna A como si aparecen en la B. La solución es comprobar si PR-001 "y" PR-
003 aparecen en la columna A "y" en la B. Podemos decidir usar operaciones
lógicas con OR (ya sabemos entonces que esos "y" son un "+") y, una vez
obtenido el VERDADERO o FALSO, usar el operador "*" como multiplicación
aritmética "de toda la vida" para multiplicar por la columna C y así obtener la
cantidad. Esto no va a funcionar en este caso. Te lo vamos a mostrar por pasos.
Haz lo siguiente:

 Haz clic en D2

 Para comprobar si PR-001 ó PR-003 están en la columna A teclea esta


fórmula (con + como OR lógico):

=(A2="PR-001")+(A2="PR-003") y ENTER

 Haz clic en E2

 Para comprobar si PR-001 ó PR-003 están en la columna B teclea esta


fórmula (con + como OR lógico):

=(B2="PR-001")+(B2="PR-003") y ENTER

 Haz clic en F2

 Para comprobar si ambos productos están en la columna A o en la columna B


teclea esta fórmula aparentemente correcta según lo que hemos explicado
hasta ahora (con + como OR lógico):

 =D2+E2 y ENTER

 Por último, dado que nos piden las cantidades de la columna C, podemos usar el
operador * como multiplicación aritmética y multiplicar la cantidad de la columna
C por el resultado que nos ha dado en la columna F (que nosotros por ahora
estamos pensando que solamente puede ser 0 ó 1 y que enseguida
veremos que no es así). Por tanto, haz clic en G2 y teclea la siguiente
fórmula (con * como multiplicación):
=F2*C2 y ENTER

 Selecciona el rango D2:G2 y rellena las columnas haciendo doble clic en el cuadro
de relleno de la celda G2.

El resultado:
 

 
Verás en la columna F unas celdas rojas. Estas celdas rojas indican un valor que
no sea 1 ó 0. Observa que aparecen algunos valores 2. Para Excel un 2
significa VERDADERO, pero para una multiplicación aritmética sigue siendo un 2, por
tanto, la fórmula en la columna G no repite el valor de la columna C como hemos
visto hasta ahora sino que en algunas celda multiplica por 0, en otras multiplica
por 1 (hasta aquí correcto) y en otras multiplica por 2, lo que da un resultado
totalmente incorrecto.
Por tanto, la fórmula correcta en la columna F es una función SI() que cambie
cualquier valor igual o mayor que 2 por un 1. Haz lo siguiente:

 Haz clic en F2

 Teclea la fórmula:
 =SI(D2+E2=0;0;1) y ENTER
 Vuelve a hacer clic en F2 y haz doble clic en el cuadro de relleno para rellenar la
columna entera.

El resultado ahora es correcto, ya no hay ningún 2 y por tanto las cantidades en la


columna G ahora son correctas:
 

 
Haz la suma de la columna G y verás que el resultado es 1905, que es correcto.
Por último, tras hacer la "traducción" a una fórmula matricial de resumen de Tipo
3, la fórmula final que no depende de rangos intermedios es:

 Haz clic en I2

 Teclea la fórmula:
=SUMA(C2:C60*SI((A2:A60="PR-001")+(A2:A60="PR-003")+(B2:B60="PR-001")+
(B2:B60="PR-003")=0;0;1))

 Y acaba con CONTROL+MAYUSCULAS+ENTER

Ya puedes borrar las columnas D hasta G y el resultado correcto final es:


 
 
 
Continua en la siguiente entrega. Puedes también ir al Indice de los Minicursos o Volver arriba.

Fórmulas y Funciones Matriciales en Excel.


Recopilación de fórmulas matriciales.
 

Fórmulas matriciales: Curso de Matrices en Excel para aprender a trabajar


con rangos en vez de con celdas con la finalidad de trabajar con datos
organizados en rangos más rápidamente.
Temario: trabajar con rangos matriciales: operaciones básicas y función SI().
Fórmulas de resumen de rangos matriciales: SUMA(), CONTAR(), PROMEDIO().
Uso de SUMA(SI()) para contar. CONTAR.SI() matricial. Funciones matriciales
específicas: FRECUENCIA(), TENDENCIA() y SUMAPRODUCTO(). Funciones SI
CONJUNTO. Lógica Matricial.
Descarga los ejemplos en: https://www.dropbox.com/s/s6o0zylb6thit0y/Excel-
Matrices.zip?dl=1

Puedes ir al índice de contenidos para ver todos los Minicursos o a la primera


entrega de este minicurso de Matrices en Excel.

 
Recopilación de fórmulas matriciales para
entender las matrices en Excel
Con lo visto hasta ahora ya tienes la base para entender las fórmulas matriciales.
Ya sabes que hay 4 maneras de usarlas y que las usuales son de Tipo 2 o de Tipo
3: una función de resumen que tiene dentro una fórmula matricial.

Sin embargo, cuando necesites una fórmula para hacer un cálculo, en tu empresa
por ejemplo, y no tengas una idea clara de cómo hacerlo, es mejor que primero
busques en Internet. Esto es debido a que las fórmulas que se encuentran por
Internet suelen estar ya comprobadas y solamente muy pocas son no fiables. El
problema es que estas fórmulas que encuentres en Internet deberás adaptarlas a
tus necesidades haciendo los cambios necesarios. En el caso de que la fórmula
que encuentres en Internet sea una fórmula matricial, lo más seguro es que, para
adaptarla a tu necesidad, lo único que haya que hacer sea cambiar los rangos.
Con los conocimientos que has adquirido en este Minicurso esperamos que estos
cambios te sean fáciles de hacer.

En Internet hay muchas fórmulas matriciales en bastantes sitios web por tanto te
conviene siempre hacer una búsqueda, en Google por ejemplo, para ahorrar
tiempo.

Aquí en esta recopilación, te damos un ejemplo de unas fórmulas extraídas de


Internet. Puedes leer este tema para ver si alguna te sirve para alguna necesidad
de tu empresa.

Si no encuentras la fórmula matricial que necesitas, puedes consultar estos sitios


web:

 https://support.office.com/es-es/
 https://www.microsoft.com/learning/es-es/
 http://blogs.office.com/
 https://technet.microsoft.com/es-es/

Estas fórmulas que hemos encontrado por Internet las hemos incluido en el
archivo "Recopilacion.xls".
 

Archivo "Recopilacion.xls"
Si ya has descargado los ejemplos, en el archivo "Recopilacion.xls" te hemos
puesto una recopilación de muchas fórmulas matriciales de muchos tipos. Las
fórmulas matriciales están todas en celdas de color naranja:

Esta recopilación de fórmulas matriciales sirven para muchas necesidades. Es una


muestra de esa gran variedad de fórmulas que existen en Internet. Las fórmulas
ya están tecleadas en las hojas en las celdas de color naranja, te bastará con
consultarlas. Sin embargo, hemos puesto los pasos a seguir para conseguir las
fórmulas por si quieres practicar alguno de esos ejemplos. En otros ejemplos te
pedimos que intentes averiguar qué hace cada fórmula. Es decir, te planteamos
que mires este archivo "Recopilacion.xls" como un reto.

Veamos:

Conteos
Hemos puesto varias fórmulas de conteos en la hoja "Rec 1" del archivo
"Recopilacion.xls".

Por ejemplo, antes hemos visto que para contar cuantos textos hay en un rango
como B3:B20 sería:
 

=SUMA(SI(ESTEXTO(B3:B20);1;0))

Y acabar con CONTROL+MAYUSCULAS+ENTER. Pero si no se quiere usar una


función matricial, alternativamente existe una fórmula como esta en la hoja "Rec 1"
en la celda G3 que contará las celdas que tienen cualquier texto:

=CONTAR.SI(B3:B20;"*") y ENTER

También puedes ver en la celda G4 esta fórmula que cuenta las celdas que
contienen texto con 3 caracteres:

=CONTAR.SI(B3:B20;"???") y ENTER

O bien en G5 esta fórmula que cuenta las celdas que tengan un código postal que
empiece por "08", con tal de que los códigos postales los hayáis formateado
como texto en vuestra hoja de cálculo.

=CONTAR.SI(B3:B20;"08???") y ENTER

En la celda G7 está la función MODA() que retorna el valor que aparece más
veces repetido en la columna J y en la celda G8 hay una fórmula matricial de Tipo
3 con CONTAR.SI() que cuenta cuántas veces aparece dicha moda en la columna
J. Hay que decir que la función MODA() es compatible con Excel 2003, pero a partir
de la versión Excel 2010 se añadió la función MODA.UNO() equivalente
a MODA() y MODA.VARIOS() que retorna varias modas cuando hay varios valores
que se repiten la misma cantidad de veces. MODA.VARIOS() es exclusivamente
matricial de Tipo 1.
A la hora de buscar la MODA(), mucha gente en Internet pregunta si la
función MODA() sirve para buscar el texto más repetido en un rango con textos. La
respuesta es que no, pues la función moda es una función numérica. Así pues, en
la celda G10 hemos puesto una fórmula matricial que muestra el texto más
repetido en una rango de textos, en ese caso K3:K20, y en la celda G11 otra
función matricial que cuenta cuántas veces aparece dicho texto.

Seguimos todavía en la hoja "Rec 1". En las celdas G12, G13 y G14 hay distintas
fórmulas para contar cuantas veces aparece un nombre en un rango: contar
independientemente de las mayúsculas y minúsculas o contar dependientemente
de las mayúsculas y las minúsculas con la función IGUAL(). Te hacemos la
siguiente pregunta o reto ¿por qué la celda G13 usa la función  SUMA() si es una
función para contar?

Mira si has acertado:

Pasamos a la hoja "Rec 2" del archivo "Recopilacion.xls". En esta hoja hay una
lista de alumnos y sus calificaciones en las columnas A hasta C. En las columnas
E y F hay un desglose de las calificaciones en 6 intervalos y en la columna H se
hace el conteo de calificaciones en cada intervalo. Haz clic en H3 y mira la
fórmula. ¿Es una fórmula matricial de Tipo 1, 2, 3 ó 4? ¿Por qué no
usa  SI() anidados?

Mira si has acertado:

Haz clic en J3. En la columna J hemos calculado la distribución de las


calificaciones en los 6 intervalos pero esta vez hemos usado la
función FRECUENCIA(). ¿Sabrías decir por qué da un resultado diferente de la
columna H? ¿Cuál está mal calculada la columna H o la columna J?

Mira si has acertado:

 
En el rango M3:N4 se cuenta la cantidad de aprobados y no aprobados
desglosado en Hombre o Mujer. Se usa la función SUMA() para contar. Sin
embargo ¿por qué no se usa  SUMA(SI(...;1;0)) como hemos dicho hasta ahora?

Mira si has acertado:

Pasamos a la hoja "Rec 3" del archivo "Recopilacion.xls". En esta hoja


queremos comprobar si unos datos que nos han enviado, a través de un email por
ejemplo, están bien tecleados. En la columna A están los datos correctos y en la
columna C hemos copiado los datos que nos han enviado. En la celda E5 hay una
fórmula matricial de Tipo 2 que cuenta cuántos datos de la columna C no están en
la columna A, lo que es equivalente a contar cuántos datos mal tecleados nos han
enviado. Si quisieras adaptar esta fórmula a alguna necesidad tuya bastaría con
que cambiases los rangos así:

=SUMA(1*ESNOD(COINCIDIR(datos a comprobar;datos correctos;0)))

La hoja "Rec 4" del archivo "Recopilacion.xls" es un ejemplo del


comportamiento de la función FILA() para que compruebes que esta función
genera números consecutivos. En la columna D es usada como fórmula matricial
de Tipo 1 y en la columna I es usada como fórmula matricial de Tipo 4 con los $
adecuadamente colocados.

La hoja "Rec 5" del archivo "Recopilacion.xls" contiene varias fórmulas útiles


de comparación de datos. En las columnas B y C hay dos facturaciones de dos
años y la columna E contiene fórmulas matriciales de comparación entre esos dos
años. Aquí simplemente te recomendamos que mires las fórmulas que calculan: la
menor subida de un año a otro, la menor subida de un año a otro sin negativos ó
0, cuántos valores no cambian de un año a otro, qué fila es la que tiene más
ganancia el año 2, cuál es la celda con más ganancia del año 2, cuál es la
provincia con el nombre más largo, la suma redondeada de año 1 y cuál es la
última provincia en el orden en que están.

La hoja "Rec 6" del archivo "Recopilacion.xls" tiene una lista de ventas por


producto y oficina. Tiene una fórmula en la celda E3 que calcula la suma de la
columna B de 4 oficinas. Se trata de una suma que usa el operador + como OR
lógico. Sin embargo, esta fórmula no toma la precaución que explicamos para el
uso de + como OR lógico que era usar la función SI() para forzar a que el valor
VERDADERO fuese siempre 1. ¿Por qué no se usa esta función  SI() adicional?

Mira si has acertado:

En la misma hoja "Rec 6", en la celda E12, hay una fórmula que permite averiguar
en qué fila de la columna B hay un valor que está más cercano a 1000, pero dar
como resultado el valor que hay en la columna A o la columna C de dicha fila. La
columna cuyo valor retornará la función se configura en la celda E10: si es -1
retorna el valor de la columna A, si es 0 retorna el propio número de la columna B
y si es 1 retorna el valor de la columna C. No explicaremos esta fórmula, si la
necesitas en alguna situación, copia la fórmula y cambia los rangos.

Filtros
La hoja "Rec 7" del archivo "Recopilacion.xls" hay un rango con unos valores
positivos y negativos en la columna B. En las columnas C hasta F hemos puesto
unas fórmulas que no explicaremos por ser complejas, que permiten filtrar datos
de manera instantánea, debido a que son fórmulas matriciales. Es decir, no
requieren de la funcionalidad de Excel "Filtro avanzado". En la columna C hay una
fórmula matricial para repetir los datos que hay en la columna B pero solamente
los números positivos, excluyendo los negativos y el cero. En la columna D es la
misma fórmula pero filtrando los errores #¡NUM!. En la columna E hay una fórmula
para extraer los números tanto positivos como negativos pero sin repetir ningún
número, solamente valores únicos. En la columna F es la misma fórmula pero
filtrando los errores #¡NUM!.

 
Calendario automático
La hoja "Rec 8" del archivo "Recopilacion.xls" hay en el rango C4:I9 una
fórmula matricial de Tipo 1 que genera automáticamente el calendario del mes de
la fecha que hay en B2. Tiene en cuenta los años bisiestos. Hay que tener un poco
de cuidado porque en Internet existen fórmulas similares, pero que generan un
calendario de semana litúrgica cuyo primer día es el domingo y que se usa en
países anglosajones, mientras que la fórmula que aquí presentamos genera un
calendario de semana laboral según norma ISO 8601 cuyo primer día es el lunes
y el sábado y el domingo son fin de semana. En Brasil y Portugal el nombre del
lunes es segunda-feira ("segunda feria"), el martes terça-feira ("tercera feria"), etc.,
lo que puede dar lugar a confusión, de todas maneras el sábado y el domingo son
"fin de semana" y se llaman igual que en español, "sábado" y "domingo". Para que
se visualice correctamente el calendario, todas las celdas del rango C4:I9 han de
estar formateadas con el formato personalizado "d":

 
Segmentación
En la hoja "Rec 9" del archivo "Recopilacion.xls", hay un ejemplo en el que
queda bien clara la utilidad de las funciones matriciales, ya que comprobarás que,
si hubiera que resolverlo sin matrices, sería mucho más complicado. En esta hoja
hay dos rangos nombrados como MONEDA y FACTURADA que indican la
cantidad en dinero y la cantidad en unidades vendidas de ciertos productos en una
empresa.

La empresa ha solicitado que, en la hoja "Rec 9", se haga un conteo de cuántos


valores hay en ambos rangos según una segmentación hecha en el rango D6:I7
para FACTURADA y B8:C13 para MONEDA, pero este conteo ha de ser cruzado.
Se ha hecho usando SI() anidados y también sin usar SI() anidados, es decir,
usando el producto de condiciones lógicas.

Usando SI() anidados deberías hacer estos pasos:

 Clic en D8 y teclea la fórmula:

=CONTAR(SI(MONEDA>=$B8;SI(MONEDA<=$C8;SI(FACTURADA>=D$6;SI(FACTURADA<=D$7
;MONEDA)))))

 Acaba con CONTROL+MAYUSCULAS+ENTER. Observa los $ ya que es una


fórmula de Tipo 4.

 Después, arrastra con el cuadro de relleno hasta rellenar todo el rango D8:I13.

Sin usar SI() anidados deberías hacer estos pasos:

 Clic en D27 y teclea la fórmula:

=SUMAPRODUCTO((MONEDA>=$B27)*(MONEDA<=$C27)*(FACTURADA>=D$6)*(FACTURADA<=
D$7))

 Acaba con ENTER. Observa los $ ya que estamos en el tipo 4.

 Después, arrastra con el cuadro de relleno hasta rellenar todo el rango D27:I32.

 
Con este ejemplo, puedes comparar la diferencia entre usar SI() anidados y
multiplicar operaciones lógicas, además que es más difícil hacerlo sin matrices.

Por último, se ha graficado en columnas 3D ambas tablas y así tener un gráfico de


segmentación que relaciona las unidades vendidas de productos con sus
ganancias económicas. Para graficar, hemos usado como rótulos los rangos de
color amarillo formateados como texto, ya que es más cómodo hacer los gráficos
al estar en formato texto.

Cercanos
En la hoja "Rec 10" del archivo "Recopilacion.xls", se pide averiguar qué
números de una lista de números son los más cercanos a otro número de
referencia. La lista de valores está en la columna A que tiene un código de una
persona y en la B que tiene la puntuación obtenida por esa persona. En la celda
H1 está el valor de referencia, por defecto 50 pero se puede ir cambiando. Se trata
de marcar en la columna C con una "X" los números de la columna B más
cercanos al que hay en H1.

Para hacer esto hemos decidido hacer lo siguiente: buscar la diferencia de H1 con
respecto a todas las puntuaciones, poner esta diferencia en un número siempre
positivo con la función ABS(), y entonces hallar el valor mínimo. Todos los
números de la columna B cuya resta con H1 sea igual a este mínimo se marcarán
con una "X".

Lo haremos poco a poco. Sigue estos pasos:

 En la celda D2 teclea la fórmula de Tipo 2 para hallar la mínima diferencia de


todos los valores respecto a H1:

=MIN(ABS(B2:B25-H1))

 Acabada con CONTROL+MAYUSCULAS+ENTER. Esto da el mínimo de la


diferencia de toda la columna B con H1.

 Selecciona C2:C25 y teclea la fórmula de Tipo 1:

=ABS(B2:B25-H1)=D2
 Acabada con CONTROL+MAYUSCULAS+ENTER. Esto marca en la columna C
con VERDADERO los valores de B que son iguales al mínimo calculado en D2.

 Ahora lo que hay que hacer es unir las dos fórmula anteriores para evitar el uso de
celdas intermedias. Para ello haz clic en C2 y, sin seleccionar nada, teclea la
fórmula de Tipo 1:

=ABS(B2:B25-H1)=MIN(ABS(B2:B25-H1)

 Acaba con CONTROL+MAYUSCULAS+ENTER y ya puedes borrar D2. Esto


rellena la columna C con VERDADERO para los valores más cercanos.

Pero una opción mejor para el usuario sería que apareciese una "X" en vez de
VERDADEROS. Haz lo siguiente:

 Selecciona D2:D25 y teclea la fórmula de Tipo 1:

=SI(ABS(B2:B25-H1)=MIN(ABS(B2:B25-H1));"X";"")

 Acabada con CONTROL+MAYUSCULAS+ENTER y ya tienes el resultado final.


Las personas que tienen una "X" a su derecha son las que su puntuación es más
cercana al valor que hay en H1.

Puedes ir poniendo diversos valores en H1 y verás que las "X" van cambiando de
lugar.

Factura
Ponte en la hoja "Rec 11" del archivo "Recopilacion.xls". Es una factura con
varios productos de la que hemos obtenido el total de E9:E13 en las celdas E14,
E15, E16 y E17. Te pedimos como reto que mires las fórmulas que hay en estas
celdas y averigües cuáles son matriciales y cuáles necesitan rangos con cálculos
intermedios.

Mira si has acertado:


 

También te pedimos que averigües qué hacen las fórmulas de las celdas H19 y
H20.

Mira si has acertado:

También te pedimos que averigües qué hacen las fórmulas de las celdas H22 y
H23. ¿Por qué H23 es una función errónea? ¿Hay otra función que pueda
sustituir a H22?

Mira si has acertado:

En la celda H26 ¿qué calcula esta fórmula? ¿por qué se usa una función  SI() en
vez de multiplicar con  * para obtener la cantidad?

Mira si has acertado:

Frecuencia
En la hoja "Rec 12" del archivo "Recopilacion.xls", vamos a repasar un poco la
función FRECUENCIA(). Haz un clic en G6, observa la fórmula y averigua qué hace
teniendo en cuenta que MISDATOS es el rango C9:C608 y MISINTERVALOS es
el rango F6:F26. Ponte también en las celdas L5 y L6 y averigua qué hacen. ¿Qué
significa el gráfico?

Mira si has acertado:

 
Nombres de rangos en las fórmulas matriciales
En la hoja "Rec 13" del archivo "Recopilacion.xls", te mostramos que las
fórmulas matriciales pueden usarse con rangos nombrados con la funcionalidad
CONTROL-F3. Observa el rango D12:F15 y mira cómo usa un nombre de rango
para crear un fórmula matricial. ¿Esta fórmula es de Tipo 1, 2, 3 o 4? ¿Qué hace
teniendo en cuenta que VENTAS es el rango D5:F8? En la hoja "Rec 14" te
preguntamos lo mismo respecto al rango C18:H18.

Mira si has acertado:

En la hoja "Rec 15" del archivo "Recopilacion.xls", observa la fórmula del


rango I11:J14 ¿De qué tipo es esta fórmula 1, 2, 3 o 4? Los operadores  * de la
fórmula ¿actúan como multiplicación aritmética o como AND lógico?

Mira si has acertado:

Cálculos cruzados
En una celda cualquiera, pongamos por ejemplo la celda L5, usada dentro de una
fórmula, los $ pueden colocarse de las siguientes 4 maneras y se denominan en
Excel de maneras distintas:

 L5 = referencia relativa

 $L$5 = referencia absoluta

 $L5 = referencia mixta

 L$5 = referencia mixta

Además, si se asigna un nombre a la celda L5 con la funcionalidad CONTROL-F3,


una fórmula que use ese nombre tratará el nombre como referencia absoluta,
como si llevase los dos $.

En la hoja "Rec 16" del archivo "Recopilacion.xls", hay una lista de unidades


vendidas por vendedor y producto. En el rango H6:H11 y en el rango L6:M8 se
calcula la suma de unidades vendidas de cada producto por vendedor ¿Cuál es la
diferencia entre las fórmulas de cada rango?

Mira si has acertado:

En las celdas F14 a F19 hay diversas maneras de usar operaciones lógicas para
hacer cálculos cruzados entre el producto "PC" y el vendedor "Ana". La celda F14
usa el OR lógico (+), es decir, VERDADERO ó 1 es venta de PC o venta Ana. La celda
F15 usa el AND lógico (*), es decir, VERDADERO ó 1 es venta de PC y de Ana. Estas
ya las conocemos. Las otras dos fórmulas hacen estos cálculos: F16 es el XOR
lógico que evaluará a VERDADERO ó 1 si es venta de PC o venta de Ana pero no
venta de PC y de Ana. F17 es el NAND lógico que evaluará a VERDADERO ó 1 todos
los casos excepto una venta de PC y de Ana.

Solamente te preguntaremos acerca de la fórmula en F14: por qué la fórmula tiene


un  SI() y si la función  SUMA() es usada para contar o para sumar.

Mira si has acertado:

En la hoja "Rec 17" del archivo "Recopilacion.xls", ¿qué calcula la fórmula en


la celda F7?

Mira si has acertado:

Textos
En la hoja "Rec 18" del archivo "Recopilacion.xls", hay una serie de fórmulas
para los textos en un rango: La mayor longitud de los textos, cuál es el texto con
esa mayor longitud y qué lugar que ocupa en su rango. Estas fórmulas las puedes
añadir a las usadas en la hoja "Rec 1".

 
Esta es la última Entrega. Puedes ir al índice de contenidos para ver todos los
Minicursos, ir a la primera entrega de este minicurso de Matrices en
Excel o Volver arriba.

 
Etiquetas:Avanzado,Excel,FRECUENCIA,LogicaMatricial,MatricesExcel,Ofimática,Operacio
nesLogicas,ReferenciasAbsolutas,SUMAPRODUCTO

También podría gustarte