Импорт подмножества записей

Гордон задается вопросом, как он может импортировать подмножество текстового файла в Excel в зависимости от значения конкретного поля. Например, он может захотеть импортировать только те записи, которые содержат «y» в столбце 5 каждой записи в текстовом файле.

Есть несколько способов подойти к этой задаче. Во-первых, вы можете просто импортировать весь текстовый файл, отсортировать записи и удалить те, которые вам не нужны. Это, пожалуй, самый простой вариант, если вам нужно обработать только один файл и весь файл может поместиться на одном рабочем листе.

Другой подход – использовать макрос. (Это тот, который я считаю самым быстрым и простым, особенно если вам нужно немного импортировать один и тот же тип файла.) Макрос может открыть текстовый файл, прочитать каждую строку, а затем определить, является ли информация в этой строке должна быть добавлена ​​в рабочий лист или нет. Вот пример, который открывает файл с именем «MyCSVFile.txt», а затем вставляет данные в новый рабочий лист, начиная с первой строки.

 Sub ReadMyFile () Dim R As Integer Dim C As Integer  Dim sDelim As String Dim sRaw As String Dim ReadArray () As String sDelim = "," 'Установить в vbTab, если разделенный табуляцией файл Worksheets.Add Открыть "myCSVFile.txt" для ввода как # 1 R = 1 Не выполнять, пока не EOF (  1) Линейный ввод №1, sRaw ReadArray () = Split (sRaw, sDelim, 20, vbTextCompare) Если ReadArray (4) = "y", то для C = 0 В ячейки UBound (ReadArray) (R, C + 1).  Value = ReadArray (C) Next CR = R + 1 End If Loop Close # 1End Sub 

Чтобы использовать макрос, просто измените имя файла, чтобы оно соответствовало файлу, который вы хотите обработать. Вы также захотите изменить переменную sDelim, чтобы убедиться, что она соответствует тому, что используется в качестве разделителя в ваших записях. Как написано, предполагается, что разделитель – это запятая (которая будет в файле CSV), но вы можете изменить его на vbTab, если вы действительно работаете с файлом с разделителями табуляции. После завершения макроса на новом листе будут только те записи, которые содержат один строчный символ «y».

Другой подход – использовать функцию Power Query в Excel. Это бесплатная надстройка от Microsoft, доступная для некоторых вариантов Excel 2010 и Excel 2013. Вы можете загрузить (и узнать, какие варианты поддерживаются) по следующему адресу:

 http  ://www.microsoft.com/en-us/download/details.aspx? id = 39379 

Если вы используете Excel 2016, то Power Query встроен в программу. Если у вас установлен или доступен Power Query в вашей версии Excel, и эта версия Excel является Excel 2010 или Excel 2013, выполните следующие действия:

  1. Отобразите Power Query вкладки ленты.
  2. Щелкните “Из файла” | Из CSV. Excel отображает диалоговое окно “Обзор значений, разделенных запятыми”, которое очень похоже на стандартное диалоговое окно “Открыть”.
  3. Найдите и выберите файл CSV, который нужно импортировать в Excel.
  4. Нажмите “Открыть”. Excel загружает данные в окно Power Query с кнопками фильтрации, доступными для каждого поля.

Если вы используете Excel 2016 или более позднюю версию, шаги немного отличаются:

  1. Отобразить вкладку «Данные» на ленте.
  2. Щелкните инструмент «Новый запрос» (Excel 2016) или инструмент «Получить данные» (более поздние версии Excel) в группа “Получить и преобразовать”. Excel отображает некоторые параметры.
  3. Щелкните “Из файла” | Из текста/CSV. В Excel отображается диалоговое окно «Импорт данных», которое очень похоже на стандартное диалоговое окно «Открыть».
  4. Найдите и выберите файл CSV, который нужно импортировать в Excel.
  5. Щелкните “Открыть”. Excel загружает данные в окно Power Query с кнопками фильтрации, доступными для каждого поля.

На этом этапе, независимо от версии Excel, которую вы используете, вы можете использовать элементы управления для указать запрос (то есть установить определение того, какие записи должны быть импортированы). При нажатии кнопки «Закрыть и загрузить» записи извлекаются из файла, и запрос может быть сохранен для использования в будущем.

