根据上次遇到的实例和列匹配减去2行

时间:2013-02-06 03:21:11

标签: excel excel-vba excel-formula vba

我有一个非常大的数据集(下面的示例),我需要比较(列B主机,列D游戏)与上次遇到相同的列对值(列B主机,列D游戏)和减去日期栏。

请注意,这个对将有多个实例,但我需要最后一个匹配的实例相对于当前行,因为我按时间对数据进行了排序。

我想我需要一个宏/数组来循环并找到要减去的最后一个匹配。有什么想法吗?

我无法上传图片以显示我的列,因为缺少点,因此请将数据粘贴到此处。

image

Date        Host                            Process        Game                Status   Delay

14:22:23    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d042.sim.df    DOWN    
14:22:54    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d045.sim.df    UP  
14:22:59    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d023.sim.df    DOWN    
14:23:04    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d111.sim.df    DOWN    
14:23:08    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d024.sim.df    DOWN    
14:23:16    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d122.sim.df    DOWN    
14:23:17    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d071.sim.df    DOWN    
14:23:17    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d118.sim.df    DOWN    
14:23:20    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d196.sim.df    DOWN    
14:23:21    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d045.sim.df    DOWN    
14:23:23    ns-mtc-gameserver-b-2.lb.df.com 172.29.101.10   game-d042.sim.df    DOWN    

进行细胞A12-A1

1 个答案:

答案 0 :(得分:1)

您可以输入此数组公式,使用 Ctrl Shift 输入,我相信它可以满足您的需求:

=$A2-(INDEX($A3:$A$12,MATCH(1,(($B3:$B$12=B2)*($D3:$D$12=D2)),0)))

编辑:

为了使其格式化为秒,您需要切换减法的顺序,以便获得正结果。 Excel不会格式化负秒:

=(INDEX($A3:$A$12,MATCH(1,(($B3:$B$12=B2)*($D3:$D$12=D2)),0)))-$A2