Как удалить запрос в эксель

Обновлено: 02.07.2024

Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.

Способ первый:
Использовать встроенное средство Excel - фильтр. Сначала его необходимо "установить" на листе:

  • Выделяем таблицу с данными, включая заголовки. Если их нет - то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
  • устанавливаем фильтр:
    • для Excel 2003 : Данные-Фильтр-Автофильтр
    • для Excel 2007-2010 : вкладка Данные (Data) -Фильтр (Filter)(или вкладка Главная (Home) -Сортировка и фильтр (Sort&Filter) -Фильтр (Filter) )

    Теперь выбираем условие для фильтра:

    • в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие("равно", "содержит", "начинается с" и т.д.), а напротив значение в соответствии с условием.
    • Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме

    После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк - все?! Как избежать.


    Способ второй:
    применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.

    Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
    Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
    If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
    вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
    Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска "отчет", то будут удалены все строки, в которых встречается это слово("квартальный отчет", "отчет за месяц" и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:

    Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( Cells(li, lCol) = sSubStr ) с равно на неравенство( Cells(li, lCol) <> sSubStr ) и тогда удаляться будут строки, значения ячеек которых не равно указанному.

    УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
    Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
    Значения, которые необходимо найти и удалить перечисляются на листе с именем "Лист2". Т.е. указав на "Лист2" в столбце А(начиная с первой строки) несколько значений - они все будут удалены. Если лист называется иначе(скажем "Соответствия") в коде необходимо будет "Лист2" заменить на "Соответствия". Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.

    Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано "Привет, как дела?", а в списке есть слово "привет" - надо удалить, т.к. есть слово "привет"), то надо строку:

    If CStr(arr(li, 1)) = sSubStr Then

    заменить на такую:

    If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

    УДАЛЕНИЕ ИЗ ЛИСТА СТРОК, КОТОРЫХ НЕТ В СПИСКЕ ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
    Т.к. в последнее время стало поступать все больше и больше вопросов как не удалять значения по списку, а наоборот - оставить в таблице только те значения, которые перечислены в списке - решил дополнить статью и таким кодом.
    Значения, которые необходимо оставить перечисляются на листе с именем "Лист2". Т.е. указав на "Лист2" в столбце А(начиная с первой строки) несколько значений - после работы кода на листе будут оставлены только те строки, в которых присутствует хоть одно из перечисленных в списке значений. Если лист называется иначе(скажем "Соответствия") в коде необходимо будет "Лист2" заменить на "Соответствия". Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
    В отличие от приведенных выше кодов, данный код ориентирован на то, что значения в списке указаны не полностью. Т.е. если необходимо оставить только те ячейки, в которых встречается слово "активы", то в списке надо указать только это слово. В этом случае если в ячейке будет записана фраза "Нематериальные активы" или "Активы сторонние" - эти ячейки не будут удалены, т.к. в них встречается слово "активы". Регистр букв при этом неважен.

    Чтобы код выше сравнивал значения таблицы со значениями списка по точному совпадению слов, а не по частичному, то надо строку:

    If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

    заменить на такую:

    If CStr(arr(li, 1)) = sSubStr Then

    Для всех приведенных кодов можно строки не удалять, а скрывать. Для этого надо строку:

    If Not rr Is Nothing Then rr.EntireRow.Delete

    заменить на такую:

    If Not rr Is Nothing Then rr.EntireRow.Hidden = True

    По умолчанию все коды начинают просмотр строк с первой по последнюю заполненную на листе. И если необходимо удалять строки не с первой или не по последнюю, то надо внести корректировки в эту строку:

    For li = 1 To lLastRow 'цикл с первой строки до конца

    1 - это первая строка; lLastRow - определяется автоматически кодом и равна номеру последней заполненной строки на листе. Если надо начать удалять строки только с 7-ой строки(например, в первых 6-ти шапка), то код будет выглядеть так:

    Совет Чтобы упросить, сформированы ли данные на этом плане с помощью Power Query, выберем ячейку с данными и, если появится вкладка ленты Контекст запроса, данные будут загружены из Power Query.

    Выбор ячейки в запросе для вкладки "Запрос"

    Знать, в какой среде вы сейчас? Power Query хорошо интегрирован с пользовательским интерфейсом Excel, особенно при импорте данных, работе с подключениями и редактировании таблиц, Excel таблиц и именовых диапазонов. Чтобы избежать путаницы, важно знать, в какой среде вы находитесь, в какой Excel или Power Query в любой момент времени.

    Знакомые Excel, лента и сетка

    Лента редактора Power Query и предварительный просмотр данных

    Например, работа с данными на Excel значительно отличается от Power Query. Кроме того, подключенные данные, которые вы видите на Excel, могут не работать с Power Query для их обработки. Это происходит только при загрузке данных на таблицу или модель данных из Power Query.

    Переименование я вкладок на таблицах Ямы лучше переименовывать по своему смыслу, особенно если их много. Особенно важно пояснить разницу между данными и данными, загруженными из редактора Power Query. Даже если у вас всего два листа: с таблицей Excel , которая называется Лист1,и запросом, созданным путем импорта таблицы Excel Таблица1,ее можно легко запутать. Всегда имеет смысл изменить названия ярлыков по умолчанию на более понятное. Например, переименуйте Лист1 в Таблицу данных и Таблицу1 в Таблицу запросов. Теперь понятно, какая вкладка с данными, а какая вкладка с запросом.

    Вы можете создать запрос из импортируемых данных или пустой запрос.

    Создание запроса из импортируемых данных

    Это самый распространенный способ создания запроса.

    Выберем ячейку в данных и выберите запрос> Изменить.

    Создание пустого запроса

    Вы можете начать с нуля. Это можно сделать двумя способами.

    Выберите Данные> Получить данные >из других источников > пустой запрос.

    Выберите Данные> получить данные >запустить редактор Power Query.

    На этом этапе вы можете вручную добавлять шаги и формулы, если язык формул Power Query M хорошо разный.

    Кроме того, можно выбрать команду На главная в группе Новый запрос. Выполните одно из указанных ниже действий.

    Выберите Новый источник, чтобы добавить источник данных. Эта команда выглядит так же, как> "Получить данные" на Excel ленте.

    Выберите Последние источники, чтобы выбрать источник данных, с помощью который вы работали. Эта команда выглядит так же, как> последние источники на Excel ленте.

    Чтобы ввести данные вручную, выберите Ввести данные. Вы можете выбрать эту команду, чтобы попробовать редактор Power Query независимо от внешнего источника данных.

    Предположим, что запрос действителен и не имеет ошибок, его можно загрузить обратно на таблицу или в модель данных.

    Загрузка запроса из редактора Power Query

    В редакторе Power Query сделайте следующее:

    Чтобы загрузить на таблицу, выберите Главная> Закрыть & Загрузить > Закрыть & загрузить.

    Чтобы загрузить данные в модель данных, выберите Главная > закрыть & Загрузить > Закрыть & Загрузить в.

    В диалоговом окне Импорт данных выберите добавить эти данные в модельданных.

    Совет Иногда команда "Загрузить в" неатривна или отключена. Это может произойти при первом создании запроса в книге. В этом случае нажмите кнопку Закрыть & Загрузить, на новом > запросы данных & Connections > Запросы, щелкните запрос правой кнопкой мыши и выберите загрузить в . Кроме того, на ленте редактора Power Query выберите Запрос > Загрузить в.

    Загрузка запроса из области "Запросы и подключения"

    В Excel может потребоваться загрузить запрос на другой таблицу или в модель данных.

    В Excel выберите Запросы> запросы & Connections, а затем выберите вкладку Запросы.

    В списке запросов найдите запрос, щелкните его правой кнопкой мыши и выберите загрузить в. Появится диалоговое окно Импорт данных.

    Выберите, как вы хотите импортировать данные, а затем выберите ОК. Чтобы получить дополнительные сведения об использовании этого диалогового окна, выберите знак вопроса (?).

    Существует несколько способов редактирования запроса, загруженного на таблицу.

    Изменение запроса на Excel данных

    Чтобы изменить запрос, найдите ранее загруженную из редактора Power Query, выберем ячейку в данных и выберите запрос> Изменить.

    Изменение запроса в области "Запросы & подключения"

    Возможно, вы & области "Запросы и подключения" удобнее всего использовать, если в одной книге много запросов и вы хотите быстро найти их.

    В Excel выберите Запросы> запросы & Connections, а затем выберите вкладку Запросы.

    В списке запросов найдите запрос, щелкните его правой кнопкой мыши и выберите изменить.

    Изменение запроса в диалоговом окне "Свойства запроса"

    В Excel выберите Data > Data & Connections > Запросы, щелкните запрос правой кнопкой мыши и выберите Свойства ,выберите вкладку Определение в диалоговом окне Свойства и нажмите кнопку Изменить запрос.

    Совет Если вы работаете с запросом на > данных, в диалоговом окнеСвойства выберите вкладку Определение, а затем — Изменить запрос.

    Модель данных обычно содержит несколько таблиц, расположенных в связи. Запрос загружается в модель данных с помощью команды Загрузить, чтобы отобразить диалоговое окно Импорт данных, а затем в поле Добавить эти данные в режим данныхl. Дополнительные сведения о моделях данных см. в дополнительных сведениях о том, какие источники данных используются в модели данных книги,Создание модели данных в Excelи Создание таблиц с помощью нескольких таблиц.

    Чтобы открыть модель данных, выберите Power Pivot > Управление.

    В нижней части окна Power Pivot выберите вкладку нужной таблицы.

    Подтвердим, что отображается правильная таблица. Модель данных может иметь много таблиц.

    Обратите внимание на имя таблицы.

    Чтобы закрыть окно Power Pivot, выберите файл> Закрыть. Чтобы освободить память, может потребоваться несколько секунд.

    Выберите > подключения & свойства >Запросы, щелкните запрос правой кнопкой мыши и выберите изменить.

    Завершив внесение изменений в редакторе Power Query, выберите файл> Закрыть & загрузить.

    Запрос на этом и в таблице в модели данных обновляются.

    Загрузка запроса в модель данных занимает необычно много времени

    Если вы заметили, что загрузка запроса в модель данных занимает намного больше времени, чем загрузка на лист, проверьте действия Power Query, чтобы узнать, фильтруется ли текстовый столбец или структурированный столбец списка с помощью оператора Contains. Это действие приводит Excel повторно прогонять весь набор данных для каждой строки. Более того, Excel не могут эффективно использовать многопрочитанные выполнения. В качестве обходного решения попробуйте использовать другой оператор, например Равно или Начинает с.

    Корпорация Майкрософт знает об этой проблеме и находится в стадии исследования.

    Вы можете загрузить Power Query:

    На один из них. В редакторе Power Query выберите Home> Close & Load > Close & Load (&).

    В модель данных. В редакторе Power Query выберите Home> Close & Load > Close & Load To.

    По умолчанию Power Query загружает запросы на новый таблицу при загрузке одного запроса и одновременно загружает несколько запросов в модель данных. Вы можете изменить поведение по умолчанию для всех книг или только текущей книги. При настройке этих параметров Power Query не меняет результаты запроса на месте или в данных модели данных и примечаниях.

    Вы также можете динамически переопределять стандартные параметры запроса с помощью диалогового окна Импорт, которое отображается после выбора параметра Закрыть & Загрузкав.

    Глобальные параметры, которые применяются во всех книгах

    В редакторе Power Query выберите Параметры > параметры и параметры >запроса.

    В диалоговом окне Параметры запроса в левой части в разделе GLOBAL выберите Загрузка данных.

    В разделе Загрузка запроса Параметры по умолчанию сделайте следующее:

    Выберите Использовать стандартные параметры загрузки.

    Выберите Указать настраиваемые параметры загрузкипо умолчанию , а затем выберите или сберем загрузить на таблицу или Загрузить в модель данных.

    Совет В нижней части диалогового окна можно выбрать восстановить параметры по умолчанию, чтобы вернуться к настройкам по умолчанию.

    Параметры книги, которые применяются только к текущей книге

    В диалоговом окне Параметры запроса в левой части в разделе ТЕКУЩАЯ КНИГА выберите Загрузка данных.

    Выполните одно или несколько из указанных ниже действий:

    В области Обнаружение типоввыберите или сберем для обнаружения типов столбцов и их заглавных колонок для неструктурированных источников.

    По умолчанию они обнаруживаются. Если вы предпочитаете формировать данные самостоятельно, отоставьте этот параметр.

    В области Связивыберите или сберем создать связи между таблицами при первом добавлении в модель данных.

    По умолчанию перед загрузкой в модель данных можно найти существующие связи между таблицами, например внешние ключи в реляционной базе данных, и импортировать их вместе с данными. Если вы предпочитаете делать это самостоятельно, сделайте это самостоятельно.

    В области Связивыберите или отоберете update relationships when refreshing queries loaded to the Data Model (Связи) при обновлении запросов, загруженных в модель данных.

    По умолчанию отношения не обновляются. При обновлении запросов, уже загруженных в модель данных, Power Query находит существующие связи между таблицами, например внешние ключи, в реляционной базе данных и обновляет их. Это может привести к удалению связей, созданных вручную после импорта данных, или к новым связям. Тем не менее, если вы хотите сделать это, выберите этот параметр.

    В области Фоновыеданные выберите или отпустите разрешение предварительного просмотра данных для скачивания в фоновом режиме.

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

    См. также

    Excel для Интернета включает в себя технологию Power Query (также называемую функцией & преобразования), которая обеспечивает больше возможностей при работе с импортируемыми источниками данных. Вы можете просматривать запросы и связанные с ними сведения в области задач Запросы.

    Примечание: Следите за дальнейшими объявлениями об улучшениях Excel интеграции с Веб-сайтом и Power Query.

    Просмотр области задач "Запросы"

    Убедитесь, что вы в режиме правки (выберите Просмотр> редактирование).

    Выберите Запросы > данных.

    Excel отображает области задач Запросы и все запросы в текущей книге, а также сведения о запросе, такие как количество строк, дата последнего обновления, расположение и состояние загрузки. Если запрос загружается в модель данных, а не в сетку, Excel отображается "Только подключение".

    Читайте также: