top of page
Foto del escritorJaime Franco Jimenez

24. La Función MMULT

Actualizado: 25 mar 2023

La función MMULT devuelve el producto matriz de dos matrices.


El resultado es una matriz con el mismo número de filas que matriz1 y el mismo número de columnas que matriz2.


Nota: Si tiene una versión actual de Microsoft 365, simplemente puede introducir la fórmula en la celda superior izquierda del rango de salida y, a continuación, presionar entrar para confirmar la fórmula como una fórmula de matriz dinámica. En caso contrario, la fórmula debe especificarse como una fórmula de matriz heredada, seleccionando primero el rango de salida, introduciendo la fórmula en la celda superior izquierda del rango de salida y pulsando Ctrl + Mayús + entrar para confirmarla. Excel insertará llaves al principio y al final de la fórmula.


Sintaxis


MMULT(matriz1, matriz2)


La sintaxis de la función MMULT tiene los siguientes argumentos:


matriz1, y, matriz2, ambos argumentos son obligatorios. Son las matrices que desea multiplicar.


El número de columnas de matriz1 debe ser el mismo que el número de filas de matriz2, y ambas matrices deben contener solo números.


Los argumentos matriz1 y matriz2 se pueden proporcionar como rangos de celdas, constantes de matriz o referencias.


MMULT devuelve el valor de error #¡VALOR! si:

  • Hay celdas vacías o con texto.

  • El número de columnas de matriz1 es diferente al número de filas de matriz2.


Veamos algunos ejemplos.


Para el primer ejemplo, tenemos los siguientes datos, donde tenemos matriz1, y, matriz2.










Matriz1, esta compuesta por dos filas, y, matriz2, esta compuesto por dos columnas.








Ya sabemos, que debe de tener, el mismo numero de filas, que de columnas.


Pues, escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.


