3

У меня есть два столбца, которые содержат пары даты / времени в виде MM/DD/YYYY HH:MM:SS , и мне нужно отфильтровать оба столбца, чтобы отображались только времена между 15:59:59 и 20:00:00, а дата не имеет значения. Я попытался сделать фильтр больше , чем в ??/??/???? 15:59:59 с меньше , чем фильтр ??/??/???? 20:00:00 но это просто скрывает все данные. Какие правильные параметры фильтра я должен использовать для отображения только тех данных, которые мне нужны?

3 ответа3

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 (за край экрана), изменить цвет шрифта на белый и скрыть данные с пользовательским форматом.

1

Вы можете использовать формулу, как это

=RIGHT(A2,LEN(A2)-FIND(":",A2,1)+2)

что займет

01/31/2013 3:30PM

и вернуться

3:30PM

Оттуда вы можете сделать свою фильтрацию и сортировку.

0

пожалуйста, проверьте

  1. Настройки даты и времени вашей операционной системы.

  1. Следующее 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 должны совпадать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .