Importación de un subconjunto de registros (Microsoft Excel)
Gordon se pregunta cómo puede importar un subconjunto de un archivo de texto a Excel, dependiendo del valor de un campo en particular. Por ejemplo, es posible que solo desee importar registros que contengan una «y» en la columna 5 de cada registro del archivo de texto.
Hay varias formas de abordar esta tarea. Una es que simplemente puede importar todo el archivo de texto, ordenar los registros y eliminar los que no desee. Esta es, quizás, la opción más simple si solo necesita procesar un solo archivo y todo el archivo puede caber en una sola hoja de trabajo.
Otro enfoque es utilizar una macro. (Este es el que encuentro más rápido y fácil, especialmente si necesita importar bastante el mismo tipo de archivo). La macro puede abrir el archivo de texto, leer cada línea y luego determinar si el la información en esa línea debe agregarse a la hoja de trabajo o no. Aquí hay un ejemplo que abrirá un archivo llamado «MyCSVFile.txt» y luego pegará los datos en una nueva hoja de trabajo comenzando en la primera fila.
Sub ReadMyFile() Dim R As Integer Dim C As Integer Dim sDelim As String Dim sRaw As String Dim ReadArray() As String sDelim = "," ' Set to vbTab if tab-delimited file Worksheets.Add Open "myCSVFile.txt" For Input As #1 R = 1 Do While Not EOF(1) Line Input #1, sRaw ReadArray() = Split(sRaw, sDelim, 20, vbTextCompare) If ReadArray(4) = "y" Then For C = 0 To UBound(ReadArray) Cells(R, C + 1).Value = ReadArray(C) Next C R = R + 1 End If Loop Close #1 End Sub
Para usar la macro, simplemente cambie el nombre del archivo para que coincida con el archivo que desea procesar. También querrá modificar la variable sDelim para asegurarse de que coincida con lo que se esté utilizando como delimitador en sus registros. Como está escrito, asume que el delimitador es una coma (que estaría en un archivo CSV), pero puede cambiarlo a vbTab si realmente está trabajando con un archivo delimitado por tabulaciones. Una vez completada la macro, solo los registros con un único carácter «y» en minúscula están en la nueva hoja de trabajo.
Otro enfoque consiste en utilizar la función Power Query de Excel. Este es un complemento gratuito de Microsoft que está disponible para algunas variaciones de Excel 2010 y Excel 2013. Puede descargar (y averiguar qué variaciones son compatibles) en esta ubicación:
http://www.microsoft.com/en-us/download/details.aspx?id=39379
Si está utilizando Excel 2016, Power Query está integrado en el programa.
Si tiene Power Query instalado o disponible en su versión de Excel y esa versión de Excel es Excel 2010 o Excel 2013, siga estos pasos:
-
Muestre la pestaña Power Query de la cinta.
-
Haga clic en Desde archivo | De CSV. Excel muestra el cuadro de diálogo Examinar valores separados por comas, que se parece mucho a un cuadro de diálogo Abrir estándar.
-
Busque y seleccione el archivo CSV que desea importar a Excel.
-
Haga clic en Abrir. Excel carga los datos en una ventana de Power Query con botones de filtrado disponibles para cada campo.
Si está utilizando Excel 2016 o una versión posterior, los pasos son un poco diferentes:
-
Muestre la pestaña Datos de la cinta.
-
Haga clic en la herramienta Nueva consulta (Excel 2016) o la herramienta Obtener datos (versiones posteriores de Excel) en el grupo Obtener y transformar. Excel muestra algunas opciones.
-
Haga clic en Desde archivo | Desde Text / CSV. Excel muestra el cuadro de diálogo Importar datos, que se parece mucho a un cuadro de diálogo Abrir estándar.
-
Busque y seleccione el archivo CSV que desea importar a Excel.
-
Haga clic en Abrir. Excel carga los datos en una ventana de Power Query con botones de filtrado disponibles para cada campo.
En este punto, independientemente de la versión de Excel que esté usando, puede usar los controles para especificar una consulta (es decir, configurar una definición de qué registros se deben importar). Cuando hace clic en Cerrar y cargar, los registros se recuperan del archivo y la consulta se puede guardar para uso futuro.
Un cuarto enfoque es utilizar Microsoft Query. Para hacerlo, deberá seguir esta larga serie de pasos. (Nadie dijo nunca que Microsoft quería que Microsoft Query fuera fácil de usar, y estará de acuerdo después de seguir estos pasos).
-
Muestre la pestaña Datos de la cinta.
-
Haga clic en la herramienta Obtener datos en el grupo Obtener y transformar datos, luego elija De otras fuentes (en el grupo Obtener datos externos versiones anteriores de Excel) y luego elija De Microsoft Query. Excel muestra el cuadro de diálogo Elegir fuente de datos. (Ver figura 1)
-
Seleccione la opción Nueva fuente de datos y haga clic en Aceptar. Excel muestra el cuadro de diálogo Crear nueva fuente de datos. (Ver figura 2)
-
Proporcione un nombre para su fuente de datos, como «Archivos CSV».
-
Usando la lista desplegable para el elemento 2, elija Microsoft Text Driver.
-
Haga clic en Conectar. Excel muestra el cuadro de diálogo Configuración de texto ODBC.
-
Inmediatamente haga clic en Aceptar para cerrar el cuadro de diálogo.
-
Haga clic en Aceptar para cerrar el cuadro de diálogo Crear nueva fuente de datos. Excel actualiza el cuadro de diálogo Elegir fuente de datos para incluir el nombre que especificó en el paso 4.
-
Seleccione la fuente de datos que acaba de crear y luego haga clic en Aceptar. Excel muestra una advertencia de que no hay tablas de datos en la fuente. (Eso está bien; no has definido ninguna.)
-
Haga clic en Aceptar para descartar la advertencia. Excel muestra el cuadro de diálogo Asistente para consultas.
-
Como no puede hacer nada con un cuadro de diálogo del Asistente para consultas vacío, haga clic en Cancelar. Excel muestra una advertencia que le pregunta si desea permanecer en Microsoft Query.
-
Haga clic en Sí. Excel muestra el cuadro de diálogo Agregar tabla.
-
Con los controles del cuadro de diálogo, busque y seleccione su archivo CSV.
-
Haga clic en el botón Agregar. Excel parece que no hace nada, pero en realidad agregó la referencia al archivo CSV.
-
Haga clic en el botón Cerrar para cerrar el cuadro de diálogo Agregar tabla. Su archivo CSV se muestra en la ventana de Microsoft Query.
-
Usando la lista de campos para el archivo CSV, arrastre cada campo que desee importar a la hoja de trabajo al área inferior de la ventana de Microsoft Query. (Si desea todos los campos, simplemente arrastre el asterisco al área inferior de la ventana).
-
Haga clic en Criterios | Agregar criterios. Excel muestra el cuadro de diálogo Agregar criterios. (Vea la figura 3.)
-
Con los controles del cuadro de diálogo, especifique que desea que el campo 5 (cualquiera que sea su nombre) sea igual a «y».
-
Haga clic en el botón Agregar para agregar los criterios a la consulta.
-
Haga clic en Cerrar para cerrar el cuadro de diálogo Agregar criterios.
-
Haga clic en Archivo | Devolver datos a Microsoft Excel. Excel muestra el cuadro de diálogo Importar datos. (Consulte la figura 4.)
-
Cambie la configuración en el cuadro de diálogo, según desee, para indicar cómo desea que se devuelvan los datos CSV a Excel.
-
Haga clic en Aceptar.
(Le dije que los pasos eran largos). Ahora puede trabajar con los datos en Excel y, si lo desea, usar las herramientas en la pestaña Diseño de la cinta para actualizar los datos del archivo CSV.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (10384) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.