Фильтр при ссылки excel

Если для фильтрации данных требуются сложные условия (например, Тип = «Фрукты» ИЛИ Продавец = «Егоров»), можно использовать диалоговое окно Расширенный фильтр.

Чтобы открыть диалоговое окно Расширенный фильтр, щелкните Данные > Дополнительно.

Группа ''Сортировка и фильтр'' на вкладке ''Данные''

Расширенный фильтр

Пример

Обзор расширенных условий фильтра

Несколько условий, один столбец, любое из условий истинно

Продавец = «Егоров» ИЛИ Продавец = «Грачев»

Несколько условий, несколько столбцов, все условия истинны

Тип = «Фрукты» И Продажи > 1000

Несколько условий, несколько столбцов, любое из условий истинно

Тип = «Фрукты» ИЛИ Продавец = «Грачев»

Несколько наборов условий, один столбец во всех наборах

(Продажи > 6000 И Продажи < 6500) ИЛИ (Продажи < 500)

Несколько наборов условий, несколько столбцов в каждом наборе

(Продавец = «Егоров» И Продажи >3000) ИЛИ
(Продавец = «Грачев» И Продажи > 1500)

Условия с подстановочными знаками

Продавец = имя со второй буквой «г»

Обзор расширенных условий фильтра

Действие команды Дополнительно отличается от действия команды Фильтр в некоторых важных аспектах.

  • Она отображает диалоговое окно Расширенный фильтр, а не меню «Автофильтр».

  • Вы вводите расширенные условия в отдельном диапазоне условий на листе над диапазоном ячеек или таблицей, которую нужно отфильтровать. В качестве источника расширенных условий в Microsoft Office Excel используется отдельный диапазон условий в диалоговом окне Расширенный фильтр.

Образец данных

Этот пример данных используется для всех процедур, описанных в этой статье.

Эти данные включают четыре пустые строки над диапазоном списка, которые будут использоваться как диапазон условий (A1:C4) и диапазон списка (A6:C10). Диапазон условий содержит названия столбцов и по крайней мере одну пустую строку между значениями условий и диапазоном списка.

Для работы с этими данными выделите их в следующей таблице, скопируйте, а затем вставьте в ячейку A1 на новом листе Excel.

Тип

Продавец

Продажи

Тип

Продавец

Продажи

Напитки

Шашков

5 122 ₽

Мясо

Егоров

450 ₽

фрукты

Грачев

6328 ₽

Фрукты

Егоров

6544 ₽

Операторы сравнения

Операторы сравнения используются для сравнения двух значений. Результатом сравнения является логическое значение: ИСТИНА либо ЛОЖЬ.

Оператор сравнения

Значение

Пример

= (знак равенства)

Равно

A1=B1

> (знак «больше»)

Больше

A1>B1

< (знак «меньше»)

Меньше

A1<B1

>= (знак «больше или равно»)

Больше или равно

A1>=B1

<= (знак «меньше или равно»)

Меньше или равно

A1<=B1

<> (знак «не равно»)

Не равно

A1<>B1

Использование знака равенства для ввода текста или значения

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

=»=
ввод
»

где ввод — искомый текст или значение. Например:

Вводится в ячейку

Вычисляется и отображается

=»=Егоров»

=Егоров

=»=3000″

=3000

Учет регистра

При фильтрации текстовых данных в Excel не учитывается регистр букв. Однако для поиска с учетом регистра можно воспользоваться формулой. Пример см. в разделе Условия с подстановочными знаками.

Использование заранее определенных имен

Вы можете назвать диапазон Условия, и ссылка на диапазон автоматически появится в поле Диапазон условий. Вы также можете указать имя База данных для диапазона списка, который будет фильтроваться, и имя Извлечение для области, в которой вы собираетесь вставлять строки. Эти диапазоны автоматически появятся в полях Исходный диапазон и Поместить результат в диапазон соответственно.

Создание условий с помощью формулы

В качестве условия можно использовать значение, вычисленное с помощью формулы. Обратите внимание на важные моменты, указанные ниже.

  • Формула должна возвращать результат ИСТИНА или ЛОЖЬ.

  • Поскольку используется формула, введенное строковое выражение должно иметь обычный вид, а не тот, который показан ниже:

    =»=
    ввод
    »

  • Не используйте название столбца в качестве названия условия. Либо оставьте название условия пустым, либо используйте название, не являющееся названием столбца в диапазоне списка (в последующих примерах: «Среднее арифметическое» и «Точное совпадение»).

    Если в формуле используется название столбца, а не относительная ссылка на ячейку или имя диапазона, в ячейке с условием будет выведено значение ошибки #ИМЯ? или #ЗНАЧ!. Эту ошибку можно проигнорировать, поскольку она не влияет на фильтрацию диапазона списка.

  • В формуле, которая используется для условий, необходимо использовать относительную ссылку для ссылки на соответствующую ячейку в первой строке данных.

  • Все остальные ссылки в формуле должны быть абсолютными.

Несколько условий, один столбец, любое из условий истинно

Логическое выражение:    (Продавец = «Егоров» ИЛИ Продавец = «Грачев»)

  1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.

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

    Тип

    Продавец

    Продажи

    =»=Егоров»

    =»=Грачев»

  3. Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.

  4. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  5. Выполните одно из следующих действий:

    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.

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

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

  6. В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3.

    Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно Изображение кнопки.

  7. Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

    Тип

    Продавец

    Продажи

    Мясо

    Егоров

    450 ₽

    фрукты

    Грачев

    6 328 ₽

    Фрукты

    Егоров

    6 544 ₽

Несколько условий, несколько столбцов, все условия истинны

Логическое выражение:    (Тип = «Фрукты» И Продажи > 1000)

  1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.

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

    Тип

    Продавец

    Продажи

    =»=Фрукты»

    >1 000

  3. Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.

  4. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  5. Выполните одно из следующих действий:

    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.

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

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

  6. В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$2.

    Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно Изображение кнопки.

  7. Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

    Тип

    Продавец

    Продажи

    фрукты

    Грачев

    6 328 ₽

    Фрукты

    Егоров

    6 544 ₽

Несколько условий, несколько столбцов, любое из условий истинно

Логическое выражение:     (Тип = «Фрукты» ИЛИ Продавец = «Грачев»)

  1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.

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

    Тип

    Продавец

    Продажи

    =»=Фрукты»

    =»=Грачев»

  3. Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

  4. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  5. Выполните одно из следующих действий:

    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.

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

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

  6. В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.

    Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно Изображение кнопки.

  7. Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

    Тип

    Продавец

    Продажи

    фрукты

    Грачев

    6 328 ₽

    Фрукты

    Егоров

    6 544 ₽

Несколько наборов условий, один столбец во всех наборах

Логическое выражение:     ( (Продажи > 6000 И Продажи < 6500 ) ИЛИ (Продажи < 500) )

  1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.

  2. Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для одного столбца, используйте несколько столбцов с одинаковым заголовком. Используя пример, введите:

    Тип

    Продавец

    Продажи

    Продажи

    >6 000

    <6 500

    <500

  3. Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

  4. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  5. Выполните одно из следующих действий:

    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.

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

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

  6. В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$D$3.

    Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно Изображение кнопки.

  7. Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

    Тип

    Продавец

    Продажи

    Мясо

    Егоров

    450 ₽

    фрукты

    Грачев

    6 328 ₽

Несколько наборов условий, несколько столбцов в каждом наборе

Логическое выражение:    ( (Продавец = «Егоров» И Продажи > 3000) ИЛИ (Продавец = «Грачев» И Продажи > 1500) )

  1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.

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

    Тип

    Продавец

    Продажи

    =»=Егоров»

    >3 000

    =»=Грачев»

    >1 500

  3. Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

  4. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  5. Выполните одно из следующих действий:

    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.

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

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

  6. В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3. Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно Изображение кнопки.

  7. Используя пример, получим следующий отфильтрованный результат для диапазона списка:

    Тип

    Продавец

    Продажи

    фрукты

    Грачев

    6 328 ₽

    Фрукты

    Егоров

    6 544 ₽

Условия с подстановочными знаками

Логическое выражение:    Продавец = имя со второй буквой «г»

  1. Чтобы найти текстовые значения с совпадающими знаками в некоторых из позиций, выполните одно или несколько действий, описанных ниже.

    • Чтобы найти строки, в которых текстовое значение в столбце начинается с определенной последовательности знаков, введите эти знаки, не используя знак равенства (=). Например, если ввести условие Бел, будут найдены строки с ячейками, содержащими слова «Белов», «Беляков» и «Белугин».

    • Воспользуйтесь подстановочными знаками.

      Используйте

      Чтобы найти

      ? (вопросительный знак)

      Любой символ (один)
      Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»

      * (звездочка)

      Любое количество символов
      Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»

      ~ (тильда), за которой следует ?, * или ~

      Вопросительный знак, звездочку или тильду
      Пример: условию «ан91~?» соответствует результат «ан91?»

  2. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.

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

    Тип

    Продавец

    Продажи

    =»=Мя*»

    =»=?г*»

  4. Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

  5. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  6. Выполните одно из следующих действий:

    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте

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

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

  7. В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.

    Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно Изображение кнопки.

  8. Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

    Тип

    Продавец

    Продажи

    Напитки

    Шашков

    5 122 ₽

    Мясо

    Егоров

    450 ₽

    фрукты

    Грачев

    6 328 ₽

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Гиперссылка плюс фильтр: два в одном.

Автор Лена21, 19.06.2013, 11:32

« назад — далее »

Здравствуйте.

У меня не получается решить в MsExcel следующий вопрос:

чтобы при нажатии на гиперссылку переходило на определенный лист в этой же книге (это вроде легко, у меня получилось) и главное — чтобы отображались не все строчки, а только отфильтрованные по определенному условию (например,  столбец А = «Магазин1»).

Можно ли организовать такой переход, используя только функцию «Гиперссылка» (либо другие функции), или же нужно использовать макросы?

Спасибо.

P.S. Извините за тупое название темы. Это первое, что пришло в голову.


Вот такой однострочный макрос решает задачу:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    ActiveSheet.Range("магазины").AutoFilter 1, Target.TextToDisplay
End Sub

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

Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли


Спасибо вам.
Это вроде то, что нужно. Намного удобнее, чем с присваивать макросы кнопкам.
И главный вопрос: как этот макрос перенести в свой документ?
Если простым копированием, то при запуске весь мой лист становится чистым.


Кажется, получается!
Простым перенесением кусков своего документа в ваш!
Спасибо еще раз.


Пожалуйста.
Макрос находится в модуле листа. Он вызывается по событию: переход по любой ссылке. Реакцию на другие события можно назначить, выбрав интересующее из списка доступных процедур (см. скрин).

Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли


Дабы не создавать новую тему оживлю эту, потому что задача похожая.
1. Есть исходные данные — перечень транзакций, у каждой есть признаки «период», «статья», «сумма». В примере они на листе «data»
2. Есть свод, который формируется по периодам и статьям, то есть суммирует все значения «сумма» для каждой пары «период»-«статья». В примере они на листе «total».

Собственно дальше задача: каждое значение на листе «total» должно быть гиперссылкой, нажатие на которую перебрасывает на лист «data» и применяет фильтр оставляя только те транзакции, которые сформировали значение (с которого совершен переход).

По сравнению с ранее предложенным решением разница в том, что фильтр должен быть применен не по содержимому текста гиперссылки, которое является динамическим, а по адресу ячейки, с которой совершается перевод. Для целей фильтрации на листе «data» добавлен столбец который определяет, в какую ячейку попадет каждая из транзакций.
Собственно интуиция мне подсказывает, что надо менять куски «ByVal Target As Hyperlink» и/или «Target.TextToDisplay», но на что их менять я не соображу.



  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Гиперссылка плюс фильтр: два в одном.

В Excel вы можете фильтровать данные по определенному тексту, числу или цвету шрифта, цвету фона, но пробовали ли вы когда-нибудь фильтровать все данные с помощью гиперссылок в столбце, как показано ниже? В этой статье я представляю VBA для быстрой фильтрации гиперссылок в Excel.

Фильтровать данные с помощью гиперссылок


Фильтровать данные с помощью гиперссылок

1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, Скопируйте и вставьте приведенный ниже код в Модули окно.

VBA: фильтрация данных с помощью гиперссылок

  Sub HyperPicker()
'UpdatebyExtendoffice20180404
    Dim xRg As Range
    Dim xCell As Range
    On Error Resume Next
    Set xRg = Application.InputBox("Select a column:", "Kutools for Excel", Selection.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    For Each xCell In xRg
        If xCell.Hyperlinks.Count = 0 Then
            xCell.EntireRow.Hidden = True
        End If
    Next
End Sub

doc filter hyperlink 3

3. Press F5 key to select a column to filter.

4. Click OK, only the hyperlinks are displayed.
doc filter hyperlink 4


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails…
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns… Prevent Duplicate Cells; Compare Ranges
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select…
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more…
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic…
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF
  • More than 300 powerful features. Supports Office / Excel 2007-2021 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.

kte tab 201905

Read More… Free Download… Purchase… 


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!

officetab bottom

Read More… Free Download… Purchase… 

Comments (1)


No ratings yet. Be the first to rate!

Здравствуйте!
Столкнулся с такой задачей.
На листе «Исполнение договоров» есть столбцы ИД и КСГ. В них планируется сделать гиперссылки на соседние листы таким образом, что когда нажимаешь к примеру на 41N18D-10UHG-375-HS изм.2 в столбце ИД — открывается отфильтрованный список по этому наименованию на листе с Исходными данными, а если нажать на гиперссылку в КСГ с таким же наименованием 41N18D-10UHG-375-HS изм.2 — открывается отфильтрованный список на листе «Изготовление и поставка».

По первой задаче с ИД я нашел решение, вставив вот такой код в VBA:

[vba]

Код

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    ActiveSheet.Range(«ИД»).AutoFilter 2, Target.TextToDisplay
End Sub

[/vba]

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

Буду очень признателен за помощь и ценный совет!
Заранее спасибо!)

 

алекс

Пользователь

Сообщений: 18
Регистрация: 04.10.2021

Добрый день.
Подскажите пол можно ли создать гиперссылку из ячейки в таблице(на листе2) на таблицу на лист1 чтоб создавался автофильтр на листе 1 в зависимости от выбора условия на листе 2.
пример прилагаю.
К примеру при нажатии на листе 2 на количество отгруженных у контрагента вагонов нужно перейти на лист 1 с созданием фильтра с номерами вагонов которые отгрузил данный клиент в период времени указанный на листе 2(В1, С1). Ни как не могу найти как это сделать, кучу информации пересмотрел в инете… если можно без макросов(у меня МАС и почему то макросы не корректно работают). Спасибо заранее.

Прикрепленные файлы

  • Книга3.xlsx (35.61 КБ)

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

алекс, ну нет управления фильтром через гиперссылку без макросов, нет.

По вопросам из тем форума, личку не читаю.

 

алекс

Пользователь

Сообщений: 18
Регистрация: 04.10.2021

жаль… не поможете с макросом? тяжело у меня с ними…

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

Не совсем понятны критерии, ну даты допустим ок, а остальное? Где данный клиент?

По вопросам из тем форума, личку не читаю.

 

алекс

Пользователь

Сообщений: 18
Регистрация: 04.10.2021

контрагенты это клиенты(1,2,3,4) лист 1 это С, лист 2 это В.
в примере на листе 2 у клиента 1 на станции погрузка москва отгружен 1 вагон( столбец Е). Надо при нажатии на этот 1 (лист 2 столбец Е) вагон чтоб переходил на лист 1 и делал фильтр по клиенту 1 с указанием этого вагона в данный период. В дальнейшем хотелось бы чтоб тоже самое получалось и при нажатии на количество вагонов в подходе, наличии создавался фильтр и чтоб при нажатии на клиента тоже создавался фильтр со всеми вагонами(отгруженными, в подходе и наличии).

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

алекс,  то есть фильтр должен отработать по периоду указанному, только уточните по какому полю, номеру контрагента в строке в которой кликали и видимо с ненулевыми значениями по полу в столбце которого кликали. Так?

Изменено: БМВ24.08.2022 23:17:42

По вопросам из тем форума, личку не читаю.

 

алекс

Пользователь

Сообщений: 18
Регистрация: 04.10.2021

при выборе любого не нулевого значения в таблице на листе 2(B3:G6) фильтр должен быть создан на листе 1 по одному из выбранных полей(на какое ткунули, с учетом наименования клиента) из данных таблицы(на листе 1) учитывая период указанный на листе 2 в ячейках В2(начало периода) и С2(конец периода). Период важен для контрагентов(столбец В лист2), отгружено(столбец Е  лист2), наличие (столбец F лист2), подход (столбец G лист 2).

Прилаживаю пример как хотелось бы чтоб отработал  фильтр на листе 1 если бы ткунули на лист2 ячейку Е3 при периоде с 1.8.22 по 1.9.22

Прикрепленные файлы

  • Книга3.xlsx (35.68 КБ)

Изменено: алекс24.08.2022 23:36:38

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#8

25.08.2022 00:03:21

В модуль листа 2

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("E:G")) Is Nothing Then
    If Target.Row > 2 Then
        If Cells(Target.Row, 2).Value <> "" And Target <> 0 Then
            With Sheets("Ëèñò1")
                On Error Resume Next
                .ShowAllData
                On Error GoTo 0
            With .ListObjects("ÏË").Range
                .AutoFilter Field:=3, Criteria1:=Cells(Target.Row, 2)
                If Not Intersect(Target, Range("E:E")) Is Nothing Then
                    .AutoFilter Field:=9, Criteria1:= _
                ">" & Range("b1").Value2, Operator:=xlAnd, Criteria2:="<" & Range("c1").Value2
                ElseIf Not Intersect(Target, Range("F:F")) Is Nothing Then
                    .AutoFilter Field:=7, Criteria1:=">0"
                    .AutoFilter Field:=9, Criteria1:="="
                    .AutoFilter Field:=16, Criteria1:="="
                ElseIf Not Intersect(Target, Range("G:G")) Is Nothing Then
                    .AutoFilter Field:=5, Criteria1:=">0"
                    .AutoFilter Field:=7, Criteria1:="="
                End If
                End With
                .Activate
            End With
        End If
    End If
End If
End Sub

Двойной клик на ячеке

Изменено: БМВ25.08.2022 00:04:10

По вопросам из тем форума, личку не читаю.

 

New

Пользователь

Сообщений: 4582
Регистрация: 06.01.2013

БМВ, поправь:
1) With Sheets(«Ëèñò1») — тут в кавычках, наверное это Лист1
2) With .ListObjects(«IE»).Range — тут в кавычках, наверное, ПЛ. Там на листе всего одна таблица, поэтому можно просто цифру 1 в скобках написать, чтобы не привязываться к названию таблицы
3)  вот эти 3 строки
               On Error Resume Next
               .ShowAllData
               On Error GoTo 0
можно написать так
   If .FilterMode = True Then .ShowAllData

P.S. Приложу макрос от БМВ в файле

Прикрепленные файлы

  • алекс.xlsm (42.91 КБ)

Изменено: New25.08.2022 01:40:09

 

алекс

Пользователь

Сообщений: 18
Регистрация: 04.10.2021

Спасибо большое Вам, все работает(иногда подтупливает, но это видимо из за МАСа). Скажите а если три таблицы(есть отличия от таблицы на Листе 1) на трех листах и надо создать три таблицы(идентичные как на листе 2) надо создавать для каждой таблицы(как на листе 2) отдельный лист? или можно все уместить на одном листе?

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#11

25.08.2022 07:46:21

Цитата
New написал:
поправь:

не буду :-)
c Filtermode был вариант но не записал и потом не вернул. Мне там многое не нравится. И жесткая привязка столбцам и именам, но городить что-то универсальное и времени и сил не было, да и желания так себе.

Цитата
алекс написал:
иногда подтупливает

в самом макросе тупить нечему.

Про таблици не совсем понятно, вопрос целей и задач по ним.

По вопросам из тем форума, личку не читаю.

 

алекс

Пользователь

Сообщений: 18
Регистрация: 04.10.2021

цели те же самые, из такой же таблицы как на листе 1 формируется таблица как на листе 2, разница в них(в таблицах) что род(модель условно) вагонов другой (для каждого рода на отдельном листе своя таблица с небольшими изменениями(доп поля и столбцы в другом расположении могут быть))

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

Ну чисто по описанию воспроизвести то или иное для других листов в зависимости от данных и ячейки по которй кликали не проблема.

По вопросам из тем форума, личку не читаю.

 

алекс

Пользователь

Сообщений: 18
Регистрация: 04.10.2021

#14

09.11.2022 13:41:22

Цитата
написал:

Цитата
New написал:
поправь:

не буду :-)
c Filtermode был вариант но не записал и потом не вернул. Мне там многое не нравится. И жесткая привязка столбцам и именам, но городить что-то универсальное и времени и сил не было, да и желания так себе.

Цитата
алекс написал:
иногда подтупливает

в самом макросе тупить нечему.

Про таблици не совсем понятно, вопрос целей и задач по ним.

Добрый день. Могу обратиться к Вам в личку для дописали макросов?


Главный недостаток стандартного

фильтра

