-1

我有一个马展示点电子表格,其中马匹名称和骑手需要与其他表格中的相同配对匹配。因此,第 1 列是马名,第 2 列是骑手名称,我想显示另一张具有相同马/骑手对的总分。

因此,sheet1`row1 第 3 列需要从表 2 中找到相同的马/骑手对(a 和 b 列)并显示总点数(在该马/骑手对列出的某行的 sheet2 列 q 中总计)。

我不确定从哪里开始创建这样的公式。我确实尝试过使用 vlookup,但这似乎不允许我制作一个包含两列的数组并将其与另一个数组进行比较,我认为这是我正在尝试做的。

4

2 回答 2

0

如果你想使用 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
于 2013-09-22T19:52:31.503 回答
0

我认为您可能会找到最简单的解决方案(当然,除了运行其他人为您编写的宏)是在两张纸的最左侧插入一列,然后=B2&" | "&C2在这些列的 Row2 中放置类似的内容(假设您的其他列有标签)然后复制下来并使用如下公式:

=IFERROR(VLOOKUP(A2,'Sheet 2'!A:R,18,FALSE),"")  

(也在第 2 行并复制下来)查找点。

于 2013-09-22T19:45:00.513 回答