我想找到与当前表行中的值匹配的最后一个条目。
| 识别码|名称名称名称|姓氏|当前薪资|旧薪金|
| - -|- -|- -|- -|- -|
| 一个|丽莎|史密斯公司|万||
| 2个|托马斯|富|五千||
| 三个|丽莎|富兰克林|九万||
| 三个|丽莎|史密斯公司|二万|10000(从第一个条目中获取值,按姓名匹配)|
在该场景中,我希望“旧薪金”引用由姓名“丽莎”和姓氏“Smith”匹配的第一个条目ID 1的“当前薪金”的值。
有人有好的方法吗?我有点不知道
我在网上找到了这个代码,它几乎是我的用例,但不完全是。有什么想法如何修改它为我的用例?
Function ItemLookup(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
Dim i As Long
For i = LookupRange.Columns(1).Cells.Count To 1 Step -1
If Lookupvalue = LookupRange.Cells(i, 1) Then
ItemLookup = LookupRange.Cells(i, ColumnNumber)
Exit Function
End If
Next i
End Function
1条答案
按热度按时间oyxsuwqo1#
不需要任何VBA代码即可完成所需的工作。
在“旧薪金”列中,您需要一个指数匹配公式。如果您想按“姓名”匹配此列,则需要一个用于此类数据的列。这可以通过=B2&C2或=B2&”“&C2等公式来完成。此类公式的列可以隐藏。
然后,您需要在此列上使用索引匹配。并且您希望找到最后一个出现的数据集。请阅读以下内容了解如何找到第n个出现的数据集:https://exceljet.net/formulas/get-nth-match-with-index-match