(

Данные/ Сортировка и фильтр/ Фильтр

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

Алгоритм создания

Расширенного фильтра

прост:

  • Создаем таблицу, к которой будет применяться фильтр (исходная таблица);
  • Создаем табличку с критериями (с условиями отбора);
  • Запускаем

    Расширенный фильтр

    .

Пусть в диапазоне

A

7:С

83

имеется исходная таблица с перечнем товаров, содержащая поля (столбцы)

Товар

,

Количество

и

Цена

(см. файл примера ). Таблица не должна содержать пустых строк и столбцов, иначе

Расширенный фильтр

(да и обычный

Автофильтр

) не будет правильно работать.

Задача 1 (начинается…)

Настроим фильтр для отбора строк, которые содержат в наименовании Товара значения

начинающиеся

со слова

Гвозди

. Этому условию отбора удовлетворяют строки с товарами

гвозди 20 мм

,

Гвозди 10 мм

,

Гвозди 10 мм

и

Гвозди

.

Табличку с условием отбора разместим разместим в диапазоне

А

1

:А2

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

А2

укажем слово

Гвозди

.


Примечание

: Структура критериев у

Расширенного фильтра

четко определена и она совпадает со структурой критериев для функций БДСУММ() , БСЧЁТ() и др.

Обычно критерии

Расширенного фильтра

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


ВНИМАНИЕ!

Убедитесь, что между табличкой со значениями условий отбора и исходной таблицей имеется, по крайней мере, одна пустая строка (это облегчит работу с

Расширенным фильтром

).

Теперь все подготовлено для работы с

Расширенным фильтром:

  • выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
  • вызовите

    Расширенный фильтр

    ( Данные/ Сортировка и фильтр/ Дополнительно );
  • в поле

    Исходный диапазон

    убедитесь, что указан диапазон ячеек таблицы вместе с заголовками (

    A

    7:С

    83

    );
  • в поле

    Диапазон условий

    укажите ячейки содержащие табличку с критерием, т.е. диапазон

    А

    1

    :А2

    .

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

Скопировать результат в другое место

. Но мы это здесь делать не будем.

Нажмите кнопку ОК и фильтр будет применен — в таблице останутся только строки содержащие в столбце Товар наименования

гвозди 20 мм

,

Гвозди 10 мм

,

Гвозди 50 мм

и

Гвозди

. Остальные строки будут скрыты.

Номера отобранных строк будут выделены синим шрифтом.

Чтобы отменить действие фильтра выделите любую ячейку таблицы и нажмите

CTRL+SHIFT+L

(к заголовку будет применен

Автофильтр

, а действие

Расширенного фильтра

будет отменено) или нажмите кнопку меню

Очистить

( Данные/ Сортировка и фильтр/ Очистить ).

Задача 2 (точно совпадает)

Настроим фильтр для отбора строк, у которых в столбце Товар

точно

содержится слово

Гвозди

. Этому условию отбора удовлетворяют строки только с товарами

гвозди

и

Гвозди

(

Регистр

не учитывается). Значения

гвозди 20 мм

,

Гвозди 10 мм

,

Гвозди 50 мм

учтены не будут.

Табличку с условием отбора разместим разместим в диапазоне

B1:В2

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

B2

укажем формулу =»=

Гвозди»

.

Теперь все подготовлено для работы с

Расширенным фильтром:

  • выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
  • вызовите

    Расширенный фильтр ( Данные/ Сортировка и фильтр/ Дополнительно );
  • в поле

    Исходный диапазон

    убедитесь, что указан диапазон ячеек таблицы вместе с заголовками (

    A

    7:С

    83

    );
  • в поле

    Диапазон условий

    укажите ячейки содержащие табличку с критерием, т.е. диапазон

    B1

    :B2

    .
  • Нажмите ОК

Применять

Расширенный фильтр

с такими простыми критериями особого смысла нет, т.к. с этими задачами легко справляется

Автофильтр

. Рассмотрим более сложные задачи по фильтрации.

Если в качестве критерия указать не =»=Гвозди» , а просто

Гвозди

, то, будут выведены все записи содержащие наименования

начинающиеся

со слова Гвозди (

Гвозди 80мм

,

Гвозди2

). Чтобы вывести строки с товаром,

содержащие

на слово

гвозди

, например,

Новые гвозди

, необходимо в качестве критерия указать =»=*Гвозди» или просто *

Гвозди, где

* является

подстановочным знаком

и означает любую последовательность символов.

Задача 3 (условие ИЛИ для одного столбца)

Настроим фильтр для отбора строк, у которых в столбце Товар содержится значение начинающееся со слова

Гвозди

ИЛИ

Обои

.

Критерии отбора в этом случае должны размещаться под соответствующим заголовком столбца (

Товар

) и должны располагаться

друг под другом

в одном столбце (см. рисунок ниже). Табличку с критериями размести в диапазоне

С1:С3

.

Окно с параметрами Расширенного фильтра и таблица с отфильтрованными данными будет выглядеть так.

После нажатия ОК будут выведены все записи, содержащие в столбце

Товар

продукцию

Гвозди

ИЛИ

Обои

.

Задача 4 (условие И)

Произведем отбор только тех строк таблицы, которые

точно

содержат в столбце

Товар

продукцию

Гвозди

, а в столбце

Количество

значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться

на одной строке

. Условия отбора должны быть записаны в специальном формате: =»=

Гвозди»

и =»>40″ . Табличку с условием отбора разместим разместим в диапазоне

E1:F2

.

После нажатия кнопки ОК будут выведены все записи содержащие в столбце

Товар

продукцию

Гвозди

с количеством >40.


СОВЕТ:

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


Примечание

: Если пришлось очистить параметры Расширенного фильтра ( Данные/ Сортировка и фильтр/ Очистить ), то перед вызовом фильтра выделите любую ячейку таблицы – EXCEL автоматически вставит ссылку на диапазон занимаемый таблицей (при наличии пустых строк в таблице вставится ссылка не на всю таблицу, а лишь до первой пустой строки).

Задача 5 (условие ИЛИ для разных столбцов)

Предыдущие задачи можно было при желании решить обычным

автофильтром

. Эту же задачу обычным фильтром не решить.

Произведем отбор только тех строк таблицы, которые

точно

содержат в столбце

Товар

продукцию

Гвозди

, ИЛИ которые в столбце

Количество

содержат значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться

на разных строках

. Условия отбора должны быть записаны в специальном формате: =»>40″ и =»=

Гвозди»

. Табличку с условием отбора разместим разместим в диапазоне

E4:F6

.

После нажатия кнопки ОК будут выведены записи содержащие в столбце

Товар

продукцию

Гвозди

ИЛИ значение  >40 (у любого товара).


Задача 6 (Условия отбора, созданные в результате применения формулы)

Настоящая мощь

Расширенного фильтра

проявляется при использовании в качестве условий отбора формул.

Существует две возможности задания условий отбора строк:

  • непосредственно вводить значения для критерия (см. задачи выше);
  • сформировать критерий на основе результатов выполнения формулы.

Рассмотрим критерии задаваемые формулой. Формула, указанная в качестве критерия отбора, должна возвращать результат ИСТИНА или ЛОЖЬ.

Например, отобразим строки, содержащие Товар, который встречается в таблице только 1 раз. Для этого:

  • введем в ячейку

    H2

    формулу =СЧЁТЕСЛИ(Лист1!$A$8:$A$83;A8)=1
  • в

    Н1

    вместо заголовка

    введем поясняющий текст, например,

    Неповторяющиеся значения

    . Поясняющий текст НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.

Применим

Расширенный фильтр

, указав в качестве диапазона условий ячейки

Н1:Н2

.

Обратите внимание на то, что диапазон поиска значений введен с использованием

абсолютных ссылок

, а критерий в функции СЧЁТЕСЛИ() – с относительной ссылкой. Это необходимо, поскольку при применении

Расширенного фильтра

EXCEL увидит, что

А8

— это относительная ссылка и будет перемещаться вниз по столбцу Товар по одной записи за раз и возвращать значение либо ИСТИНА, либо ЛОЖЬ. Если будет возвращено значение ИСТИНА, то соответствующая строка таблицы будет отображена. Если возвращено значение ЛОЖЬ, то строка после применения фильтра отображена не будет.


СОВЕТ:

Для проверки работоспособности формулы можно создать дополнительный столбец рядом с таблицей (например в F) и ввести указанную выше формулу в ячейку F8, а затем скопировать ее вниз. Будет сформирован столбец со значениями ИСТИНА/ЛОЖЬ, который поможет определить как работает ваша формула.

Примеры других формул из файла примера :

  • Вывод строк с ценами больше, чем 3-я по величине цена в таблице. =C8>НАИБОЛЬШИЙ( $С$8:$С$83 ;5) В этом примере четко проявляется коварство функции НАИБОЛЬШИЙ(). Если отсортировать столбец

    С

    (цены), то получим: 750; 700;

    700

    ; 700; 620, 620, 160, … В человеческом понимании «3-ей по величине цене» соответствует 620, а в понимании функции НАИБОЛЬШИЙ() –

    700

    . В итоге, будет выведено не 4 строки, а только одна (750);
  • Вывод строк с учетом РЕгиСТра =СОВПАД(«гвозди»;А8) . Будут выведены только те строки, в которых товар

    гвозди

    введен с использованием строчных букв;
  • Вывод строк, у которых цена выше среднего =С8>СРЗНАЧ($С$8:$С$83) ;


ВНИМАНИЕ!

Применение

Расширенного фильтра

отменяет примененный к таблице фильтр (

Данные/ Сортировка и фильтр/ Фильтр

).

Задача 7 (Условия отбора содержат формулы и обычные критерии)

Рассмотрим теперь другую таблицу из файла примера на листе Задача 7 .

В столбце

Товар

приведено название товара, а в столбце

Тип товара

— его тип.

Задача состоит в том, чтобы для заданного типа товара вывести товары, у которых цена ниже средней. То есть у нас 3 критерия: первый критерий задает Товар, 2-й — его Тип, а 3-й критерий (в виде формулы) задает цену ниже средней.

Критерии разместим в строках 6 и 7. Введем нужные Товар и Тип товара. Для заданного Тип товара вычислим среднее и выведем ее для наглядности в отдельную ячейку F7. В принципе, формулу можно ввести прямо в формулу-критерий в ячейку С7. Поясняющий текст в ячейке над формулой (С6) НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.

Далее действуем как обычно: выделяем любую ячейку таблицы, вызываем

Расширенный фильтр (Advanced Filter)

и указываем диапазон с критериями.

Будут выведены 2 товара из 4-х (заданного типа товара).

В файле примера для удобства использовано

Условное форматирование

: выделяются строки удовлетворяющие первым 2-м критериям (подробнее см. статью

Выделение строк таблицы в MS EXCEL в зависимости от условия в ячейке

).

Задача 7.1. (Совпадают ли 2 значения в одной строке?)

Есть таблица, в которой указаны Год выпуска и Год покупки автомобиля.

Требуется вывести только те строки, в которых Год выпуска совпадает с Годом покупки. Это можно сделать с помощью элементарной формулы =В10=С10 .

Поясняющий текст в ячейке С6 НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.

Задача 8 (Является ли символ числом?)

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

Требуется отфильтровать только те строки, у которых в столбце Товар содержится

Гвозди 1 дюйм

,

Гвозди 2 дюйма

и т.д. товары

Гвозди нержавеющие, Гвозди хромированные

и т.д. не должны быть отфильтрованы.

Проще всего это сделать если в качестве фильтра задать условие, что после слова Гвозди должно идти цифра. Это можно сделать с помощью формулы =ЕЧИСЛО(—ПСТР(A11;ДЛСТР($A$8)+2;1))

Формула вырезает из наименования товара 1 символ после слова Гвозди (с учетом пробела). Если этот символ число (цифра), то формула возвращает ИСТИНА и строка выводится, в противном случае строка не выводится. В столбце F показано как работает формула, т.е. ее можно протестировать до запуска

Расширенного фильтра

.

Задача 9 (Вывести строки, в которых НЕ СОДЕРЖАТСЯ заданные Товары)

Требуется отфильтровать только те строки, у которых в столбце Товар НЕ содержатся:

Гвозди, Доска, Клей, Обои

.

Для этого придется использовать простую формулу =ЕНД(ВПР(A15;$A$8:$A$11;1;0))

Функция ВПР()

ищет в столбце Товар каждой строки наименования товаров, указанных в диапазоне

А8:А11

. Если эти товары НЕ найдены, ВПР() возвращает ошибку #Н/Д, которая обрабатывается

функцией ЕНД()

— в итоге, формула возвращает ИСТИНА и строка выводится.

Вывод уникальных строк

О выводе

уникальных

строк с помощью Расширенного фильтра можно

прочитать в этой статье

.

#Руководства

  • 5 авг 2022

  • 0

Как из сотен строк отобразить только необходимые? Как отфильтровать таблицу сразу по нескольким условиям и столбцам? Разбираемся на примерах.

Иллюстрация: Meery Mary для Skillbox Media

Ксеня Шестак

Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.

Фильтры в Excel — инструмент, с помощью которого из большого объёма информации выбирают и показывают только нужную в данный момент. После фильтрации в таблице отображаются данные, которые соответствуют условиям пользователя. Данные, которые им не соответствуют, скрыты.

В статье разберёмся:

  • как установить фильтр по одному критерию;
  • как установить несколько фильтров одновременно и отфильтровать таблицу по заданному условию;
  • для чего нужен расширенный фильтр и как им пользоваться;
  • как очистить фильтры.

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

Фильтры в Excel работают по тому же принципу. Пользователь выбирает параметры данных, которые ему нужно отобразить, — и Excel убирает из таблицы всё лишнее.

Разберёмся, как это сделать.

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

Таблица, в которой хранятся данные о продажах автосалона
Скриншот: Excel / Skillbox Media

Допустим, нужно показать продажи только одного менеджера — Соколова П. Воспользуемся фильтрацией.

Шаг 1. Выделяем ячейку внутри таблицы — не обязательно ячейку столбца «Менеджер», любую.

Чтобы настроить фильтрацию, выбираем любую ячейку таблицы
Скриншот: Excel / Skillbox Media

Шаг 2. На вкладке «Главная» нажимаем кнопку «Сортировка и фильтр».

Нажимаем кнопку «Сортировка и фильтр»
Скриншот: Excel / Skillbox Media

Шаг 3. В появившемся меню выбираем пункт «Фильтр».

Жмём сюда, чтобы применить фильтрацию ко всем столбцам таблицы
Скриншот: Excel / Skillbox Media

То же самое можно сделать через кнопку «Фильтр» на вкладке «Данные».

Второй способ установить фильтрацию
Скриншот: Excel / Skillbox Media

Шаг 4. В каждой ячейке шапки таблицы появились кнопки со стрелками — нажимаем на кнопку столбца, который нужно отфильтровать. В нашем случае это столбец «Менеджер».

Нажимаем кнопку столбца, который нужно отфильтровать, — появляется меню фильтра
Скриншот: Excel / Skillbox Media

Шаг 5. В появившемся меню флажком выбираем данные, которые нужно оставить в таблице, — в нашем случае данные менеджера Соколова П., — и нажимаем кнопку «Применить фильтр».

Выбираем менеджера, данные о продажах которого нужно показать в таблице
Скриншот: Excel / Skillbox Media

Готово — таблица показывает данные о продажах только одного менеджера. На кнопке со стрелкой появился дополнительный значок. Он означает, что в этом столбце настроена фильтрация.

Результат фильтрации по одному параметру
Скриншот: Excel / Skillbox Media

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

Разберём на примере.

Выше мы уже отфильтровали таблицу по одному параметру — оставили в ней продажи только менеджера Соколова П. Добавим второй параметр — среди продаж Соколова П. покажем автомобили дороже 1,5 млн рублей.

Шаг 1. Открываем меню фильтра для столбца «Цена, руб.» и нажимаем на параметр «Выберите».

Открываем меню фильтра столбца «Цена, руб.» и жмём сюда
Скриншот: Excel / Skillbox Media

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

В нашем случае нужно показать автомобили дороже 1,5 млн рублей — выбираем критерий «Больше».

Выбираем критерий фильтрации
Скриншот: Excel / Skillbox Media

Шаг 3. Дополняем условие фильтрации — в нашем случае «Больше 1500000» — и нажимаем «Применить фильтр».

Дополняем условие фильтрации
Скриншот: Excel / Skillbox Media

Готово — фильтрация сработала по двум параметрам. Теперь таблица показывает только те проданные менеджером авто, цена которых была выше 1,5 млн рублей.

Результат фильтрации по двум параметрам
Скриншот: Excel / Skillbox Media

Расширенный фильтр позволяет фильтровать таблицу по сложным критериям сразу в нескольких столбцах.

Это можно сделать способом, который мы описали выше: поочерёдно установить несколько стандартных фильтров или фильтров с условиями пользователя. Но в случае с объёмными таблицами этот способ может быть неудобным и трудозатратным. Для экономии времени применяют расширенный фильтр.

Принцип работы расширенного фильтра следующий:

  • Копируют шапку исходной таблицы и создают отдельную таблицу для условий фильтрации.
  • Вводят условия.
  • Запускают фильтрацию.

Разберём на примере. Отфильтруем отчётность автосалона по трём критериям:

  • менеджер — Шолохов Г.;
  • год выпуска автомобиля — 2019-й или раньше;
  • цена — до 2 млн рублей.

Шаг 1. Создаём таблицу для условий фильтрации — для этого копируем шапку исходной таблицы и вставляем её выше.

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

Создаём таблицу для условий фильтрации
Скриншот: Excel / Skillbox Media

Шаг 2. В созданной таблице вводим критерии фильтрации:

  • «Год выпуска» → <=2019.
  • «Цена, руб.» → <2000000.
  • «Менеджер» → Шолохов Г.

В таблице с условиями вводим критерии фильтрации
Скриншот: Excel / Skillbox Media

Шаг 3. Выделяем любую ячейку исходной таблицы и на вкладке «Данные» нажимаем кнопку «Дополнительно».

Выделяем ячейку исходной таблицы и нажимаем на «Дополнительно», чтобы вызвать меню расширенного фильтра
Скриншот: Excel / Skillbox Media

Шаг 4. В появившемся окне заполняем параметры расширенного фильтра:

  • Выбираем, где отобразятся результаты фильтрации: в исходной таблице или в другом месте. В нашем случае выберем первый вариант — «Фильтровать список на месте».
  • Диапазон списка — диапазон таблицы, для которой нужно применить фильтр. Он заполнен автоматически, для этого мы выделяли ячейку исходной таблицы перед тем, как вызвать меню.

Эти параметры меню выставлены программой автоматически
Скриншот: Excel / Skillbox Media
  • Диапазон условий — диапазон таблицы с условиями фильтрации. Ставим курсор в пустое окно параметра и выделяем диапазон: шапку таблицы и строку с критериями. Данные диапазона автоматически появляются в окне параметров расширенного фильтра.

Выделяем диапазон таблицы с условиями
Скриншот: Excel / Skillbox Media

Шаг 5. Нажимаем «ОК» в меню расширенного фильтра.

Готово — исходная таблица отфильтрована по трём заданным параметрам.

Итог работы расширенного фильтра
Скриншот: Excel / Skillbox Media

Отменить фильтрацию можно тремя способами:

1. Вызвать меню отфильтрованного столбца и нажать на кнопку «Очистить фильтр».

Первый способ снять фильтрацию
Скриншот: Excel / Skillbox Media

2. Нажать на кнопку «Сортировка и фильтр» на вкладке «Главная». Затем — либо снять галочку напротив пункта «Фильтр», либо нажать «Очистить фильтр».

Второй способ снять фильтрацию
Скриншот: Excel / Skillbox Media

3. Нажать на кнопку «Очистить» на вкладке «Данные».

Третий способ снять фильтрацию
Скриншот: Excel / Skillbox Media

Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше

0 / 0 / 0

Регистрация: 29.06.2022

Сообщений: 8

1

Гиперссылка + фильтр. Переход на другой лист при нажатии на сумму в таблице

29.06.2022, 11:52. Показов 1075. Ответов 6


Студворк — интернет-сервис помощи студентам

Здравствуйте! Интересует макрос при котором можно осуществить следующую задумку: Есть таблица на листе ОСТАТКИ в ней столбцы Наименование (В), Поступление (F), Отгрузка(G), Списание(H). В столбцах Поступление, Отгрузка, Списание хранится сумма по каждой позиции из других листов. Нужен макрос при котором при нажатии на эту сумму на листе ОСТАТКИ например .(F4), а не наименование (B4), меня перекидывало бы на лист Приход где срабатывал бы фильтр по столбцу Наименование (В) в соответствии со столбцом Наименованием (B) на листе ОСТАТКИ. Нашла Макрос как перейти на фильтр только из столбца Наименование.1.xlsx



0



Vlad999

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

29.06.2022, 14:36

2

Лучший ответ Сообщение было отмечено Grnh как решение

Решение

код вставлять в модуль листа ОСТАТКИ. срабатывание на двойной клик по ячейке диапазона «F4:F27»

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Name As String
Cancel = True
'если активная ячейка не принодлежит диапазону "F4:F27" то выход из процедуры
If Intersect(Range("F4:F27"), Target) Is Nothing Then Exit Sub
 
Name = Target.Offset(, -4).Text
Sheets("Приход").Activate ' активируем лист Приход
ActiveSheet.Range("$A$3:$J$35").AutoFilter Field:=2 ' снимаем фильтр со 2-ого столбца таблицы
ActiveSheet.Range("$A$3:$J$35").AutoFilter Field:=2, Criteria1:=Name ' ставим фильтр во 2-ом столбце таблицы с критерием.
 
End Sub

Это хотели?



1



0 / 0 / 0

Регистрация: 29.06.2022

Сообщений: 8

29.06.2022, 14:53

 [ТС]

3

Спасибо огромное! Все отлично работает)

Добавлено через 7 минут
А если мне нужно будет добавить еще одну вкладку по тому же принципу, например «Расход» и столбец расходов на листе ОСТАТКИ?



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

29.06.2022, 15:00

4

макрос нужно будет корректировать.



0



0 / 0 / 0

Регистрация: 29.06.2022

Сообщений: 8

29.06.2022, 15:11

 [ТС]

5

А не подскажите как?



0



Vlad999

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

29.06.2022, 15:14

6

Лучший ответ Сообщение было отмечено Grnh как решение

Решение

типа этого.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Name As String, NList As String
Cancel = True
'если активная ячейка не принодлежит диапазону "F4:H27" то выход из процедуры
If Intersect(Range("F4:H27"), Target) Is Nothing Then Exit Sub
 
Name = Cells(Target.Row, 2).Text
If Cells(3, Target.Column).Text = "Поступление" Then
    NList = "Приход"
    ElseIf Cells(3, Target.Column).Text = "Отгрузка" Then
        NList = "Расход"
        Else
        NList = "Списание"
End If
Sheets(NList).Activate ' активируем лист Приход
ActiveSheet.Range("$A$3:$J$35").AutoFilter Field:=2 ' снимаем фильтр со 2-ого столбца таблицы
ActiveSheet.Range("$A$3:$J$35").AutoFilter Field:=2, Criteria1:=Name ' ставим фильтр во 2-ом столбце таблицы с критерием.
 
End Sub



1



0 / 0 / 0

Регистрация: 29.06.2022

Сообщений: 8

29.06.2022, 15:19

 [ТС]

7

Большое спасибо!)



0



Создать фильтр по значению ячейки

Создать массив такой что каждое его значение равно значению ячейки в таблице на листе
Мне нужно создать массив x(40,40) такой что каждое его значение равно значению ячейки в таблице на.

Как правильно настроить фильтр по текстовому значению в Access?
Добрый день,уважаемые коллеги! В ходе создания меню базы данных у меня возникла следующая.

Фильтр ячейки
Подскажите пожалуйста. Имеется ячейка с данными(пример: г. Москва, г. Самара, г. Воронеж, г.

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

Поиск ячейки по значению Excel
Уважаемые форумчане, столкнулся со следующей проблемой. Есть кусок кода, который в столбце В6.

«вредная» и «боится мышки» — это разные вещи))))

Как нужно реализовать поиск? Я увидела только «фильтр» в Вашем сообщении.

Vlad999, огромное спасибо за код! Искал в точности именно это, потому и нашел.

Но насчет идеальной работы.. А даты тоже фильтруются? У меня почему-то нет. Более того, вообще цифры не работают. Даже если поменять стиль ячеек на текстовый!

Зарегистрировался чтобы спросить об этом

Можете помочь, пожалуйста?

Добавлено через 9 минут
UPDATED — все-таки в текстовом режиме работает. Не обновил значения после смены формата. Но даты никак не получается задействовать. Можно их тоже в виде текста набирать, конечно — но это, согласитесь, немного не то.

P.s. Еще раз благодарю за то, что уже работает. Они еще и по нескольким колонкам, и с пустыми ячейками. Это прекрасно

Фильтрация данных в Excel

В Excel предусмотрено три типа фильтров:

  1. Автофильтр – для отбора записей по значению ячейки, по формату или в соответствии с простым критерием отбора.
  2. Срезы – интерактивные средства фильтрации данных в таблицах.
  3. Расширенный фильтр – для фильтрации данных с помощью сложного критерия отбора.

Автофильтр

  1. Выделить одну ячейку из диапазона данных.
  2. На вкладке Данные [Data] найдите группу Сортировка и фильтр [Sort&Filter].
  3. Щелкнуть по кнопке Фильтр [Filter] .

  1. В верхней строке диапазона возле каждого столбца появились кнопки со стрелочками. В столбце, содержащем ячейку, по которой будет выполняться фильтрация, щелкнуть на кнопку со стрелкой. Раскроется список возможных вариантов фильтрации.
  1. Выбрать условие фильтрации.

Варианты фильтрации данных

  • Фильтр по значению – отметить флажком нужные значения из столбца данных, которые высвечиваются внизу диалогового окна.
  • Фильтр по цвету – выбор по отформатированной ячейке: по цвету ячейки, по цвету шрифта или по значку ячейки (если установлено условное форматирование).
  • Можно воспользоваться строкой быстрого поиска
  • Для выбора числового фильтра, текстового фильтра или фильтра по дате (в зависимости от типа данных) выбрать соответствующую строку. Появится контекстное меню с более детальными возможностями фильтрации:
  1. При выборе опции Числовые фильтры появятся следующие варианты фильтрации: равно, больше, меньше, Первые 10… [Top 10…] и др.
  2. При выборе опции Текстовые фильтры в контекстном меню можно отметить вариант фильтрации содержит. , начинается с… и др.
  3. При выборе опции Фильтры по дате варианты фильтрации – завтра, на следующей неделе, в прошлом месяце и др.
  4. Во всех перечисленных выше случаях в контекстном меню содержится пункт Настраиваемый фильтр… [Custom…], используя который можно задать одновременно два условия отбора, связанные отношением И [And] – одновременное выполнение 2 условий, ИЛИ [Or] – выполнение хотя бы одного условия.

Если данные после фильтрации были изменены, фильтрация автоматически не срабатывает, поэтому необходимо запустить процедуру вновь, нажав на кнопку Повторить [Reapply] в группе Сортировка и фильтр на вкладке Данные.

Отмена фильтрации

Для того чтобы отменить фильтрацию диапазона данных, достаточно повторно щелкнуть по кнопке Фильтр.

Чтобы снять фильтр только с одного столбца, достаточно щелкнуть по кнопке со стрелочкой в первой строке и в контекстном меню выбрать строку: Удалить фильтр из столбца.

