У меня есть два столбца, которые содержат пары даты / времени в виде MM/DD/YYYY HH:MM:SS
, и мне нужно отфильтровать оба столбца, чтобы отображались только времена между 15:59:59 и 20:00:00, а дата не имеет значения. Я попытался сделать фильтр больше , чем в ??/??/???? 15:59:59
с меньше , чем фильтр ??/??/???? 20:00:00
но это просто скрывает все данные. Какие правильные параметры фильтра я должен использовать для отображения только тех данных, которые мне нужны?
3 ответа
Хотя =MOD(A1, 1)
даст вам время в виде числа от 0,000 до 0,999 ..., =HOUR(A1)
- целое число от 0 до 23. Затем отобразите 16
, 17
, 18
и 19
.
Кстати, оказывается, что =HOUR(A1)
работает как с фактическими значениями даты / времени, так и со строками, которые выглядят как времена (с необязательной датой).
Редактировать:
Как предложено выше, один из способов решения вашей проблемы - установить вспомогательный столбец, содержащий =HOUR(A1)
, а затем отфильтровать этот столбец, чтобы отобразить строки, содержащие 16
, 17
, 18
или 19
, и скрыть остальные. Другим было бы установить вспомогательный столбец с
=IF(AND(HOUR(A1)>=16,HOUR(A1)<20), "good", "bad")
Поэтому строки, в которых время находится в желаемом диапазоне, отображаются как « good
», а остальные - как « bad
». Затем отфильтруйте, чтобы отобразить « good
» строки и скрыть « bad
» строки.
(Очевидно, что если пользователи чувствительны к выбору слов, их можно изменить.)
Преимущество этого заключается в том, что он позволяет легко обрабатывать несколько столбцов данных дискриминатора с помощью одного вспомогательного столбца. Если я правильно понимаю ваш вопрос, у вас есть два столбца даты / времени, и вы хотите видеть только те строки, в которых оба значения находятся ближе к вечеру или раннему вечеру. Так что положи это
=IF(AND(HOUR(A1)>=16,HOUR(A1)<20,HOUR(B1)>=16,HOUR(B1)<20), "good", "bad")
в вашу колонку помощников.
Теперь сделайте следующий шаг:
=IF(AND(HOUR(A1)>=16,HOUR(A1)<20,
…,
… возможно, другие условия),
""
, "bad")
Теперь строки, в которых время находится в нужном диапазоне, отображаются пустыми, а остальные - как « bad
». Затем отфильтруйте, чтобы отобразить строки с пробелом в вспомогательном столбце и скрыть « bad
» строки. Таким образом, после включения фильтра пользователи не увидят, что в столбце помощника есть что-либо.
И, конечно же, помимо скрытия вспомогательного столбца (как предложил kobaltz и объяснение Тейлина), вы можете сделать такие вещи, как поместить его в столбец Z
(за край экрана), изменить цвет шрифта на белый и скрыть данные с пользовательским форматом.
Вы можете использовать формулу, как это
=RIGHT(A2,LEN(A2)-FIND(":",A2,1)+2)
что займет
01/31/2013 3:30PM
и вернуться
3:30PM
Оттуда вы можете сделать свою фильтрацию и сортировку.
пожалуйста, проверьте
- Настройки даты и времени вашей операционной системы.
Следующее VBA сработало: -
ActiveSheet.Select Range("A1").Select With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With Selection.AutoFilter ActiveSheet.Range("$A$1:$J$" & LastRow).AutoFilter Field:=1, Operator:= xlFilterValues, Criteria2:=Array(1, Format(#17/04/2004#, "m/d/yyyy"))
Помните, что формат даты и времени операционной системы и лист Excel должны совпадать.