=MMULT(


El primer argumento es matriz1, pues seleccionamos desde B6 hasta C7.







=MMULT(B6:C7;


El siguiente argumento es matriz2, pues, seleccionamos desde B9 a C10.











=MMULT(B6:C7;B9:C10)


Aceptamos.


Tenemos como resultado 17, 6, 24, y, 4.






Vamos a ver, de una forma mas detallada, de donde salen estos resultados.


Empecemos viendo, como se realiza, el cálculo manual.


El primer valor, es decir, el número 17, saldría de multiplicar el numero 1 de la matriz1, por el numero 2 de la matriz2.









Seria 1 * 2.












Lo siguiente es añadir el signo mas (+), para realizar la siguiente operación, que seria, 3 por 5, es decir:

· 3 de la matriz1

· 5 de la matriz2









La operación para realizar es 1 por 2, mas, 3 por 5.






Vemos que obtenemos 17, que es el primer valor de la matriz desbordada.









Vamos a ver como realiza el segundo calculo, que seria 7 por 2,

· 7 de matriz1

· 2 de matriz2









Mas 2 por 5, siendo:

· 2 de matriz1

· 5 de matriz2









Seria, 7 por 2, mas, 2 por 5, que es igual a 24.











El valor 6:





Sale de multiplicar 1 de matriz 1, por 0 de matriz2, mas, 3 de matriz1, por 2 de matriz2.
















Por último:





Sale de multiplicar 7 de matriz1, 0 de matriz2, mas, 2 de matriz1 por 2 de matriz2.
















Como resultado tenemos:











Veamos otro ejemplo.


En este caso, igualmente, tenemos dos matrices, la primera matriz, esta compuesta de cuatro columnas, y, dos filas.





La matriz2, esta formada por cuatro filas, es decir, la misma cantidad de filas, que de columnas.


Entonces, vamos a escribir el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.


=MMULT(


Como primer argumento, matriz1, ponemos el rango desde B6 a E7.









=MMULT (B6:E7;


Como segundo argumento, matriz2, ponemos el rango desde B9 a B12.









=MMULT(B6:E7;B9:B12)


Aceptamos.


Tenemos una matriz desbordada de dos filas, y, una columna.






Vamos, manualmente, a ver como salen estos resultados.


Tendría que multiplicar:


=B6*B9


Es decir, el numero 1 de matriz1 por el número 1 de matriz2.









Mas el numero 3 de matriz1, por el número 7 de matriz2.


=B6*B9+C6*B10









Mas el numero 1 de matriz1 por el número 4 de matriz2.









=B6*B9+C6*B10+D6*B11


Mas el numero 0 de matriz1, por el número 5 de matriz2.









Aceptamos, y, vemos que tenemos los mismos resultados.





Para la segunda matriz, la operación seria la misma, pero como matriz1, tomamos los valores de la segunda fila.


=B7*B9+C7*B10+D7*B11+E7*B12






¿Por qué la primera expresión que hemos usado nos devuelve dos valores?, porque matriz1, está compuesta solamente de dos filas.


Vamos a ver un último ejemplo.


Tenemos dos clientes, Jaime y Claudia, y, la cantidad de una serie de productos que han adquirido.





En la parte de abajo, tenemos el precio, el peso, y, el nombre del producto.







Queremos saber las ventas de cada cliente, por ejemplo, para Jaime que ha comprado 14 corchos, pues, estos 14 corchos, debemos de multiplicar por el precio, es decir, 14 por 200, igual, para el resto de los productos.


Para el peso, sería el mismo procedimiento.


Bien, escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.


=MMULT(


Como primer argumento, matriz1, seleccionamos el rango desde C8 a E9.









=MMULT (C8:E9;


El siguiente argumento, matriz2, seleccionamos el rango desde B11 a C13.









=MMULT(C8:E9;B11:C13)


Aceptamos, y, vemos los resultados.






La primera cantidad, 6325, vamos a ver como se calcula manualmente, pues, igual que antes, multiplicamos la primera cantidad (14) por el precio (200), mas la segunda cantidad (9) por el precio (250), mas la tercera cantidad (3) por el precio (425), y, vemos que tenemos el mismo resultado.




Si tenemos que trabajar con mas de dos matrices, debemos de concatenar una matriz con otra.


Damos por finalizado este ejemplo.



Totales por provincias

El siguiente ejemplo, consiste en que tenemos 12 hojas, que desde la no resuelto hasta la hoja11, pertenecen a provincias, no resuelto, es donde vamos a realizar el ejercicio.





Desde la hoja2 hasta la hoja11, cada una de ellas pertenece a una provincia, siendo el modelo igual para todas las hojas.


El problema que se nos presenta es que cada provincia está en una hoja, y, el nombre de cada hoja no corresponde con la provincia de dicha hoja.


Veamos cómo podemos resolverlo.


Tenemos una función llamada HOJAS, que nos devuelve el número total de hojas, en este caso, el único argumento que tiene es nulo, es decir, simplemente, abrimos, y, cerramos paréntesis.


Si en la hoja1, en la celda B1, escribimos =HOJAS(), devuelve 12, que es el número total de hojas.







La pregunta es ¿Cómo acceder a cada hoja?


Vamos a crear un índice con la función SECUENCIA, donde como argumento filas, lo va a decidir la función HOJAS.


=SECUENCIA(HOJAS())


Tenemos un índice que va desde 1 hasta el 12.
















Si después del signo igual escribimos entre comillas la palabra Hoja, y, lo concatenamos con el resultado de SECUENCIA, tendremos el nombre de la hoja con su número, que va desde la hoja1 hasta la hoja11, pero en formato de texto, quiere decir que de momento no podemos utilizarla.


="Hoja" & SECUENCIA(HOJAS())



















La hoja resuelto, y, la hoja no resuelto, no nos interesa, porque es donde vamos a realizar el ejercicio, por lo que vamos a quitarla, para ello, a la función HOJAS, restamos 2, esto quiere decir, que, si al resultado de HOJAS que es 12, le restamos 2, nos da como resultado 10.


Y, vamos a usar el argumento inicio de la función SECUENCIA para que empiece en 2, quiere decir que me va a crear un contador de 10 filas empezando desde el número 2, entonces, ira desde el numero 2 hasta el 11, que son las hojas que vamos a usar.


="Hoja" & SECUENCIA(HOJAS()-2;;2)
















Ya tenemos las hojas con las que trabajar, vamos a rescatar el nombre de cada provincia, cada provincia empieza en la celda B2 de cada hoja, para ello, usamos INDIRECTO donde como argumento referencia seleccionamos la celda B4, y, concatenamos, entre comillas dobles, con exclamación y B2.


=INDIRECTO(B4 & "!b2")


Aceptamos, arrastramos, y, ya tenemos el nombre de cada provincia.













Volvemos a usar MMULT, ya sabemos que esta función multiplica dos matrices con el mismo número de filas y de columnas, que tiene dos argumentos que son matriz1, y, matriz2, y, que una de las matrices debe de estar en horizontal, y, la otra en vertical.

Vamos a calcular el total para cada provincia.


Debemos de traernos la primera provincia, Albacete, pero debe de ser dinámico, es decir, que cuando arrastremos, nos de el total para cada provincia, la columna cantidad empieza en la celda E2 de cada hoja, la provincia de Albacete se encuentra en la celda B4, pues, usamos INDIRECTO, donde como argumento referencia, seleccionamos al celda B4, concatenamos, entre comillas dobles, con exclamación E2:E, es decir, debe de empezar en la celda E2, y, acabar también en la columna E, pero no sabemos la fila donde acaba la provincia de Albacete, porque cada provincia tiene un numero de filas diferentes.


=INDIRECTO(B4&"!E2:E"


Por lo que debemos de calcular la ultima fila ocupada para la provincia de Albacete, cosa que haremos con la función CONTARA, donde como argumento usamos INDIRECTO, como argumento referencia, seleccionamos la celda B4, y, concatenamos, entre comillas dobles, con exclamación, y, A:A, da igual cualquier columna, porque todas las columnas tienen el mismo numero de filas.


=CONTARA(INDIRECTO(B4&"!a:a"))


Aceptamos, y, vemos que la provincia de Albacete, tiene 57 filas, incluido el encabezado, pues, esta expresión la concatenamos en la expresión anterior: =INDIRECTO(B4&"!E2:E"


=INDIRECTO(B4&"!E2:E"&CONTARA(INDIRECTO(B4&"!a:a")))


Transponemos.


=TRANSPONER(INDIRECTO(B4&"!E2:E"&CONTARA(INDIRECTO(B4&"!a:a"))))


Tenemos una matriz desbordada en horizontal, con los valores de cantidad para la provincia de Albacete.




Ya tenemos el primer argumento de la función MMULT.


El siguiente argumento de MMULT, es la misma expresión que la anterior, pero, cambiamos la columna E por la columna F, que es el precio.


Es el segundo argumento de la función MMULT, donde debemos de volver a usar la función CONTARA para calcular la ultima fila ocupada, como la vamos a usar dos veces, después del signo igual, ponemos LET, creamos una variable, donde almacenamos la función CONTARA, y, la sustituimos en la expresión por el nombre de la variable.


=LET(a;CONTARA(INDIRECTO(B4&"!a:a"));MMULT(TRANSPONER(INDIRECTO(B4&"!E2:E"&a));INDIRECTO(B4&"!F2:F"&a)))


Aceptamos, y, tenemos el total para la provincia de Albacete.






Arrastramos, y, y tenemos el total para cada provincia.












Para el siguiente ejemplo, tenemos un modelo, el que suelo usar habitualmente, pero en vez de tener los datos en vertical, tenemos cinco columnas que hacen referencia a las ventas de la provincia de Granada, a continuación, tenemos otras cinco columnas que hacen referencia a las ventas de la provincia de Sevilla, y, por último, tenemos otras cinco columnas que hacen referencia a las ventas de la provincia de Jaén.


Debemos de calcular el total para cada provincia, cosa que haremos de nuevo con la función MMULT.


Lo primero será quedarnos con las provincias únicas.


El modelo está en formato de tabla, y, se llama ventas.


Los encabezados de provincias son Provincia1, Provincia2, y, Provincia3, donde tenemos las provincias, vamos a usar la función ENCONTRAR, donde como argumento texto buscado, entre comillas dobles, ponemos Provincia, ya sabemos que la función ENCONTRAR, distingue entre mayúsculas, y, minúsculas.


=ENCONTRAR("Provincia"


Punto y coma, como argumento dentro del texto, ponemos Ventas, abrimos un corchete, signo de almohadilla, seleccionamos encabezados, cerramos paréntesis, y, cerramos paréntesis.


=ENCONTRAR("Provincia";Ventas[#Encabezados])


Aceptamos, y, tenemos una matriz desbordada en horizontal con la posición de la primera letra de la palabra Provincia, y, error donde no haya coincidencia.




Preguntamos si el resultado de ENCONTRAR es mayor a cero, en ese caso, que nos devuelva la tabla ventas.


=SI(ENCONTRAR("Provincia";Ventas[#Encabezados])>0;Ventas)


Obtenemos una matriz desbordada con la provincia donde hay coincidencia, y error donde no la hay.












Usamos la función SI.ERROR, para que en caso que la expresión anterior devuelva un error, nos ponga un texto en blanco.


=SI.ERROR(SI(ENCONTRAR("Provincia";Ventas[#Encabezados])>0;Ventas);"")


Nos quedamos con los valores únicos.


=UNICOS(SI.ERROR(SI(ENCONTRAR("Provincia";Ventas[#Encabezados])>0;Ventas);""))

Usamos LET, creamos una variable, y, almacenamos la expresión anterior.

=LET(a;UNICOS(SI.ERROR(SI(ENCONTRAR("Provincia";Ventas[#Encabezados])>0;Ventas);""))


Punto y coma, como argumento calculo, filtramos la variable A, siempre que dicha variable sea diferente a blanco.


Cerramos paréntesis.


=LET(a;UNICOS(SI.ERROR(SI(ENCONTRAR("Provincia";Ventas3[#Encabezados])>0;Ventas3);""));FILTRAR(a;a<>""))


Antes de aceptar, transponemos.


=TRANSPONER(LET(a;UNICOS(SI.ERROR(SI(ENCONTRAR("Provincia";Ventas[#Encabezados])>0;Ventas);""));FILTRAR(a;a<>"")))


Ya tenemos las provincias únicas.







Ahora, debemos de calcular los totales para cada provincia, donde debemos de multiplicar la columna de cantidad por la columna precio.


Como la expresión resultante va a ser demasiado larga, vamos a hacer uso de los nombres de rangos.


Vamos a preguntar si es numero la tabla ventas.


=ESNUMERO(Ventas)


Obtenemos una matriz desbordada con VERDADERO donde es número, y, FALSO donde no lo es.









Lo siguiente es preguntar que si es numero la tabla ventas, que nos devuelva la columna, en caso contrario, que devuelva un texto en blanco.


=SI(ESNUMERO(Ventas);COLUMNA(Ventas);"")


Obtenemos una matriz desbordada con el numero de columna donde es número, y, blanco donde no lo es.











Nos quedamos con los valores únicos.


=UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""))


Ahora, tenemos los números de columnas donde debemos de empezar a rescatar valores, estos números de columnas pertenecen a cada provincia, las columnas 4, y,5 pertenecen a Granada, las columnas 9, y, 10, pertenecen a la provincia de Sevilla, y, las columnas 14, y, 15 pertenecen a la provincia de Jaén.


Tenemos una función llamada K.ESIMO.MENOR, que nos devuelve el numero menor que le indiquemos, pues, vamos a solicitar a la expresión anterior, el primer valor menor.


=K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));1)


Nos devuelve el número 4.


Ahora, tenemos que crea la referencia, cosa que haremos con la función DIRECCION, donde como argumento fila, es la fila 2, porque los datos comienzan en la fila 2.


=DIRECCION(2


Como argumento columna, es la expresión anterior.


Cerramos paréntesis.


=DIRECCION(2;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));1))


Aceptamos, y, tenemos la referencia de la columna cantidad donde empezar, en absoluto.






Como he dicho anteriormente, la expresión va a ser muy larga, por lo que vamos a crear un primer nombre de rango, primero seleccionamos la expresión, pulsamos CTRL más C para copiar, pulsamos Escape, vamos a la pestaña formulas, dentro de nombres definidos, hacemos clic en asignar nombre.









Se abre la ventana nombre nuevo, le voy a llamar Cantidad_inicial1, y, en la ventana se refiere a, pegamos la función.













Aceptamos.


Continuamos…


Lo siguiente que debemos de saber es cual es la ultima fila ocupada, para ello, usamos CONTARA, contamos, por ejemplo, la columna de provincia, ya que todas las columnas tienen las mismas filas, y, sumamos 1.


=CONTARA(Ventas[Provincia1])+1


Nos devuelve 19, ya tenemos donde empezar, y, donde acabar.


Igual que antes, debemos de crear la referencia, para ello, volvemos a usar DIRECCION, donde como argumento fila es la función CONTARA.


=DIRECCION(CONTARA(Ventas[Provincia1])+1


Punto y coma, como argumento columna es la función K.ESIMO.MENOR usada anteriormente.


Cerramos paréntesis.


=DIRECCION(CONTARA(Ventas[Provincia1])+1;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));1))


Aceptamos, y, como hemos dicho, ya sabemos donde empezar, y, donde acabar.








Vamos a crear un segundo nombre de rango, para ello, seleccionamos la expresión anterior, pulsamos CTRL mas C para copiar, pulsamos Escape, volvemos a formulas, dentro de nombres definidos, hacemos clic en asignar nombre.


Como nombre le voy a poner Cantidad_final1, y, en la ventana se refiere a, pegamos la expresión.













Aceptamos.


Concatenamos cantidad_inicial1, con dos puntos, y, cantidad_final1.


=Cantidad_inicial1&":"&Cantidad_final1


Ya tenemos la referencia a rescatar.






Y el primer argumento de la función MMULT.


Pero antes de usar MMULT, vamos a formar el segundo argumento de MMULT.


Para el calculo de la referencia de comienzo, la expresión es la misma usada anteriormente, lo único que cambia es el argumento K de K.ESIMO.MENOR, que en este caso, nos debe de devolver el segundo elemento menor.


=DIRECCION(2;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));2))


Creamos un tercer nombre de rango, volvemos a seleccionar la expresión anterior, pulsamos CTRL más C para copiar, pulsamos Escape, volvemos a formulas, dentro de nombres definidos, hacemos clic en asignar nombre.


Le voy a llamar Cantidad_inicial2, y, en la ventana se refiere a, pegamos la expresión.


Lo siguiente es calcular la ultima fila ocupada, igual que antes, es la misma expresión solo va a cambiar el argumento K de K.ESIMO.MENOR, que vuelve a ser 2.


=DIRECCION(CONTARA(Ventas[Provincia1])+1;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas3);""));2))


Creamos un cuarto nombre de rango, seguimos los pasos anteriores, le voy a llamar Cantidad_final2, y, pegamos la expresión en la ventana se refiere a.


Volvemos a concatenar Cantidad_inicial2, con dos puntos, y, con Cantidad_inicial2.


=Cantidad_inicial2&”:”&Cantidad_final2


Si usamos después del signo igual, la función INDIRECTO, obtendremos los valores de la columna precio para la primera provincia.


=INDIRECTO(Cantidad_inicial2&":"&Cantidad_final2)


















Quitamos INDIRECTO, y, transponemos.


Pues, ya tenemos los dos argumentos de la función MMULT.


En la celda C22, ponemos MMULT, como argumento matriz1, ponemos INDIRECTO, y, como argumento referencia, pues, ponemos Cantidad_inicial1, concatenado con los dos puntos, y, concatenado con Cantidad_final1.


Cerramos paréntesis.


=MMULT(INDIRECTO(Cantidad_inicial1&":"&Cantidad_final1)


Punto y coma, como argumento matriz2, ponemos de nuevo, INDIRECTO, ponemos TRANSPONER, si no lo hemos hecho antes, ponemos INDIRECTO, como argumento referencia, concatenamos Cantidad_inicial2 con los dos puntos, y, con Cantidad_final2.


Cerramos paréntesis.


=MMULT(INDIRECTO(Cantidad_inicial1&":"&Cantidad_final1);TRANSPONER(INDIRECTO(Cantidad_inicial2&":"&Cantidad_final2)))


Después del signo igual, ponemos SUMA.


=SUMA(MMULT(INDIRECTO(Cantidad_inicial1&":"&Cantidad_final1);TRANSPONER(INDIRECTO(Cantidad_inicial2&":"&Cantidad_final2))))


Tenemos el total para la primera provincia.






Arrastramos, pero debemos de cambiar el argumento K de la segunda expresión por 2, y, 3.

El problema de haber creado los nombres de rangos, es que si ahora arrastramos, nos dará el mismo total, porque en la función K.ESIMO.MENOR, le hemos dicho que nos devuelva el primer y segundo valor.


Podemos crear 8 nombres de rangos más, en caso contrario, así sería la expresión sin nombres de rangos.


=SUMA(MMULT(INDIRECTO(DIRECCION(2;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));1))&":"&DIRECCION(CONTARA(Ventas[Provincia1])+1;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));1)));TRANSPONER(INDIRECTO(DIRECCION(2;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));2))&":"&DIRECCION(CONTARA(Ventas[Provincia1])+1;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));2))))))


Arrastramos, y, en cada expresión, debemos de cambiar el argumento K por 3 y 4 en la segunda expresión, y, por 5 y 6 en la tercera expresión.








Podemos solventarlo creando un índice de dos columnas, en cada columna debe de aparecer el número menor a rescatar, para ello, debemos de volver al principio, donde calculamos las columnas con números, siendo la siguiente expresión:


=UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""))


Usamos CONTAR para que nos devuelva el número de columnas.


=CONTAR(UNICOS(SI(ESNUMERO(Ventas3);COLUMNA(Ventas3);"")))


Nos devuelve 6 columnas.


Dividimos entre 2.


= CONTAR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);"")))/2


Usamos SECUENCIA, donde como argumento filas, es la expresión anterior.


=SECUENCIA(CONTAR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);"")))/2


Punto y coma, como argumento columnas, ponemos 2.


=SECUENCIA(CONTAR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);"")))/2;2


Punto y coma, como argumento inicio, ponemos 1.


=SECUENCIA(CONTAR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);"")))/2;2;1