Чтобы быстро снять фильтрацию со всех столбцов необходимо выполнить команду Очистить на вкладке Данные

Срезы – это те же фильтры, но вынесенные в отдельную область и имеющие удобное графическое представление. Срезы являются не частью листа с ячейками, а отдельным объектом, набором кнопок, расположенным на листе Excel. Использование срезов не заменяет автофильтр, но, благодаря удобной визуализации, облегчает фильтрацию: все примененные критерии видны одновременно. Срезы были добавлены в Excel начиная с версии 2010.

Создание срезов

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

Для этого нужно выполнить следующие шаги:

    Выделить в таблице одну ячейку и выбрать вкладку Конструктор [Design].

  1. В диалоговом окне отметить поля, которые хотите включить в срез и нажать OK.

Форматирование срезов

  1. Выделить срез.
  2. На ленте вкладки Параметры [Options] выбрать группу Стили срезов [Slicer Styles], содержащую 14 стандартных стилей и опцию создания собственного стиля пользователя.

  1. Выбрать кнопку с подходящим стилем форматирования.

Чтобы удалить срез, нужно его выделить и нажать клавишу Delete.

Расширенный фильтр

Расширенный фильтр предоставляет дополнительные возможности. Он позволяет объединить несколько условий, расположить результат в другой части листа или на другом листе и др.

Задание условий фильтрации

  1. В диалоговом окне Расширенный фильтр выбрать вариант записи результатов: фильтровать список на месте [Filter the list, in-place] или скопировать результат в другое место [Copy to another Location].

  1. Указать Исходный диапазон [List range], выделяя исходную таблицу вместе с заголовками столбцов.
  2. Указать Диапазон условий [Criteria range], отметив курсором диапазон условий, включая ячейки с заголовками столбцов.
  3. Указать при необходимости место с результатами в поле Поместить результат в диапазон [Copy to], отметив курсором ячейку диапазона для размещения результатов фильтрации.
  4. Если нужно исключить повторяющиеся записи, поставить флажок в строке Только уникальные записи [Unique records only].

Расширенный фильтр в Excel

Для фильтрации данных в Excel большинством пользователей используется небезызвестный и крайне удобный инструмент Автофильтр . Если Вы вдруг не слышали о нем, то наверстать можно здесь и здесь .

Но что, если необходимо отфильтровать данные по нескольким критериям одновременно? Или использовать при фильтрации формулу? Или отобрать значения одновременно в двух и более столбцах? На помощь в такой ситуации может прийти Расширенный фильтр (Advanced Filter) .

Процесс работы с этим фильтром существенно отличается от того, к которому все привыкли, и состоит из нескольких этапов:

  • Подготовка диапазона для условий фильтрации
  • Формирование условий фильтрации
  • Работа с мастером «Расширенного фильтра»

Чтобы Вы сразу понимали, о чем идет речь, на гифке ниже представлен небольшой пример работы фильтра:

Разберем каждый из этапов его применения поподробнее.

1. Подготовка диапазона для условий фильтрации

В автофильтре условия для фильтрации данных задаются в меню, выпадающем после клика на кнопке в шапке таблицы. В расширенном же — условия фильтрации должны задаваться в отдельном диапазоне. Этот диапазон может располагаться на том же листе, что и данные, на другом листе или даже в другой книге. Главное, чтобы он был отделен от исходных данных как минимум одним пустым столбцом или строкой (чтобы Excel не принял их за один диапазон).

Также важно помнить, что при указании в 3 шаге (работа в Мастере «Расширенного фильтра») диапазона условий нужно выделять шапку и строки, где есть какие-то критерии. Пустые строки выделять не нужно, иначе фильтра воспримет их как сигнал «Отобразить все строки».

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

2. Формирование условий фильтрации

Этот этап является ключевым и раскрывает всю мощь инструмента. Для начала Вы должны научиться правильно задавать критерии для отбора.

Они могут быть 3 видов:

Если в качестве текстового критерия ввести в поле какое-то слово, например, «Москва», то будут отобраны ВСЕ строки, в которых в заданном столбце запись начинается со слова «Москва»

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

Если нужно найти точное вхождение слова или фразы, то критерий придется задать несколько необычной формулой. Например, чтобы найти строки, в которых записано «Петербург» и не отображать строки «Санкт-Петербург», нужно ввести формулу: =»=Петербург» (именно так, с двумя знаками «=») .

— числовые критерии и даты

В качестве критерия можно вводить число (и тогда будут отобраны строки, в которых значения столбца равны этому числу)

Также можно вводить выражения с использованием логических операторов (>, =, ). Например, найти строки с суммой больше 500 000 можно введя критерий >500000

Особо внимательным нужно быть при вводе критериев в виде даты. Даты обязательно необходимо вводить через косую черту. Например, чтобы отобрать все сделки после 4 января 2017, нужно ввести критерий по полю «Дата» — >04/01/2017 (в некоторых версиях Excel требуется осуществлять ввод в формате ММ/ДД/ГГГГ, то есть сначала указывать месяц. Имейте это в виду при работе).

Самое лучшее, что умеет расширенный фильтр — это использовать в качестве критерия формулы. Чтобы все работало, задаваемая Вами формула должна возвращать значение ИСТИНА (и тогда строка выведется) или ЛОЖЬ (строка будет скрыта). Крайне важно — шапка столбца с формулой должна отличаться от любой записи в шапке таблицы (можете вообще оставить ее пустой). При написании формул, не забывайте правильно расставлять абсолютные и относительные ссылки.

Например, если нужно показать топ 5 строк по полю сумма, то необходимо будет ввести следующую формулу:

где F10 — ячейка первой строки в столбце «Сумма» (она не закреплена, так как формула будет перебирать строки по очереди), $F$10:$F$37 — ссылка на диапазон, который занимает столбец «Сумма» (ссылка закреплена, так как столбец не изменяется).

В результате формула пройдет по всем строкам (от 10-ой до 37-ой) и скроет все, кроме тех, где значение больше шестого по величине (то есть оставит ТОП 5).

Конечно, все описанные критерии и примеры можно реализовать с помощью обычного автофильтра (кроме возможности использовать формулы). Однако, весь потенциал расширенного фильтра раскрывается, когда Вы умеете правильно комбинировать множество критериев между собой.

Итак, основные концепции, которые Вам нужно усвоить для успешного применения Расширенного фильтра:

— заголовок столбца, в котором пишем критерий отбора, должен быть точно таким же, как у того столбца, к которому применяем этот критерий. То есть, если отбираем строки, в которых в столбце «Сумма» значение больше 500, то и условие >500 пишем под шапку «Сумма»;

— условия, записанные в одной строке, воспринимаются фильтром как связанные оператором И. Например, на картинке ниже записано условие И год 2017, И город Москва, И менеджер Петров .

— условия, записанные в разных строках, воспринимаются фильтром как связанные оператором ИЛИ. Условия могут применяться как к одному столбцу, так и к разным. Например, на картинке ниже записано условие ИЛИ город Москва, ИЛИ менеджер Иванов . Таким образом, каждая строка — это единый набор условий.

— если нужно задать условие И, но при этом использовать один и тот же столбец (например, И сумма больше 500 000, И сумма меньше 600 000 ), то заголовок такого столбца нужно продублировать дважды. Пример:

Теперь Вы знаете, какие критерии можно задавать, и как их правильно комбинировать. Этого достаточно, чтобы создавать сложные запросы, которые не под силу обычному автофильтру. Например, если нужно показать все сделки в Москве за 2017 год с суммой больше 500 000, а также одновременно отобразить все сделки Иванова за 2016 год, которые входят в ТОП5, то критерии будут выглядеть вот так:

3. Работа с мастером «Расширенного фильтра»

Самое сложное позади — Вы научились формировать критерии отбора. Остался один шаг. Выделяем диапазон с исходными данными (или любую его ячейку — Excel сам определит и выделит нужный массив) и находим на ленте команду «Дополнительно» во вкладке «Данные» в группе «Сортировка и Фильтр». Перед Вами появится окно «Расширенный фильтр»

1) задать исходный диапазон (он будет выбран автоматически при запуске фильтра),

2) определить диапазон условия (ваша мини-табличка с критериями, автоматически Excel может определить диапазон неточно, лучше каждый раз переназначать его заново), на этом шаге помним, что выделяем только заголовки и строки с критерием, пустые строки включать в диапазон нельзя ,

3) выбрать способ обработки (фильтровать данные в вашей исходной таблице или скопировать отфильтрованные строки в другое место),

4) указать, стоит ли показать все записи, или вывести только уникальные.

После настройки нажимаем «ОК» и получаем желаемый результат.

Чтобы очистить фильтр, переместите курсор в шапку таблицы с отфильтрованными данными и воспользуйтесь командой «Очистить» на ленте, или примените Автофильтр (Ctrl+Shift+L).

Недостатки Расширенного фильтра

Главным недостатком является то, что данный инструмент не является интерактивным и динамическим. Нельзя просто вписать в диапазон условий новый критерий и увидеть результат. Придется каждый раз вызывать Мастер «Расширенного фильтра» и повторять некоторые операции. Конечно, можно обойти и этот недостаток, но это уже тема для другой статьи.

Бонус. Полезный трюк с Расширенным фильтром

Если вам нужно быстро извлечь из диапазона уникальные записи, то проделайте следующее:

1) Выделите диапазон

2) Запустите Расширенный фильтр

3) Укажите вот такие параметры:

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

Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram : @ExEvFeedbackBot

Расширенный фильтр в Excel и примеры его возможностей

Вывести на экран информацию по одному / нескольким параметрам можно с помощью фильтрации данных в Excel.

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

Автофильтр и расширенный фильтр в Excel

