根据时间范围过滤日期时间列?

根据时间范围过滤日期时间列?

我有两列包含日期/时间对MM/DD/YYYY HH:MM:SS,我需要过滤这两列,以便只显示 15:59:59 和 20:00:00 之间的时间,日期无关紧要。我尝试使用大于过滤器??/??/???? 15:59:59和小于过滤器??/??/???? 20:00:00,但这只会隐藏所有数据。我应该使用哪些正确的过滤器参数来仅显示我需要的数据?

答案1

将会=MOD(A1, 1)得到介于 0.000 和 0.999 之间的数字时间……,=HOUR(A1)将会得到介于 0 和 23 之间的整数。然后显示16171819

=HOUR(A1)顺便说一句,事实证明两个都实际日期/时间值,以及看起来像时间的字符串(带有可选日期)。


编辑:

如上所述,解决问题的一种方法是建立一个包含 的辅助列=HOUR(A1),然后过滤该列以显示包含161718或 的行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 建议和 teylyn 解释的那样)之外,您还可以将其放在列中Z(屏幕边缘以外)、将字体颜色更改为白色以及使用自定义格式隐藏数据。

答案2

你可以使用这样的公式

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

这将需要

01/31/2013 3:30PM

并返回

3:30PM

从那里您可以进行过滤和排序。

答案3

请检查

  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 表的日期和时间格式应该匹配。

相关内容