Punto y coma, como argumento paso, ponemos 1.


Cerramos paréntesis.


=SECUENCIA(CONTAR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);"")))/2;2;1;1)


Aceptamos, y, tenemos una matriz desbordada de un alto de tres filas, y, un ancho de dos columnas, con los valores que necesitamos.











Volvemos a la primera expresión, cambiamos el primer argumento K de K.ESIMO.MENOR por la celda E22, y, en el segundo K.ESIMO.MENOR, donde solicitamos el segundo valor menor, cambiamos el valor por la celda F22.


=SUMA(MMULT(INDIRECTO(DIRECCION(2;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));'DATOS (2)'!E22))&":"&DIRECCION(CONTARA(Ventas[Provincia1])+1;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));'DATOS (2)'!E22)));TRANSPONER(INDIRECTO(DIRECCION(2;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));'DATOS (2)'!F22))&":"&DIRECCION(CONTARA(Ventas[Provincia1])+1;K.ESIMO.MENOR(UNICOS(SI(ESNUMERO(Ventas);COLUMNA(Ventas);""));'DATOS (2)'!F22))))))


Aceptamos, y, tenemos el mismo resultado.


Seleccionamos la expresión, pulsamos CTRL mas C para copiar, pulsamos Escape, podemos crear un nuevo nombre de rango, o, usar uno de los que ya tenemos, yo voy a modificar el primer nombre de rango creado, Cantidad_inicial1, para ello, vamos a la pestaña formulas, dentro de nombres definidos, hacemos clic en administrador de nombres.








Se abre la ventana administrador de nombres, seleccionamos el nombre Cantidad_inicial1, y, hacemos clic en modificar.












Borramos el contenido de la ventana se refiera a, y, pegamos la expresión copiada.


Aceptamos, vemos que tenemos el mismo resultado, pero, las celdas E22, y, F22 que hemos puesto, están en relativas, quiere decir, que cuando arrastremos se irán actualizando, por lo que tomara los siguientes números menores a devolver.


Arrastramos, seguimos teniendo los mismos resultados.








Pero, ahora es dinámico, es decir, que, si hay mas o menos provincias, los datos se actualizarán de forma automática.


Borramos los nombres de rangos que no vamos a necesitar.



Miguel Angel Franco

383 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Kommentare


bottom of page