Combinaciones de N elementos tomados de K en K: fórmulas con REDUCE y LAMBDA
Sebas comparte un archivo con un listado de 11 elementos y necesita generar todas las combinaciones posibles tomados de 2 en 2 (sin repetición, sin importar orden). Nacho aporta una primera solución, y Frankikoh78 comparte una fórmula propia con MAP + DIVIDIRTEXTO + TEXTOANTES + TEXTODESPUES para generar pares.
Pero Leo lleva el problema a otro nivel con una colección completa de fórmulas para permutaciones, variaciones y combinaciones.
Combinaciones de N tomados de K en K (la que pedía Sebas):
``
=LET(
l; A2:A12;
n; FILAS(l);
k; 2;
d; n-k;
r; REDUCE(SECUENCIA(d+1); SECUENCIA(k-1;;2);
LAMBDA(x;y; LET(
m; APILARH(SECUENCIA(FILAS(x);;1;0); x+1);
REDUCE(m; SECUENCIA(d;;d;-1);
LAMBDA(a;b; LET(
p; ENTERO(COMBINAT(b+y-1;y-1));
c; TOMAR(a;-p);
APILARV(a; FILTRAR(c+1; NO(TOMAR(c+1;;-1)>MAX(c))))
))
)
))
);
INDICE(l;r)
)
`
Con solo cambiar la variable k se obtienen combinaciones de 3, 4 o más elementos. Leo también comparte una versión para combinaciones CON repetición usando BASE y HEX.A.DEC:
`
=LET(
l; A2:A12;
k; 3;
n; FILAS(l);
i; HEX.A.DEC(
EXTRAE(BASE(SECUENCIA(n^k;;0); n; k); SECUENCIA(;k); 1)
) + 1;
INDICE(l;i)
)
`
Y una versión más corta para combinaciones sin repetición cuando k ≤ 9:
`
=LET(
l; A2:A12;
k; 2;
n; FILAS(l);
s; SECUENCIA(;n)&"";
INDICE(l;
EXTRAE(
REDUCE(""; SECUENCIA(k);
LAMBDA(a;b; ENCOL(SI.CONJUNTO(DERECHA(a)<s; a&s); 3))
);
SECUENCIA(;k); 1
)
)
)
`
Las tres fórmulas generan los mismos resultados que la función COMBINAT` predice, pero devuelven las combinaciones reales, no solo el conteo.
Más contenido de Excel en InflueXcel
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul
- Nueva Función IMPORTTEXT TutorialNueva función IMPORTTEXT en Excel!! https://techcommunity.microsoft.com/blog/microsoft365insiderblog/bring-data-into-excel-with-the-new-impo
- ¿Columnas con nombres distintos en Power Query? Tutorial¿Columnas con nombres distintos en Power Query? Aquí tienes la solución definitiva para normalizar tus datos y evitar errores al combinar fi
- BUSCARX con valor devuelto dinámico: elige la columna con un botón o un segmentador CasoUna integrante de la comunidad planteó un reto muy habitual al trabajar con tablas de varias columnas: tiene una lista de municipios con cua
- Saldo acumulado por mes: tres enfoques (REDUCE+BYROW, PIVOTARPOR+acumulado, MMULT) CasoJuan plantea una pregunta que parece sencilla y se acaba convirtiendo en tres clases magistrales sobre cómo recorrer una matriz mes a mes. T
- Mapa de España con burbujas: ubicar variables por provincia usando coordenadas X/Y CasoEsta semana surgió una duda muy visual en el grupo: cómo mostrar dos variables por provincia en un mapa de España — una pintada en intensida
- Regularización trimestral con AGRUPARPOR y ARCHIVOMAKEARRAY: del caos a una fórmula CasoCaso fresquito de la comunidad. Juan plantea un problema contable: tiene una tabla de movimientos (Nombre, Cuenta, Importe, Fecha) y necesit
- Grado de avance por proyecto: despivotar y volver a pivotar por fecha CasoNuevo caso de la comunidad con mucho jugo para los que trabajan con reporting de proyectos. Juan plantea un problema habitual en oficinas té