[英]Excel VBA - Get row of latest change in a parameter
我有一个看起来像这样的大数据集:
Employee ID |Job| Function| Level|Date of change
1 | x | a | A1 | 01/05/2014
1 | y | a | A1 | 02/04/2015
1 | y | a | A2 | 25/08/2015
1 | z | a | A3 | 27/12/2015
1 | z | c | A3 | 01/03/2016
2 | t | b | B1 | 12/05/2013
2 | v | b | B1 | 13/04/2014
2 | w | b | B3 | 12/01/2016
每行都包含作业,功能或级别的更改。
我需要创建一个表,该表汇总每个员工的最新级别更改(因此,对于员工1,它将是第4行)。 到目前为止,我已经结合使用了条件格式和数据透视,但是我想知道是否可以在VBA中更快地完成此操作。
谢谢!
不确定这是否是最佳解决方案,但是由于这是一次性的练习,因此我使用了这个技巧:
VBA查找级别发生变化的所有行,并在适用的情况下在列“ F”中写“是”:
Sub JLChange() Dim Data As Worksheet Dim i As Long Dim lastrow As Long Set Data = ThisWorkbook.Worksheets("Data") lastrow = Data.Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lastrow If Cells(i + 1, 4).Value <> Cells(i, 4).Value And_ Cells(i + 1,1).Value = Cells(i, 1).Value Then Cells(i + 1, 6).Value = "Yes" Else Cells(i + 1, 6).Value = "No" End If Next i End Sub
对于“ F”列中的所有记录,我使用了加里的学生建议的公式来进行最后的更改。
或者,您可以将此更改数据库复制粘贴到新表中,按ID以及从最新到最早的更改日期排序,然后使用vlookup获取每个ID的第一个条目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.