Importar lista de archivos a Excel
viernes, agosto 25, 2006
Ya vimos que las funciones XLM (macrofunciones Excel 4) nos permiten realizar tareas con fórmulas que de otra manera solo serían posibles con macros.
Una de estas funciones es ARCHIVOS. De acuerdo al archivo de ayuda:
Devuelve una matriz de texto horizontal con los nombres de todos los archivos que se encuentran en el directorio o en la carpeta especificados. Use ARCHIVOS para crear una lista de nombres de archivo sobre los que desea que actúe su macro.
La sintaxis es: ARCHIVOS(directorio)
donde "directorio" especifica los directorios o carpetas que contienen los archivos cuyos nombres se van a devolver.
Un lector del blog me consulta como se puede importar a una hoja de Excel una lista de los archivos de una carpeta.
Supongamos que quiero importar a una hoja de Excel los archivos

Esto la hacemos usando la macrofunción ARCHIVOS (FILES en la versión inglesa).
Los pasos son:
1 - definimos el nombre "Archivos" (Insertar--Nombres--Definir), que contiene esta formula: =ARCHIVOS($A$1).
Prestar atención a la referencia absoluta en la fórmula.
2 - En al celda A1 escribimos:
D:\My Music\Mercedes Sosa\Cantata Sudamericana \*.*
3 - En la celda B1 escribimos la formula: =INDICE(Archivos,FILA())
4 - Copiamos la formula hacia abajo (celdas B2, B3, etc) hasta que recibimos como resultado #REF.
El resultado es el siguiente:
Ahora, seleccionamos todo el rango de la columna B y hacemos Copiar--Pegado especial--Valores, para anular las formulas.
Si queremos usar la fórmula en otras hojas del cuaderno, en el diálogo de definición de nombres, borramos el prefijo Hoja1 en la ventanilla "se refiere a", cuidándonos de dejar el signo "!". De esta manera el nombre Archivos se referirá a la celda A1 de la hoja donde se encuentre, y a la hoja donde fue definido.
En esta entrada hay un enlace para descargar el archivo de ayuda en español.
Categorías: Funciones&Formulas_,
Technorati Tags: Excel






24 comments:
Excelente el Blog!!! MARAVILLOSO!!! (Al fin, un blog que no es el diario íntimo de alguien con poca vida...)
INCREIBLE el manejo de Excel!!!
FELICITACIONES!!!
Bueno, ejem... Gracias
Excelente, durante años quise hacerlo sin éxito.
Una sola consulta, ¿tiene algún límite la función? Porque quise utilizarla con una carpeta de 1600 archivos pero solo copió 256, y error (#REF!) a partir de allí.
Gracias.
De acuerdo a la ayuda de Excel (en esta entrada hay un enlace para descargar el archivo) la función produce un una matriz horizontal con los nombres de los archivos. Supongo que la limitación de 256 archivos está relacionada con las 256 columnas que tiene cada hoja de Excel.
Me parece que la solución es combinar ARCHIVOS con la función TRANSPONER. Por ejemplo, definir el nombre TrArchivos como =TRANSPONER(ARCHIVOS(Hoja1!$A$1)). No tengo ninguna carpeta con tantos archivos para hacer un test. Intentalo y decime si funciona.
nop, no funciona con transponer. De que otra manera se podra?
Hola, acabo de publicar esta nota con una macro para realizar la tarea. Espero que te sea útil.
excelente!!! muy util ,hace tiempo buscaba algo asi.. Gracias
queria saber como hacer para que tambien me liste los archivos dentro de las distintas carpetas y sub directorios dentro de un cd. Desde ya gracias.-
disculpa hace mucho estoy tratando de hacerlo pero no me resulta quiero listar una carpeta que tiene archivos con caracteres japoneses ( li intente en una carpeta que no tiene caracteres japoneses pero es lo mismo ) pero no me resulta la operacion llego hasta la pare de escribir =INDICE(Archivos,FILA()) dice que hay que copiar hasta que salga #REF la copio 1 a 1 y nada la copio arrastrando la formula hacia abajo pero lo unico que pasa es que se copia la formula nuevamente osea =INDICE(Archivos,FILA()) hasta dode yo seleccione y ningun nombre de archivo , si me puedes ayudar , gracias
en lo que me queda http://www.subirimagenes.com/imagen-de-Dibujo-1891716.html
Jairo
si lo que ves en la celda es la fórmula misma (y no el resultado o algo como #N/A o #ERR), da la impresión que el rango donde estas poniendo la fórmula está fomado como Texto.
Jorge, muy bueno tu blog, me ha ayudado mucho!!!
Quisiera saber si es posible hacer un listado de las carpetas, como has hecho con los archivos.
Muchas Gracias!
Hola
en principio, si es posible. Sobre cómo estaré publicando una nota en breve.
jorge, una consulta, estoy utilizano Excel 2003 - genero el nombre , pero cuando termino de armar la formula indice el resultado es #N/A.
Tengo que instalar algo especial para poder utilizar la "ARCHIVOS"
Gracias
Caty
NO, no tenés que instalar nada. Hay algún error en la construcción de la fórmula.
Jorge tengo una duda. Como hago con office 2007 esto mismo?
Esto sirve para 2007.
Buenisimo tu blog
Según el Office Developer Center de Microsoft, las funciones macro XLM siguén funcionando en Excel 2007. Es decir, podés usarlas de la misma manera que enlas versiones anteriores.
No me sale :( que estoy haceindo mal?
No se, tendrías que contarme qué estás haciendo, o mejor, mdanrme el archivo.
defino como archivos, pero la formula me queda igual, estoy usando office 2003
Mandame el archivo
buenas tengo una interrogante como hago el apartado de insertar nombre definir en office 2007, y es compatible esta funcion con excel de office 2007
En Excel 2007 los nombres se definen en la pestaña Fórmulas, en la etiqueta Nombres Definidos-Administrador de Nombres.
En esta nota hay un enlace para descargar guías interactivas que muestran como encontrar los comandos en Excel 2007.
Muchisimas gracias funciona a la perfeccion, me gustaria saber, si existe alguna forma de hacer, que se incluyan en la lista, las carpetas y subcarpetas y los archivos que estas continen.
No, tendrías que usar una macro para esa tarea.
Publicar un comentario