比较单元格之间的日期和时间并创建首先出现的版本控制列

时间:2018-05-31 15:40:59

标签: excel excel-vba vba

screen shot of excel

您好, 我的Excel工作表中有3列。列A是项目编号,列B是文件名称,列C是文件被修改的日期/时间(在excel中称为匹配)。我创建了一个名为版本控制的D列,通过比较具有相同项目编号的文件的日期和时间,现在我手动执行此操作,它是否可以自动化? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

假设您的数据在第1行中有列标题,那么数据从第2行开始,版本从单元格D2开始,并且只是说您的数据延伸到第100行,您可以使用以下公式在单元格D2中:

D2: =COUNTIFS($A$2:$A$100,A2,$C$2:$C$100,"<="&C2)

基本上,你说For every file with the same Item number, how many have a date/time less than or equal to this row's? 实际上,这将为您提供版本号。

根据评论的要求,为了更深入地解释这个公式,让我们分解一下:

标题匹配:

  • CountIfs($A$2:$A$100,A2

    此部分说&#34;仅计算$A$2:$A$100中的值= A2&#34;中的值 - 因此,仅计算项目编号与当前行中的项目编号相同的行

<强>版本:

  • CountIfs($C$2:$C$100,"<="&C2

    这部分说&#34;计算与C2&#34;相等或相等的日期数。 - 因此,我们有多少日期小于或等于当前行中的日期。

所以,如果你把它们放在一起,你会得到:

1)仅计算项目编号与当前行相同的值   2)其中,有多少行包含的日期小于或等于当前行中包含的日期。

实际上,它为您提供了每行的版本号。

希望能做到。

答案 1 :(得分:0)

在您的单元格D2中尝试此操作:(您可能需要更大范围):=1+SUMPRODUCT(($A$2:$A$18=A2)*($C$2:$C$18>C2))