我有两列包含日期/时间对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 之间的整数。然后显示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 建议和 teylyn 解释的那样)之外,您还可以将其放在列中Z
(屏幕边缘以外)、将字体颜色更改为白色以及使用自定义格式隐藏数据。
答案2
你可以使用这样的公式
=RIGHT(A2,LEN(A2)-FIND(":",A2,1)+2)
这将需要
01/31/2013 3:30PM
并返回
3:30PM
从那里您可以进行过滤和排序。
答案3
请检查
- 操作系统的日期和时间设置。
遵循 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 表的日期和时间格式应该匹配。