我有一个马展示点电子表格,其中马匹名称和骑手需要与其他表格中的相同配对匹配。因此,第 1 列是马名,第 2 列是骑手名称,我想显示另一张具有相同马/骑手对的总分。
因此,sheet1`row1 第 3 列需要从表 2 中找到相同的马/骑手对(a 和 b 列)并显示总点数(在该马/骑手对列出的某行的 sheet2 列 q 中总计)。
我不确定从哪里开始创建这样的公式。我确实尝试过使用 vlookup,但这似乎不允许我制作一个包含两列的数组并将其与另一个数组进行比较,我认为这是我正在尝试做的。
如果你想使用 VBA,你可以插入一个新模块并将这段代码复制进去。然后你可以在一个单元格中使用该函数=GetPointTotal( HorseCell
, RiderCell
)
Option Explicit
Function GetPointTotal(horseRange As Range, riderRange As Range)
Dim cell As Range, searchRange As Range
Dim displaySheet As Worksheet, pointSheet As Worksheet
Dim iEndRow As Integer
Dim horseCol As String, riderCol As String, pointCol As String, points As String
Dim b As Boolean
'Configuration
Set displaySheet = ThisWorkbook.Worksheets("Sheet1")
Set pointSheet = ThisWorkbook.Worksheets("Sheet2")
horseCol = "A"
riderCol = "B"
pointCol = "Q"
'EndConfiguration
iEndRow = pointSheet.Range(horseCol & 1).End(xlDown).Row
Set searchRange = pointSheet.Range(horseCol & 1 & ":" & horseCol & iEndRow)
b = False
For Each cell In searchRange
If b = True Then Exit For
If cell.Value2 = horseRange.Value2 Then
If cell.Offset(0, 1).Value2 = riderRange.Value2 Then
points = pointSheet.Range(pointCol & cell.Row).Value2
b = True
End If
End If
Next cell
GetPointTotal = points
End Function
我认为您可能会找到最简单的解决方案(当然,除了运行其他人为您编写的宏)是在两张纸的最左侧插入一列,然后=B2&" | "&C2
在这些列的 Row2 中放置类似的内容(假设您的其他列有标签)然后复制下来并使用如下公式:
=IFERROR(VLOOKUP(A2,'Sheet 2'!A:R,18,FALSE),"")
(也在第 2 行并复制下来)查找点。