0 / 0 / 0 Регистрация: 13.02.2015 Сообщений: 9 |
|
1 |
|
Не группирует при фильтровании по датам31.03.2015, 14:56. Показов 35624. Ответов 6
Есть таблица (exel2007), имеющая столбец в формате ДАТА с датами. При установке фильтра по этой колонке никак не получается, чтобы даты группировались по иерархии — год, затем месяц… Такое ощущение, что exel не воспринимает данные в этом столбце, как даты. В параметрах отображения книги стоит галка «группировать данные в меню автофильтра». Что нужно сделать ещё, чтобы данные группировались?
0 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
31.03.2015, 15:01 |
2 |
Сортируется как дата?
0 |
0 / 0 / 0 Регистрация: 13.02.2015 Сообщений: 9 |
|
31.03.2015, 15:11 [ТС] |
3 |
как текст
0 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
31.03.2015, 15:24 |
4 |
Выделить столбец с датами — Данные — Текст по столбцам — Далее.. до тех пор, когда надо будет выбрать формат столбца — выбираете Дата — Готово.
2 |
0 / 0 / 0 Регистрация: 13.02.2015 Сообщений: 9 |
|
31.03.2015, 15:28 [ТС] |
5 |
Получилось! Спасибо большое!
0 |
0 / 0 / 0 Регистрация: 25.10.2018 Сообщений: 3 |
|
10.06.2022, 14:17 |
6 |
Ещё как вариант можно сделать автозамену точка на точка (точка это символ который присутствует в каждой дате). Т.е. ничего не поменяется но при этом сработает функция распознавания типа данных.
0 |
128 / 107 / 21 Регистрация: 08.02.2017 Сообщений: 577 |
|
10.06.2022, 18:53 |
7 |
Эксель очень хорошо натаскан на даты, уж что-что, он их определяет в любом виде )
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
10.06.2022, 18:53 |
Помогаю со студенческими работами здесь Цикл по датам Выборка по датам Выборка по датам ОТ-ДО база Ацесс, делаю запрос на записи с конкретным номером клиента и датами от-до…. Группировки по датам. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 7 |
Группировка по дате в фильтре сводной |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
На чтение 6 мин. Просмотров 7.9k.
Итог: узнайте, как применять фильтры даты с VBA. Включает примеры фильтрации для диапазона между двумя датами, группами дат из раскрывающегося списка фильтра, динамическими датами в периоде и т.д.
Уровень мастерства: Средний
Содержание
- Скачать файл
- Фильтры даты в Excel
- Фильтры диапазона дат в VBA
- Несколько групп дат
- Динамические даты в периодах
- Фильтры и типы данных
Скачать файл
Файл Excel, содержащий код, можно скачать ниже. Этот файл содержит код для фильтрации различных типов данных и типов фильтров. Пожалуйста, ознакомьтесь с моей статьей Фильтрация сводной таблицы или среза по самой последней дате или периоду для более подробной информации.
VBA AutoFilters Guide.xlsm (100.5 KB)
У нас есть много вариантов при фильтрации столбца, который
содержит даты. Список выпадающего меню фильтра группирует даты по годам,
месяцам, дням, часам, минутам, секундам. Мы можем расширить и установить эти
флажки для фильтрации нескольких элементов.
Мы также можем выбрать из подменю Date Filters. Это позволяет нам фильтровать диапазоны дат, как до, после или между двумя датами. Есть также много вариантов дат в периодах (этот месяц, следующий месяц, последний квартал и т.д.).
Давайте посмотрим на некоторые примеры кода для различных
фильтров даты.
При
применении фильтра для одного числа нам нужно использовать форматирование чисел,
которое применяется в столбце. Это странная причуда VBA, которая
может привести к неточным результатам, если вы не знаете правила. В приведенном
ниже коде есть пример.
Фильтры диапазона дат в VBA
Следующий макрос содержит примеры основных фильтров даты. Важно отметить, что значения параметров Criteria заключены в кавычки. Операторы сравнения = <> также включены в кавычки.
Пожалуйста, ознакомьтесь с моей статьей Фильтрация сводной таблицы или среза по самой последней дате или периоду для получения более подробной информации о том, как использовать метод AutoFilter и его параметры.
Вы можете скопировать / вставить приведенный ниже код в VB Editor.
Sub AutoFilter_Date_Examples() ' Примеры фильтрации столбцов с датами Dim lo As ListObject Dim iCol As Long ' Установить ссылку на первую таблицу на листе Set lo = Sheet1.ListObjects(1) ' Установить поле фильтра iCol = lo.ListColumns("Date").Index ' Очистить фильтры lo.AutoFilter.ShowAllData With lo.Range ' Одиночная дата - использовать тот же формат даты, который 'применяется к столбцу .AutoFilter Field:=iCol, Criteria1:="=1/2/2014" 'До даты .AutoFilter Field:=iCol, Criteria1:="<1/31/2014" 'После или равно дате .AutoFilter Field:=iCol, Criteria1:=">=1/31/2014" 'Диапазон дат (между датами) .AutoFilter Field:=iCol, _ Criteria1:=">=1/1/2014", _ Operator:=xlAnd, _ Criteria2:="<=12/31/2015" End Sub
Несколько групп дат
Следующий макрос содержит примеры фильтрации нескольких
групп дат. Это то же самое, что выбрать конкретные годы, месяцы, дни, часы,
минуты из списка в раскрывающемся меню фильтра.
Для этих фильтров мы устанавливаем для параметра Operator
значение xlFilterValues. Мы используем Criteria2 (не Criteria1), чтобы указать
массив элементов с помощью функции Array.
Это специальный массив шаблонов, где первое число — это
период времени (год, месяцы, дни и т. Д.). Второе число — последняя дата в
диапазоне. Макрос ниже содержит примеры и дальнейшие пояснения.
Sub AutoFilter_Multiple_Dates_Examples() 'Примеры фильтрации столбцов для нескольких периодов времени даты Dim lo As ListObject Dim iCol As Long 'Установить ссылку на первую таблицу на листе Set lo = Sheet1.ListObjects(1) 'Установить поле фильтра iCol = lo.ListColumns("Date").Index 'Очистить фильтры lo.AutoFilter.ShowAllData With lo.Range 'При фильтрации по нескольким периодам, выбранным из 'раскрывающегося меню фильтра, используйте Operator: = xlFilterValues и 'Критерии2 с узорным массивом. Первое число - 'временной период. Второе число - последняя дата в периоде. 'Первое измерение массива - группа периода времени '0-Годы '1-Месяцы '2-Дни '3-Часы '4-Минуты '5-Секунды 'Несколько лет (2014 и 2016) использовать последний день времени 'периода для каждого элемента массива .AutoFilter Field:=iCol, _ Operator:=xlFilterValues, _ Criteria2:=Array(0, "12/31/2014", 0, "12/31/2016") 'Несколько месяцев (январь, апрель, июль, октябрь 2015 года) .AutoFilter Field:=iCol, _ Operator:=xlFilterValues, _ Criteria2:=Array(1, "1/31/2015", 1, "4/30/2015", 1, "7/31/2015", 1, "10/31/2015") 'Несколько дней 'Последний день каждого месяца: январь, апрель, июль, октябрь 2015 года) .AutoFilter Field:=iCol, _ Operator:=xlFilterValues, _ Criteria2:=Array(2, "1/31/2015", 2, "4/30/2015", 2, "7/31/2015", 2, "10/31/2015") 'Установить поле фильтра iCol = lo.ListColumns("Date Time").Index 'Очистить фильтры lo.AutoFilter.ShowAllData 'Несколько часов» (все даты в 11:00 часов 10 января 2008 г. 'и 11:00 часов 20.01.2008) .AutoFilter Field:=iCol, _ Operator:=xlFilterValues, _ Criteria2:=Array(3, "1/10/2018 13:59:59", 3, "1/20/2018 23:59:59") End With End Sub
Динамические даты в периодах
Следующий макрос содержит примеры дат в определенных
периодах. Это аналогично выбору предустановленных элементов фильтра из подменю «Фильтры
даты».
Для этих фильтров мы устанавливаем параметр Operator равным
xlFilterDynamic. Мы устанавливаем Criteria1 в константу, которая представляет
параметр периода динамической даты. Константы перечислены ниже.
Sub AutoFilter_Dates_in_Period_Examples() 'Примеры фильтрации столбцов для ДАТЫ В ПЕРИОД 'Пресеты фильтров даты, найденные в подменю «Фильтры даты Dim lo As ListObject Dim iCol As Long 'Установить ссылку на первую таблицу на листе Set lo = Sheet1.ListObjects(1) 'Установить поле фильтра iCol = lo.ListColumns("Date").Index 'Очистить фильтры lo.AutoFilter.ShowAllData 'Оператор: = xlFilterDynamic 'Критерии1: = одно из следующих перечислений ' Значение константы ' 1 xlFilterToday ' 2 xlFilterYesterday ' 3 xlFilterTomorrow ' 4 xlFilterThisWeek ' 5 xlFilterLastWeek ' 6 xlFilterNextWeek ' 7 xlFilterThisMonth ' 8 xlFilterLastMonth ' 9 xlFilterNextMonth ' 10 xlFilterThisQuarter ' 11 xlFilterLastQuarter ' 12 xlFilterNextQuarter ' 13 xlFilterThisYear ' 14 xlFilterLastYear ' 15 xlFilterNextYear ' 16 xlFilterYearToDate ' 17 xlFilterAllDatesInPeriodQuarter1 ' 18 xlFilterAllDatesInPeriodQuarter2 ' 19 xlFilterAllDatesInPeriodQuarter3 ' 20 xlFilterAllDatesInPeriodQuarter4 ' 21 xlFilterAllDatesInPeriodJanuary ' 22 xlFilterAllDatesInPeriodFebruray <- февраль написан с ошибкой ' 23 xlFilterAllDatesInPeriodMarch ' 24 xlFilterAllDatesInPeriodApril ' 25 xlFilterAllDatesInPeriodMay ' 26 xlFilterAllDatesInPeriodJune ' 27 xlFilterAllDatesInPeriodJuly ' 28 xlFilterAllDatesInPeriodAugust ' 29 xlFilterAllDatesInPeriodSeptember ' 30 xlFilterAllDatesInPeriodOctober ' 31 xlFilterAllDatesInPeriodNovember ' 32 xlFilterAllDatesInPeriodDecember With lo.Range 'Все даты в январе (по всем годам) .AutoFilter Field:=iCol, _ Operator:=xlFilterDynamic, _ Criteria1:=xlFilterAllDatesInPeriodJanuary 'Все даты во втором квартале (по всем годам) .AutoFilter Field:=iCol, _ Operator:=xlFilterDynamic, _ Criteria1:=xlFilterAllDatesInPeriodQuarter2 End With End Sub
Вот ссылка на справочную страницу MSDN со списком XlDynamicFilterCriteria. И спасибо Дугу Глэнси из YourSumBuddy за то, что он указал на февральскую опечатку в константе. У него есть несколько полезных советов для параметра Operator в этой статье.
Фильтры и типы данных
Параметры
раскрывающегося меню фильтра изменяются в зависимости от типа данных в столбце.
У нас есть разные фильтры для текста, чисел, дат и цветов. Это создает МНОГО
различных комбинаций операторов и критериев для каждого типа фильтра.
Я создал отдельные статьи для каждого из этих типов фильтров. Статьи содержат пояснения и примеры кода VBA.
- Как очистить фильтры с помощью VBA
- Как отфильтровать пустые и непустые ячейки
- Как фильтровать числа с помощью VBA
- Как фильтровать текст с помощью VBA
- Как отфильтровать цвета и значки с помощью VBA
Файл в разделе загрузок выше содержит все эти примеры кода в одном месте. Вы можете добавить его в свою личную книгу макросов и использовать макросы в своих проектах.
Пожалуйста, оставьте
комментарий ниже с любыми вопросами или предложениями. Спасибо!
На чтение 5 мин Опубликовано 15.01.2021
Таблицы, составленные в Microsoft Office Excel, можно отфильтровать по дате. Выставив соответствующий фильтр, пользователь сможет увидеть нужные ему дни, а сам массив сократится. В данной статье будут рассмотрены способы настройки фильтра по дате в Excel с помощью встроенных в программу инструментов.
Содержание
- Как наложить фильтр по дате на табличный массив
- Способ 1. Использование опции «Фильтр»
- Способ 2. Использование опции «Фильтр по дате»
- Способ 3. Выполнение фильтрации вручную
- Способ 4. Использование расширенного фильтра по дате
- Как отменить фильтр в Excel
- Заключение
Как наложить фильтр по дате на табличный массив
Существует ряд стандартных методов выполнения поставленной задачи, каждый из которых имеет свои нюансы. Для полного понимания темы, необходимо описать каждый способ по отдельности.
Способ 1. Использование опции «Фильтр»
Самый простой способ фильтрации табличных данных в Excel, который подразумевает соблюдение следующего алгоритма действий:
- Составить табличку, на которую необходимо наложить фильтр по дате. В этом массиве должны присутствовать конкретные числа месяца.
- Выделить составленную таблицу левой клавишей манипулятора.
- Перейти во вкладку «Главная» в верхней панели инструментов главного меню Excel.
- Нажать на кнопку «Фильтр» в отобразившейся панели опций. Также в этом разделе есть функция «Сортировка», которая меняет порядок отображения строк или столбцов в исходной таблице, сортируя их по какому-либо параметру.
- После выполнения предыдущей манипуляции на таблицу будет наложен фильтр, т.е. в названии столбцов массива появятся небольшие стрелочки, нажав на которые можно будет раскрыть варианты фильтрации. Здесь нужно кликнуть по любой стрелке.
- В открывшемся контекстном меню найти раздел «Область поиска» и выбрать месяц, по которому будет выполняться фильтрация. Здесь отображаются только те месяцы, которые есть в исходном табличном массиве. Пользователю необходимо поставить галочку напротив соответствующего месяца и нажать на «ОК» внизу окошка. Допустимо выбрать сразу несколько вариантов.
- Проверить результат. В табличке останется только информация по месяцам, выбранным пользователем в окне фильтрации. Соответственно лишние данные исчезнут.
Обратите внимание! В меню наложения фильтра можно отфильтровать данные по годам.
Способ 2. Использование опции «Фильтр по дате»
Это специальная функция, позволяющая сразу же фильтровать информацию в табличном массиве по датам. Чтобы ее активировать, необходимо проделать несколько шагов:
- Аналогичным образом наложить фильтр на исходную таблицу.
- В окне фильтрации найти строку «Фильтр по дате» и левой клавишей манипулятора кликнуть по стрелочке, расположенной справа от нее.
- Раскроется выпадающее меню. Здесь представлены варианты фильтрации данных по дате.
- К примеру, нажать на кнопку «Между…».
- Откроется окошко «Пользовательский автофильтр». Здесь в первой строчке необходимо указать начальную дату, а во второй конечную.
- Проверить результат. В таблице останутся только значения, находящиеся в промежутке между указанными датами.
Способ 3. Выполнение фильтрации вручную
Данный метод прост по реализации, однако отнимает у пользователя много времени, особенно если приходится работать с большими по объему таблицами. Чтобы вручную выставить фильтр, необходимо:
- В исходном табличном массиве найти даты, которые не нужны пользователю.
- Выделить найденные строки левой клавишей мышки.
- Нажать на кнопку «Backspace» с клавиатуры компьютера, чтобы удалить выделенные значения.
Дополнительная информация! В Microsoft Office Excel можно одновременно выделить несколько строчек в табличном массиве, чтобы сразу удалить их для экономии пользовательского времени.
Способ 4. Использование расширенного фильтра по дате
Выше был рассмотрен метод фильтрации значений в табличном массиве на основе опции «Между…». Для полного раскрытия темы необходимо обсудить несколько вариантов расширенного фильтра. Рассматривать все разновидности фильтра нецелесообразно в рамках данной статьи. Чтобы наложить на таблицу тот или иной фильтр по дате, необходимо:
- Наложить фильтр на таблицу через вкладку «Главная». О том, как это сделать, было рассказано выше.
- Раскрыть выпадающий список в заголовке любого столбика в таблице и щелкнуть ЛКМ по строчке «Фильтр по дате».
- Указать любой из вариантов. Для примера кликнем по строке «Сегодня».
- Информация в массиве отфильтруется по указанной дате. Т.е. в таблице останутся только те данные, у которых указана сегодняшняя дата. При выставлении такого фильтра Excel будет ориентироваться по дате, выставленной на компьютере.
- Выбрав вариант «Больше…», пользователю придется задать определенное число. После этого в табличном массиве останутся даты, которые больше указанной. Все остальные значения будут удалены.
Важно! Аналогичным образом применяются остальные варианты расширенной фильтрации.
Как отменить фильтр в Excel
Если пользователь случайно указал фильтр по дате, то для его отмены понадобится выполнить следующие действия:
- Выделить ЛКМ табличку, к которой применена фильтрация.
- Перейти в раздел «Главная» и щелкнуть по кнопке «Фильтр». Раскроется выпадающее меню.
- В контекстном меню необходимо нажать на кнопку «Очистить». После выполнения этого действия фильтрация отменится, и табличный массив примет исходный вид.
Обратите внимание! Отменить предыдущее действие можно с помощью кнопок «Ctrl+Z».
Заключение
Таким образом, фильтр по дате в Microsoft Office Excel позволяет в кратчайшие сроки убрать из таблицы ненужные числа месяца. Основные способы фильтрации были описаны выше. Для понимания темы с ними необходимо внимательно ознакомиться.
Оцените качество статьи. Нам важно ваше мнение:
Я извлекаю данные из другой таблицы и у меня есть фильтр в заголовке столбца. Даты варьируются от 2015 до 2018 года во все месяцы, недели и дни. Некоторые даты не группируются, например, 15/03/2018 свободна под складными коробками 2018, 2017, 2016 и 2015 годов.
Все даты взяты из одной исходной электронной таблицы, и Marco форматирует их все так же, как и /mm/yyyy при копировании.
2018-07-03 07:01
4
ответа
Выделите даты и перейдите к данным -> Текст в столбцы -> ОК
Работал на меня
2021-09-07 10:27
Я решил аналогичную проблему, скопировав столбец в блокнот и снова вставив его. После этого все даты были в одном формате.
2021-05-14 20:58
Я обнаружил, что формула ДАТА (ГОД (a1), МЕСЯЦ (a1), ДЕНЬ (a1)) переводит обе строки, которые выглядят как даты, и фактические даты в формат даты.
В этом случае поведение фильтрации и сортировки должно быть согласованным по столбцу.
2020-09-28 23:28
Убедитесь, что Excel распознает весь столбец как набор дат.
Группировка требует, чтобы все ячейки были отформатированы как даты. Группировка будет работать только в том случае, если в диапазоне нет пустых или текстовых ячеек и все ячейки имеют одинаковый формат даты.
Вы можете попробовать следующие шаги, чтобы исправить числовой формат в диапазоне:
- удалить любые числовые форматы (Домой -> Очистить -> Очистить форматы…). После этого шага ваши значения даты должны выглядеть как числа (например, 43284, 43285 и т. Д.)
- (необязательно) умножить весь диапазон на 1 (копируя «1» из одной ячейки и используя «Специальную вставку»). Этот шаг эффективно конвертирует все форматы ячеек в числовые
- (необязательно) используйте фильтр, чтобы проверить, остались ли какие-либо пустые / текстовые ячейки, и заполните их числовыми значениями (например, нулями)
- наконец, примените формат даты (Домой -> Номер -> Длинная дата)
2018-07-03 10:50