
Trabajar con matrices en Excel ha pasado de ser algo “mágico” y reservado a usuarios avanzados a convertirse en una herramienta del día a día gracias a las funciones matriciales dinámicas y a la llegada de LAMBDA y MAP. Si te suenan todos estos nombres pero no terminas de ver cómo encajarlos en tu hoja de cálculo, aquí vamos a desgranarlos con calma y con ejemplos claros.
En este artículo vas a ver cómo crear, transformar y analizar matrices usando LAMBDA, MAP y fórmulas matriciales clásicas, desde casos sencillos (como aplicar un mínimo entre dos listas) hasta usos más potentes, como filtrar datos por condiciones, ignorar errores o contar diferencias entre rangos. La idea es que termines con un arsenal de fórmulas listo para usar en tus archivos de Excel, sin miedo a las temidas fórmulas matriciales.
Qué es MAP y cómo se combina con LAMBDA en Excel
La función MAP es una de las grandes protagonistas del nuevo Excel: permite recorrer una o varias matrices (rangos) y devolver una nueva matriz donde cada elemento es el resultado de aplicar una función LAMBDA a los valores originales. En la práctica, es como decirle a Excel: “ve celda a celda y haz esta operación con cada valor, devolviéndome todo el conjunto como matriz”.
La sintaxis básica de MAP en español es: =MAP(matriz1; lambda_o_matriz<#>). El primer argumento, matriz1, es el rango o matriz sobre el que quieres trabajar; el último argumento debe ser siempre un LAMBDA o, en algunos escenarios avanzados, otra matriz. Ese LAMBDA tiene que tener un parámetro para cada una de las matrices que se pasen a MAP.
Es importante entender que MAP puede recibir varias matrices (por ejemplo, dos columnas paralelas) y el LAMBDA se encargará de procesar los valores que están en la misma posición. Esto resulta especialmente útil cuando necesitas comparar, combinar o calcular algo a partir de dos o más listas de datos, sin recurrir a fórmulas arrastradas ni copias manuales.
Cuando el argumento LAMBDA de MAP no está bien definido, o el número de parámetros del LAMBDA no coincide con el número de matrices pasadas a la función, Excel devuelve un error #VALUE! con el mensaje “Parámetros incorrectos”. Este suele ser el primer síntoma de que falta o sobra un parámetro en la definición de la función LAMBDA.

Cómo funciona la sintaxis de LAMBDA y MAP paso a paso
Para sacarle partido a MAP necesitas manejar con soltura la función LAMBDA. Un LAMBDA en Excel te permite definir una especie de “función personalizada” directamente en una fórmula, con sus parámetros y su cálculo interno, sin necesidad de VBA ni macros. MAP se apoya en este LAMBDA para aplicar lógicamente una operación a cada elemento de las matrices.
La idea general es que escribas algo del estilo =MAP(rango; LAMBDA(x; operación_con_x)), donde x es el parámetro que representa cada valor individual de la matriz. En cuanto pulsas Intro, Excel recorre la matriz y devuelve otra matriz del mismo tamaño con la operación ya aplicada. Si se utilizan varias matrices, el LAMBDA tendrá varios parámetros (por ejemplo, a y b) y la operación los combinará.
Por ejemplo, MAP también admite llamadas a funciones lógicas como SI, Y, O o AND, siempre que se usen correctamente en modo matricial. Ten en cuenta que funciones como Y u O, usadas directamente, devuelven un único TRUE/FALSE; por eso, en muchos escenarios avanzados, se recurre a combinaciones aritméticas (sumas y productos) con condiciones para imitar un comportamiento O o Y por elemento.
Además, MAP es totalmente compatible con otras funciones matriciales dinámicas como FILTRAR, BYROW, BYCOL, REDUCE, SCAN o MAKEARRAY. De hecho, la auténtica potencia llega cuando encadenas varias de estas funciones, permitiendo que una matriz calculada por MAP se utilice como criterio de filtrado, como acumulador o como entrada primaria a otros cálculos.
La estructura interna del LAMBDA siempre debe respetarse: primero se listan los parámetros (los nombres que vas a usar dentro de la función), separados por punto y coma, y al final se coloca la expresión de cálculo que usa esos parámetros. Si olvidas un parámetro, o utilizas uno en la expresión que no has declarado, volverás a encontrarte con el error de parámetros incorrectos.
Ejemplos prácticos con MAP y LAMBDA en matrices
Un uso muy clásico de MAP consiste en aplicar una operación matemático-lógica a cada elemento de una matriz de números. Por ejemplo, supongamos que tienes datos en el rango A1:C2 y quieres que, para cada valor, Excel calcule su cuadrado solo si es mayor que 4; si no, quieres mantener el valor original.
En esa situación, una fórmula posible sería: =MAP(A1:C2; LAMBDA(a; SI(a>4; a*a; a))). MAP va leyendo cada valor de A1:C2, lo asigna al parámetro a y LAMBDA decide, con ayuda de SI, si debe elevarlo al cuadrado o dejarlo tal cual. El resultado es una nueva matriz del mismo tamaño, completamente dinámica, que se actualizará si cambias cualquiera de los datos originales.
Otro escenario interesante es cuando necesitas inspeccionar dos columnas de valores lógicos (VERDADERO/FALSO) y saber cuándo ambas son TRUE al mismo tiempo. Imagina que tienes una tabla llamada “TablaA”, con las columnas Col1 y Col2, y quieres una tercera columna que indique si ambos campos son verdaderos en cada fila.
La fórmula en la columna de resultado podría ser: =MAP(TablaA; TablaA; LAMBDA(a; b; Y(a; b))). Aquí MAP recorre paralelamente las dos columnas, y para cada par de valores (a, b) aplica la función Y, que solo devuelve VERDADERO si los dos parámetros lo son. El resultado es una matriz vertical de valores TRUE/FALSE que se ajusta automáticamente al tamaño de la tabla.
También es posible mezclar MAP con otras funciones dinámicas como FILTRAR para realizar selecciones avanzadas. Por ejemplo, supón que dispones de una tabla con dos columnas: Tamaño (en D2:D11) y Color (en E2:E11), y quieres quedarte únicamente con las filas en las que el tamaño sea “Grande” y el color “Rojo”.
Una forma elegante de hacerlo sería: =FILTRAR(D2:E11; MAP(D2:D11; E2:E11; LAMBDA(s; c; Y(s=»Grande»; c=»Rojo»)))). MAP evalúa cada fila combinando el valor de Tamaño (s) y el de Color (c), devuelve VERDADERO solo si ambos cumplen las condiciones, y FILTRAR usa esa matriz de TRUE/FALSE para decidir qué filas mantener.
Ejemplo específico: mínimo elemento a elemento entre dos matrices dinámicas
Un caso muy habitual cuando trabajas con datos es disponer de dos columnas o dos matrices de la misma longitud y querer crear una tercera matriz con el mínimo de cada par de elementos. O dicho de otra manera: para cada fila, quieres el MÍN(A_i, B_i) entre los valores de MATRIZ-A y MATRIZ-B.
Imagina, por ejemplo, estas dos columnas verticales y el resultado esperado:
| MATRIZ-A (VERTICAL) | MATRIZ-B (VERTICAL) | RESULTADO (VERTICAL) |
|---|---|---|
| 4 | 5 | MÍN(4; 5) |
| 2 | 1 | MÍN(2; 1) |
| 3 | 4 | MÍN(3; 4) |
Si ambas listas son estáticas, podrías escribir =MÍN(A1; B1) y arrastrar hacia abajo. Pero cuando hablamos de matrices dinámicas cuyo tamaño cambia, este método deja de ser práctico. Necesitas una fórmula que devuelva toda la columna de resultados de una tacada, ajustando su tamaño automáticamente según cambien las matrices de entrada.
La combinación MAP + LAMBDA encaja perfectamente en este problema: =MAP(MATRIZ_A; MATRIZ_B; LAMBDA(x; y; MÍN(x; y))). Aquí MAP recorre las dos listas elementoa a elemento, asigna los valores a los parámetros x e y, y el LAMBDA devuelve MÍN(x; y). El resultado es una nueva matriz que siempre tendrá la misma longitud que las matrices iniciales, adaptándose sin tener que arrastrar fórmulas ni rellenar manualmente.
Esta solución respeta por completo el enfoque matricial de Excel y evita el principal inconveniente de la función MÍN, que tiende a devolver un único valor mínimo cuando se le pasa una matriz; gracias a MAP, conseguimos que la evaluación se haga fila a fila, devolviendo tantos mínimos como filas existan.
Fórmulas matriciales avanzadas con funciones clásicas de Excel
Aunque LAMBDA y MAP han modernizado el trabajo con matrices, Excel lleva años permitiendo fórmulas matriciales potentes usando funciones más tradicionales como SUMA, SI, ESERROR, PROMEDIO o MÁX y otras funciones de búsqueda y referencia. La diferencia hoy es que, con las matrices dinámicas, ya no es necesario confirmar estas fórmulas con combinaciones de teclas especiales (Ctrl+Mayús+Intro en las versiones antiguas); basta con pulsar Intro.
Un problema muy típico es sumar un rango que contiene errores (#N/A, #¡DIV/0!, etc.). Si utilizas un SUMA directo sobre ese rango, obtendrás un error y no un resultado numérico. Para arreglarlo, puedes “limpiar” la matriz internamente con una fórmula del tipo: =SUMA(SI(ESERROR(Datos); «»; Datos)). ESERROR detecta las celdas conflictivas, SI sustituye los errores por cadenas vacías y deja intactos los valores correctos, y SUMA solo agrega estos últimos.
Siguiendo una idea parecida, también puedes contar cuántos errores hay en un rango con nombre Datos. Una primera versión sería =SUMA(SI(ESERROR(Datos); 1; 0)), que genera una matriz de 1 para cada celda con error y 0 para las que no lo tienen; SUMA te da el total de errores. Si omites el tercer argumento de SI, la fórmula se puede dejar en =SUMA(SI(ESERROR(Datos); 1)), ya que SI devolverá FALSO para las celdas sin error, y esos FALSO no afectan a la suma.
Se puede simplificar aún más gracias a una pequeña trampa lógica: =SUMA(SI(ESERROR(Datos)*1)). En este caso se explota que VERDADERO*1 equivale a 1 y FALSO*1 equivale a 0; de esta forma, ESERROR(Datos) produce una matriz de TRUE/FALSE y al multiplicarla por 1 se transforma en ceros y unos, perfectos para sumar.
Sumas y medias condicionadas con lógica matricial
Las fórmulas matriciales también son muy útiles a la hora de hacer sumas condicionadas sin recurrir siempre a SUMAR.SI o SUMAR.SI.CONJUNTO. Un ejemplo clásico: sumar solo los valores positivos de un rango llamado Ventas. La fórmula matricial sería =SUMA(SI(Ventas>0; Ventas)), en la que SI crea una matriz con los valores positivos y devuelve FALSO para el resto, que SUMA ignora.
Cuando quieres aplicar más de una condición al mismo tiempo, puedes combinar las comparaciones de forma multiplicativa. Por ejemplo, para sumar valores de Ventas que sean mayores que 0 y, al mismo tiempo, menores o iguales que 5, podrías usar =SUMA((Ventas>0)*(Ventas<=5)*(Ventas)). Cada comparación genera una matriz de TRUE/FALSE, y al multiplicarlas se obtiene 1 solo donde se cumplen todas las condiciones.
Un detalle importante: esta técnica de multiplicar condiciones exige que el rango contenga solo valores numéricos; si hay celdas de texto o vacías que no se traten adecuadamente, es posible que obtengas errores inesperados. Por ello, siempre conviene conocer bien la naturaleza del rango que estás procesando.
Si lo que necesitas es una condición tipo O (es decir, que se cumpla una cosa o la otra), la estrategia cambia ligeramente. En lugar de multiplicar, se suele usar la suma. Por ejemplo, para sumar los valores de Ventas que sean menores que 5 o mayores que 15, podrías escribir =SUMA(SI((Ventas<5)+(Ventas>15); Ventas)). Aquí cualquier fila que cumpla al menos una de las condiciones produce un valor distinto de cero, y SI la considera como VERDADERO.
En estos escenarios, las funciones Y y O “clásicas” no se comportan bien en fórmulas matriciales porque están diseñadas para devolver un único resultado global (TRUE o FALSE), no una matriz completa. Por eso, la solución pasa por traducir la lógica AND/OR a productos (para Y) o sumas (para O), igual que hemos visto en los ejemplos.
También puedes calcular una media que ignore determinados valores, como los ceros. Si tienes un rango llamado Ventas y quieres obtener el promedio de las celdas no nulas, puedes usar =PROMEDIO(SI(Ventas<>0; Ventas)). La función SI construye una matriz que incluye solo las celdas distintas de cero, y PROMEDIO calcula la media sobre esa lista filtrada internamente.
Comparar rangos y buscar diferencias con fórmulas matriciales
Otro campo en el que las fórmulas matriciales son especialmente útiles es en la comparación de rangos. Por ejemplo, si tienes dos rangos con el mismo número de filas y columnas, llamados MisDatos y TusDatos, y quieres saber cuántas celdas son distintas entre sí, puedes recurrir a una fórmula del estilo: =SUMA(SI(MisDatos=TusDatos; 0; 1)).
Esta expresión genera una matriz en la que cada elemento vale 0 si las celdas correspondientes son iguales, o 1 si difieren. Después, SUMA agrega todos esos unos y ceros, devolviendo el número total de diferencias entre ambos conjuntos de datos; si la suma es 0, significa que todo coincide exactamente.
Si quieres una versión más compacta, existe una variante muy utilizada: =SUMA(1*(MisDatos<>TusDatos)). Aquí se aprovecha el operador <> (distinto de) para generar directamente una matriz de TRUE/FALSE, que tras multiplicarla por 1 pasa a ser una matriz de 1 y 0. De nuevo, la suma de esa matriz te indica cuántas celdas son diferentes.
También es posible localizar la posición del valor máximo en un rango de una sola columna, por ejemplo, en un rango llamado Datos. Una forma matricial de lograrlo es usando la fórmula =MIN(SI(Datos=MAX(Datos); FILA(Datos); «»)). El truco está en que SI devuelve el número de fila allí donde el valor sea máximo y deja una cadena vacía en el resto.
La función MIN, aplicada sobre esa matriz mixta de números y cadenas vacías, ignora las cadenas y devuelve el menor número de fila de los máximos hallados, es decir, la primera aparición del valor máximo. Si hay varios máximos idénticos, MIN se queda con la fila del primero.
Si además quieres obtener la referencia de celda del valor máximo, no solo la fila, puedes envolver el cálculo anterior en la función DIRECCION: =DIRECCION(MIN(SI(Datos=MAX(Datos); FILA(Datos); «»)); COLUMNA(Datos)). De este modo, COLUMNA(Datos) aporta el número de columna, y DIRECCION construye la referencia completa, como por ejemplo «$B$7».
Todo este conjunto de fórmulas demuestra que, incluso sin funciones modernas como MAP, las operaciones matriciales permiten resolver problemas complejos de comparación, búsqueda y análisis de datos con relativa sencillez una vez entiendes la lógica que hay detrás de TRUE/FALSE, ceros, unos y condiciones encadenadas.
Al combinar las técnicas clásicas con las nuevas funciones como LAMBDA, MAP, FILTRAR, REDUCE, SCAN, MAKEARRAY, BYCOL, BYROW o ISOMITTED, se abre un abanico de posibilidades enorme: desde construir columnas calculadas totalmente dinámicas hasta diseñar pequeños “módulos” reutilizables de lógica avanzada que se adaptan solos al tamaño de tus datos sin fórmulas repetidas. Todo ello convierte a Excel en una herramienta todavía más flexible para automatizar cálculos matriciales complejos sin necesidad de programación externa.
from Actualidad Gadget https://ift.tt/2QYMrLP
via IFTTT





No hay comentarios:
Publicar un comentario