Имеется простая таблица, не отформатированная и не объявленная списком. Включить автоматический фильтр можно через главное меню.

  1. Выделяем мышкой любую ячейку внутри диапазона. Переходим на вкладку «Данные» и нажимаем кнопку «Фильтр».
  2. Рядом с заголовками таблицы появляются стрелочки, открывающие списки автофильтра.

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

Пользоваться автофильтром просто: нужно выделить запись с нужным значением. Например, отобразить поставки в магазин №4. Ставим птичку напротив соответствующего условия фильтрации:

Сразу видим результат:

Особенности работы инструмента:

  1. Автофильтр работает только в неразрывном диапазоне. Разные таблицы на одном листе не фильтруются. Даже если они имеют однотипные данные.
  2. Инструмент воспринимает верхнюю строчку как заголовки столбцов – эти значения в фильтр не включаются.
  3. Допустимо применять сразу несколько условий фильтрации. Но каждый предыдущий результат может скрывать необходимые для следующего фильтра записи.

У расширенного фильтра гораздо больше возможностей:

  1. Можно задать столько условий для фильтрации, сколько нужно.
  2. Критерии выбора данных – на виду.
  3. С помощью расширенного фильтра пользователь легко находит уникальные значения в многострочном массиве.

Как сделать расширенный фильтр в Excel

Готовый пример – как использовать расширенный фильтр в Excel:

  1. Создадим таблицу с условиями отбора. Для этого копируем заголовки исходного списка и вставляем выше. В табличке с критериями для фильтрации оставляем достаточное количество строк плюс пустая строка, отделяющая от исходной таблицы.
  2. Настроим параметры фильтрации для отбора строк со значением «Москва» (в соответствующий столбец таблички с условиями вносим = «=Москва»). Активизируем любую ячейку в исходной таблице. Переходим на вкладку «Данные» — «Сортировка и фильтр» — «Дополнительно».
  3. Заполняем параметры фильтрации. Исходный диапазон – таблица с исходными данными. Ссылки появляются автоматически, т.к. была активна одна из ячеек. Диапазон условий – табличка с условием.
  4. Выходим из меню расширенного фильтра, нажав кнопку ОК.

В исходной таблице остались только строки, содержащие значение «Москва». Чтобы отменить фильтрацию, нужно нажать кнопку «Очистить» в разделе «Сортировка и фильтр».

Как пользоваться расширенным фильтром в Excel

Рассмотрим применение расширенного фильтра в Excel с целью отбора строк, содержащих слова «Москва» или «Рязань». Условия для фильтрации должны находиться в одном столбце. В нашем примере – друг под другом.

Заполняем меню расширенного фильтра:

Получаем таблицу с отобранными по заданному критерию строками:

Выполним отбор строк, которые в столбце «Магазин» содержат значение «№1», а в столбце стоимость – «>1 000 000 р.». Критерии для фильтрации должны находиться в соответствующих столбцах таблички для условий. На одной строке.

Заполняем параметры фильтрации. Нажимаем ОК.

Оставим в таблице только те строки, которые в столбце «Регион» содержат слово «Рязань» или в столбце «Стоимость» — значение «>10 000 000 р.». Так как критерии отбора относятся к разным столбцам, размещаем их на разных строках под соответствующими заголовками.

Применим инструмент «Расширенный фильтр»:

Данный инструмент умеет работать с формулами, что дает возможность пользователю решать практически любые задачи при отборе значений из массивов.

  1. Результат формулы – это критерий отбора.
  2. Записанная формула возвращает результат ИСТИНА или ЛОЖЬ.
  3. Исходный диапазон указывается посредством абсолютных ссылок, а критерий отбора (в виде формулы) – с помощью относительных.
  4. Если возвращается значение ИСТИНА, то строка отобразится после применения фильтра. ЛОЖЬ – нет.

Отобразим строки, содержащие количество выше среднего. Для этого в стороне от таблички с критериями (в ячейку I1) введем название «Наибольшее количество». Ниже – формула. Используем функцию СРЗНАЧ.

Выделяем любую ячейку в исходном диапазоне и вызываем «Расширенный фильтр». В качестве критерия для отбора указываем I1:I2 (ссылки относительные!).

В таблице остались только те строки, где значения в столбце «Количество» выше среднего.

Чтобы оставить в таблице лишь неповторяющиеся строки, в окне «Расширенного фильтра» поставьте птичку напротив «Только уникальные записи».

Нажмите ОК. Повторяющиеся строки будут скрыты. На листе останутся только уникальные записи.

Расширенный фильтр и немного магии

У подавляющего большинства пользователей Excel при слове «фильтрация данных» в голове всплывает только обычный классический фильтр с вкладки Данные — Фильтр (Data — Filter) :

Такой фильтр — штука привычная, спору нет, и для большинства случаев вполне сойдет. Однако бывают ситуации, когда нужно проводить отбор по большому количеству сложных условий сразу по нескольким столбцам. Обычный фильтр тут не очень удобен и хочется чего-то помощнее. Таким инструментом может стать расширенный фильтр (advanced filter), особенно с небольшой «доработкой напильником» (по традиции).

Для начала вставьте над вашей таблицей с данными несколько пустых строк и скопируйте туда шапку таблицы — это будет диапазон с условиями (выделен для наглядности желтым):

Между желтыми ячейками и исходной таблицей обязательно должна быть хотя бы одна пустая строка.

Именно в желтые ячейки нужно ввести критерии (условия), по которым потом будет произведена фильтрация. Например, если нужно отобрать бананы в московский «Ашан» в III квартале, то условия будут выглядеть так:

Чтобы выполнить фильтрацию выделите любую ячейку диапазона с исходными данными, откройте вкладку Данные и нажмите кнопку Дополнительно (Data — Advanced) . В открывшемся окне должен быть уже автоматически введен диапазон с данными и нам останется только указать диапазон условий, т.е. A1:I2:

Обратите внимание, что диапазон условий нельзя выделять «с запасом», т.е. нельзя выделять лишние пустые желтые строки, т.к. пустая ячейка в диапазоне условий воспринимается Excel как отсутствие критерия, а целая пустая строка — как просьба вывести все данные без разбора.

Переключатель Скопировать результат в другое место позволит фильтровать список не прямо тут же, на этом листе (как обычным фильтром), а выгрузить отобранные строки в другой диапазон, который тогда нужно будет указать в поле Поместить результат в диапазон. В данном случае мы эту функцию не используем, оставляем Фильтровать список на месте и жмем ОК. Отобранные строки отобразятся на листе:

Добавляем макрос

«Ну и где же тут удобство?» — спросите вы и будете правы. Мало того, что нужно руками вводить условия в желтые ячейки, так еще и открывать диалоговое окно, вводить туда диапазоны, жать ОК. Грустно, согласен! Но «все меняется, когда приходят они ©» — макросы!

Работу с расширенным фильтром можно в разы ускорить и упростить с помощью простого макроса, который будет автоматически запускать расширенный фильтр при вводе условий, т.е. изменении любой желтой ячейки. Щелкните правой кнопкой мыши по ярлычку текущего листа и выберите команду Исходный текст (Source Code) . В открывшееся окно скопируйте и вставьте вот такой код:

Эта процедура будет автоматически запускаться при изменении любой ячейки на текущем листе. Если адрес измененной ячейки попадает в желтый диапазон (A2:I5), то данный макрос снимает все фильтры (если они были) и заново применяет расширенный фильтр к таблице исходных данных, начинающейся с А7, т.е. все будет фильтроваться мгновенно, сразу после ввода очередного условия:

Так все гораздо лучше, правда? 🙂

Реализация сложных запросов

Теперь, когда все фильтруется «на лету», можно немного углубиться в нюансы и разобрать механизмы более сложных запросов в расширенном фильтре. Помимо ввода точных совпадений, в диапазоне условий можно использовать различные символы подстановки (* и ?) и знаки математических неравенств для реализации приблизительного поиска. Регистр символов роли не играет. Для наглядности я свел все возможные варианты в таблицу:

Просмотров: 215

Постановка задачи. Необходимость применения фильтра для выпадающего списка.

Сегодня мы наглядно рассмотрим применение фильтра в выпадающем списке Excel. В ходе работы часто возникает ситуация, кода необходимо для внесения данных выбирать нужные значения из заданного перечня. Такой способ позволяет не только ускорить введение данных, но и избавиться от возможных ошибок при наборе текста. Ведь не секрет, что даже неверный пробел в названии уже искажает наименование организации или мешает выбору соответствующей цены либо иных данных, связанных с названием.

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

На помощь приходит создание фильтра для отбора только строк, содержащих нужный текст, вручную. Использование фильтра для выпадающего списка в Excel позволит отобрать необходимые позиции, основываясь на содержании элемента выпадающего списка. Создание такого списка может быть выполнено разными способами. В частности, в MS Office 365 присутствует специальная функция ФИЛЬТР, которая позволяет решить проблему. Однако далеко не везде эта версия MS Office установлена. Особенно это касается приложений, установленных в корпоративной среде. Использовать же онлайн версию офиса, в частности, работая в облаке от yandex.ru, mail.ru , onedrive.live.com и так далее не всегда возможно и не очень удобно. Данная версия, к сожалению, не содержит многих инструментов обработки данных, к которым мы привыкли. Нет консолидации, нет промежуточного итога. Отсутствуют возможности «Анализ что, если» и получение данных из внешних источников. И этот список отсутствующих инструментов можно продолжать. Существуют так же корпоративные правила, которые во многих случаях запрещают работу с документами в онлайн режиме.

На нашем занятии мы создадим фильтр выпадающего списка в ячейке, основываясь на функциях, имеющихся в любой версии MS Excel. Это позволит применить данный способ в любой ситуации. Способ достаточно прост и быстр. При создании фильтра кратко будут описаны функции, которые используются, и те параметры этих функций, которые необходимо использовать. Чтобы создать такой фильтр, нам понадобится всего пять шагов.

