IMPORTTEXT: importar múltiples CSV con LAMBDA recursiva y exploración profunda

Caso doble que combina la resolución de un problema práctico con una exploración exhaustiva de las nuevas funciones IMPORTTEXT e IMPORTCSV de Excel 365.

La comunidad se enfrenta a un problema real: importar y consolidar múltiples archivos CSV con una sola fórmula. El enfoque natural sería usar REDUCE con SECUENCIA para iterar sobre los archivos:

``
=REDUCE("";
SECUENCIA(5);
LAMBDA(_a;_i;
APILARV(_a; IMPORTTEXT("ruta\datos"&_i&".csv";""))
)
)
`

Sin embargo, IMPORTTEXT se "atasca" dentro de REDUCE y SCAN. Nacho descubre que la solución es usar bisección recursiva — una LAMBDA que se llama a sí misma dividiendo el problema a la mitad:

`
=LET(
F; LAMBDA(F;x;
LET(
n; FILAS(x);
SI(n = 1;
IMPORTTEXT("C:\datos\datos" & n & ".csv";";";;;1252);
APILARV(F(F; TOMAR(x; n/2)); F(F; EXCLUIR(x; n/2)))
)
)
);
F(F; SECUENCIA(5))
)
`

John logra hacerlo con REDUCE usando un "empaquetado" con LAMBDA(x;LAMBDA(x)) (thunking) para diferir la evaluación:

`
=LET(
th; LAMBDA(x;LAMBDA(x));
f; MAP(B2:B3; LAMBDA(x; th(IMPORTTEXT(x;;1;;;"en-us"))));
EXCLUIR(REDUCE(0;{1;2}; LAMBDA(a;v; APILARV(a; INDICE(f;v;1)())); 1)
)
`

Por otro lado, Andrés Rojas Moncada realiza una investigación minuciosa sobre el comportamiento interno de IMPORTCSV e IMPORTTEXT: cómo funciona el delimitador por posiciones numéricas, la precedencia entre omitir_filas y tomar_filas que emula EXCLUIR + TOMAR, y las configuraciones regionales disponibles. Descubre que solo 3 de todas las configuraciones regionales de Windows no usan la coma como delimitador por defecto.

Sergio Alejandro Campos (experto de Excel) aporta que incluso se puede combinar con COPILOT:

`
=COPILOT("Dame indicadores"; IMPORTCSV("ruta\archivo.csv"))
``

El archivo adjunto incluye un ejemplo práctico con un archivo .txt de prueba (datos con separadores |, ; y ,) y la hoja Excel con las fórmulas de importación y una tabla completa de configuraciones regionales.

Más contenido de Excel en InflueXcel