Четвертый подход – использовать Microsoft Query. Для этого вам нужно будет выполнить эту очень длинную серию шагов. (Никто никогда не говорил, что Microsoft хочет упростить использование Microsoft Query, и вы согласитесь с этим после выполнения этих шагов.)

  1. Отображение вкладки «Данные» на ленте.
  2. Щелкните инструмент «Получить данные» в группе «Получить и преобразовать данные», затем выберите «Из других источников» (в группе «Получить внешние данные» в более ранних версиях Excel), а затем выберите «Из Microsoft Query». Excel отображает диалоговое окно «Выбор источника данных». (См. Рис. 1.)
  3. Рисунок 1. Диалоговое окно «Выбор источника данных».

  4. Выберите параметр «Новый источник данных» и нажмите «ОК». Excel отображает диалоговое окно «Создать новый источник данных». (См. Рис. 2.)
  5. Рис. 2. Диалоговое окно «Создание нового источника данных».

  6. Укажите имя для источника данных, например «Файлы CSV».
  7. Использование в раскрывающемся списке для пункта 2 выберите Microsoft Text Driver.
  8. Нажмите “Подключиться”. В Excel отображается диалоговое окно «Настройка текста ODBC».
  9. Немедленно нажмите кнопку «ОК», чтобы закрыть диалоговое окно.
  10. Нажмите кнопку «ОК», чтобы закрыть диалоговое окно «Создание нового источника данных». Excel обновит диалоговое окно «Выбор источника данных», включив в него имя, указанное на шаге 4.
  11. Выберите только что созданный источник данных и нажмите кнопку «ОК». Excel отображает предупреждение о том, что в источнике нет таблиц данных. (Это нормально; вы ничего не определили.)
  12. Щелкните OK, чтобы закрыть предупреждение. Excel отображает диалоговое окно мастера запросов.
  13. Поскольку вы ничего не можете сделать с пустым диалоговым окном мастера запросов, нажмите кнопку «Отмена». Excel отображает предупреждение с вопросом, хотите ли вы остаться в Microsoft Query.
  14. Нажмите “Да”. Excel отображает диалоговое окно Добавить таблицу.
  15. Используя элементы управления в диалоговом окне, найдите и выберите файл CSV.
  16. Нажмите кнопку “Добавить”. Похоже, что Excel ничего не делает, но фактически добавил ссылку на файл CSV.
  17. Нажмите кнопку «Закрыть», чтобы закрыть диалоговое окно «Добавить таблицу». Ваш CSV-файл отображается в окне Microsoft Query.
  18. Используя список полей для CSV-файла, перетащите каждое поле, которое вы хотите импортировать, на рабочий лист в нижнюю область окна Microsoft Query. (Если вам нужны все поля, просто перетащите звездочку в нижнюю часть окна.)
  19. Щелкните Критерии | Добавить критерии. Excel отображает диалоговое окно «Добавить критерии». (См. Рис. 3.)
  20. Рисунок 3. Диалоговое окно «Добавить критерии».

  21. Используя элементы управления в диалоговом окне, укажите, что вы хотите, чтобы поле 5 (независимо от его имени) было равно «y».
  22. Нажмите кнопку “Добавить”, чтобы добавить критерии в запрос.
  23. Нажмите “Закрыть”, чтобы закрыть диалоговое окно “Добавить критерии”.
  24. Щелкните Файл | Вернуть данные в Microsoft Excel. Excel отображает диалоговое окно «Импорт данных». (См. Рис. 4.)
  25. Рис. 4. Диалоговое окно «Импорт данных».

  26. При необходимости измените настройки в диалоговом окне, чтобы указать, как вы хотите, чтобы данные CSV возвращались в Excel.
  27. Нажмите OK.

(Сказал, что шаги были длинными.) Теперь вы можете работать с данными в Excel и, при желании, использовать инструменты на вкладке «Дизайн» ленты, чтобы обновить данные из файла CSV.

Оцените статью
Frestage.ru
Добавить комментарий