Исходная ситуация следующая. Имеется два листа – список и проверка. На листе список в колонке А будет задаваться проверочный текст, а в колонке В будет выводится выпадающий список, отфильтрованный согласно заданному проверочному тексту и полученный на основе диапазона А2:А121 на листе Проверка. Список достаточно условный, но вместо него может быть список оборудования, список наименований поставщиков, список операций и прочие перечни значений. Итак, приступаем. Будьте внимательны и отслеживайте текст формул и функций, которые применятся.

Фильтр в выпадающем списке Excel

Рисунок 1

Шаг первый. Проверяем вхождение шаблонного текста в список.

Для такой проверки можно применить функции ПОИСК или НАЙТИ. Функция НАЙТИ чувствительна к регистру, поэтому применим функцию ПОИСК во избежание ошибок с несовпадающим регистром. Ее синтаксис

=ПОИСК(искомый текст; строка для поиска наличия искомого текста).

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

Введем на листе список текст, который явно присутствует в ячейках нашего списка на листе проверка. Следом на листе проверка напротив первого же элемента списка введем формулу

=ПОИСК(список!$A$1;A2).

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

Фильтр в выпадающем списке Excel

Рисунок 2

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

Шаг Второй. Привязываем условие к последней заполненной ячейке в колонке А на листе список.

Получить адрес нужной ячейки мы можем, используя функцию АДРЕС. В ней надо задать номер строки нужной ячейки, номер столбца этой ячейки, тип адреса – абсолютный, смешанный с закреплением строки и так далее. Остальные параметры в нашем случае значения не имеют. Важно помнить, что результатом работы данной функции будет текстовая строка с полученной ссылкой.

Чтобы получить номер последней заполненной ячейки в колонке А на листе таблица, мы применим функцию ПОИСКПОЗ. Ее назначение – определить номер позиции выбранного элемента в указанном списке. Надо последовательно указать искомый элемент, список и тип сопоставления для определения способа поиска. Пи этом есть небольшой нюанс. Если в качестве искомого указать значение, которое будет заведомо больше любого имеющегося, а тип сопоставления задать равным единице, то будет выведена позиция последнего элемента в списке. Нам это и надо. В качестве же искомого значения укажем две буквы «Я» подряд. Вряд ли будет слово, которое будет начинаться с этих букв.

Для определения номера столбца можно просто прописать единицу, так как колонка А первая на листе. Однако мы применим функцию СТОЛБЕЦ, которая выводит номер столбца указанной ячейки. Это позволит сделать нашу формулу гибкой, не привязывая ее к одному столбцу.

Ну и наконец вспомним, что нам нужна абсолютная ссылка, поэтому третий параметр функции должен быть равен одному. Соберем все полеченные нами параметры функции АДРЕС вместе и получаем формулу

=АДРЕС(ПОИСКПОЗ(“ЯЯ”;список!A:A;1);СТОЛБЕЦ(список!A1);1)

Фильтр в выпадающем списке Excel

Рисунок 3

Как видите адрес мы получили. Но есть две проблемы. Во-первых, адрес указывает на ячейку на текущем листе проверка, а не на листе список. А во-вторых, мы видим именно адрес, а не содержимое нужной ячейки. Исправим это. Соединим полученный адрес и имя нужного листа. Выведем инаименование листа  впереди, не забывая про кавычки и восклицательный знак, и используя амперсанд для объединения полеченный строк. Теперь полученную общую строку сделаем адресом, обернув полученную строку функцией ДВССЫЛ. Это значит, что в самом начале после знака равно перед именем листа пропишем ДВССЫЛ и откроем скобку, а вторую скобку закроем в самом конце. В результате скобки функции ДВССЫЛ как бы охватывают нашу формулу получения общей строки – отсюда и название приема – обернуть. В итоге получаем такую формулу.

=ДВССЫЛ(“список!”&АДРЕС(ПОИСКПОЗ(“ЯЯ”;список!A:A;1);СТОЛБЕЦ(список!A1);1))

Теперь вместо адреса мы видим содержимое последней заполненной ячейки на листе Список, а это нам и надо.

Фильтр в выпадающем списке Excel

Рисунок 4

Теперь аккуратно скопируем полученную формулу и скопируем в нашу функцию ПОИСК, выведенную в начале работы, вместо адреса ячейки А1. Проверяем работу и убеждаемся, что на листе проверка цифры появляются напротив ячеек, содержащих текст из последней заполненной ячейки листа таблица в колонке А.

Фильтр в выпадающем списке Excel

Рисунок 5

Шаг третий. Выведем возрастающую нумерацию для ячеек списка на листе проверка, в которых имеется проверочное слово.

Чтобы это сделать, применим функцию ЕСЛИ в колонке С листа проверка. Она позволяет проверить условие и вывести один из двух вариантов в зависимости от его соблюдения.

В качестве условия применим функцию ЕЧИСЛО, с помощью которой обернем нашу функцию поиск. Если функция ПОИСК найдет нужное слово в списке, то результатом будет цифра. Тогда функция ЕЧИСЛО выведет результат ИСТИНА, а если нет, то результатом функции ЕЧИСЛО будет ложь.

Для параметра ИСТИНА функции ЕСЛИ зададим автоматическую нумерацию полученных строк с найденными числами. Для этого возьмем максимум из предыдущих ячеек и прибавим к полученному единицу. Так как в начале никаких предыдущих ячеек фактически нет, то для функции МАКС возьмем диапазон С1:С1 и закрепим первую ячейку. В результате при копировании формулы вниз будем получать диапазоны C1:C2, C1:C3 и так далее.

Ну и для параметра ЛОЖЬ выведем пустое значение в виде двух кавычек подряд. В результате получаем такую запись.

=ЕСЛИ(ЕЧИСЛО(ПОИСК(ДВССЫЛ(“список!”&АДРЕС(ПОИСКПОЗ(“ЯЯ”;список!A:A;1);СТОЛБЕЦ(список!A1);1));A2));МАКС($C$1:C1)+1;””)

Она кажется сложной, но на самом деле при последовательном ее создании сложностей возникнуть не должно.

Фильтр в выпадающем списке Excel

Рисунок 6

Шаг четвертый. Соберем вместе все значения, соответствующие нашему искомому параметру.

Чтобы это сделать, выведем снова нумерацию, соответствующую нашему списку, в колонке D листа проверка. Напротив ее первой ячейки применим функцию ИНДЕКС. Ее параметры – адрес исходного диапазона, номер строки и номер столбца этого диапазона, из пересечения которых надо взять данные. Исходным диапазоном будет диапазон А1:С121 на листе проверка. Номер нужной строки найдем с помощью функции ПОИСКПОЗ, указав для поиска номер текущей позиции в колонке С листа проверка и запустив точный поиск в помощью типа сопоставления равного нулю. Номер столбца зададим первый.

=ИНДЕКС($A$2:$C$121;ПОИСКПОЗ(D2;C2:C121;0);1)

Фильтр в выпадающем списке Excel

Рисунок 7

Как видим, после перечня строк, содержащих последнее введение значение на листе список, в ненайденных позициях вывелась ошибка. Чтобы это исправить, обернем нашу формулу функцией ЕСЛИОШИБКА и указав в качестве второго параметра этой функции ноль.

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$C$121;ПОИСКПОЗ(D2;$C$2:$C$121;0);1);0) 

Фильтр в выпадающем списке Excel

Рисунок 8

Шаг пятый и последний. Формируем на основе полученного перечня источник для выпадающего списка.

Переходим на лист список. Выделяем столбец В, переходим на вкладку данные и нажимаем кнопку «проверка данных». Тип данных выбираем «Список», а в строке “источник” введем функцию СМЕЩ. С ее помощью зададим диапазон, ячейки которого будут использованы в нашем списке. Параметры функции СМЕЩ по очереди в нашем случае:

1. начальная ячейка, относительно которой будем двигаться. В нашем случае это ячейка Е2 на листе проверка. Не забываем ее закрепить.

2. сдвиг по строкам. В нашем случае его нет, поэтому просто отделим место этого параметра стандартным разделителем.

3. сдвиг по колонкам. Его тоже не будет.

4. количество строк в формируемом диапазоне. Чтобы это узнать, от общего количества заполненных ячеек в колонке Е листа проверка отнимем количество числовых ячеек в этом же столбце. Найти количество тех и других можно функциями СЧЕТЗ и СЧЕТ соответственно.

5. Количество столбцов в формируемом диапазоне. У нас будет только одна колонка.

В итоге получаем

=СМЕЩ(проверка!$E$2;;;СЧЁТЗ(проверка!$E:$E)-СЧЁТ(проверка!$E:$E);1)

Фильтр в выпадающем списке Excel

Рисунок 9

Фильтр в выпадающем списке Excel

Рисунок 10

Готово! Мы получили выпадающий список только из тех значения из исходного перечня, которые содержат указанный в последней заполненной ячейки колонки А на листе список.

Возможные проблемы.

  1. Наша формула будет искать последнюю ячейку столбца А на листе список с текстом. Если же в последней ячейке будет число – Excel его не найдет. Чтобы обойти эту проблему, достаточно заранее задать текстовый формат для всех ячеек этого столбца.
  2. Отбор по последнему значению будет работать во всех ячейках, где применен выпадающий список. Если необходимо поменять значение на основе выпадающего списка по ранее указанному значению, достаточно вернуться к нему и убрать все введенные позже проверочные значения. Эти значения никак не связаны с значениями, отобранными из списка, поэтому проблем с другими выбранными элементами не будет.

Заключение.

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

На этом наше занятие  подошло к концу. Желаем всем успеха в работе. До встречи на наших занятиях.

Понравилась статья? Поделить с друзьями:
  • Фильтр повторяющихся значений в excel в одном столбце
  • Фильтрация в excel условия фильтрации
  • Фильтр по цвету строки в excel
  • Фильтрация в excel с несколькими критериями
  • Фильтр по цвету заливки excel