excel VBA使用日期和时间列查找最近时间

oknrviil  于 2023-03-13  发布在  其他
关注(0)|答案(2)|浏览(394)

正在执行VBA程序......在G列中有很长的日期列表(11/23/2016等),在另一个K列中有时间h:m:s(23:15:27)
需要VBA方法来查找最早和最晚的日期时间,可能使用最小值和最大值函数。这些函数似乎对任一列都很好...但如何在两列上这样做。请注意,如果发生在较早的日期,较晚的 * 出现 * 时间(例如09:23:11 vs 03:25:11)可能是实际较早的真实的时间。
我不想生成任何额外的列,因为这些列都是高度指定的显示排列,只是想使用已经存在的信息
我在单元格的列范围内尝试了最小值和最大值...它们在任一列上都工作正常,但需要COMBINED列信息的最小值

deikduxw

deikduxw1#

对于最大值,简单的array formula(使用Ctrl+Shift+Enter进行验证)将执行以下操作:

=MAX(G:G+K:K)

对于最小值,您使用的区域下的所有单元格(一直向下到工作表的底部)都是必须忽略的空白。同样,要验证为数组公式:

=MIN(IF(NOT(ISBLANK(G:G)), G:G+K:K))

但是,如果列有文本标题,则需要修改公式以忽略非数字值(在后台,日期和时间在Excel中是数字);空格不是数字:

=MAX(IF(ISNUMBER(G:G), G:G+K:K))
=MIN(IF(ISNUMBER(G:G), G:G+K:K))

更好的是,有一些方法可以阻止公式对整个列进行计算,这意味着您可以简化公式以忽略工作表的标题和底部。
更好的是,如果您可以将范围格式化为表格(请参见herehere),并假设您的表格名为Table1,列为Date columnTime column

=MAX(Table1[Date column]+Table2[Time column])
=MIN(Table1[Date column]+Table2[Time column])
mw3dktmi

mw3dktmi2#

不要忘记在公式上按Shift+Ctrl+Enter。由于某种原因,MAX/MIN(IF(ISNUMBER(G:G);H:H+G:G))起作用,但:最大值/最小值(如果(IS编号(G:G);G:G+H:H))不起作用。也就是说,一天中的小时数必须在求和之前

相关问题