根据字符串从不同的工作表中获取行

Get row from different sheets based on a string

我有多个 sheet,用于跟踪每个人的抽奖券数量。

主要sheet:

|-----------|------------------|
|    Name   |     # of tickets |
|-----------|------------------|
|   Adam    |         5        |
|-----------|------------------|
|   Michael |         2        |
|-----------|------------------|
|   Sara    |         4        |
|-----------|------------------|

Sheet 1:

|-----------|------------------|---------------|
|    Name   |     Activity     | # of tickets  |
|-----------|------------------|---------------|
|   Adam    |  Registration    |        2      |
|-----------|------------------|---------------|
|   Michael |  Registration    |        2      |
|-----------|------------------|---------------|
|   Sara    |  Registration    |        2      |
|-----------|------------------|---------------|

Sheet 2:

|-----------|------------------|---------------|
|    Name   |     Activity     | # of tickets  |
|-----------|------------------|---------------|
|   Adam    |  Registration    |        2      |
|-----------|------------------|---------------|
|   Sara    |  Registration    |        2      |
|-----------|------------------|---------------|
|   Adam    |  Extra ticket    |        1      |
|-----------|------------------|---------------|

问题: 如何使 Main Sheet 根据 Sheet 1、Sheet 2...Sheet n 自动更新? 所以基本上 Main Sheet 应该根据 Column "Name" 获取每个 Sheet 的行,然后获取 # of tickets 的值并在 main sheet 中求和。

创建代码块宏vba

Sub GetInfoSheet()

    Dim WS_Count As Integer
    Dim I As Integer                             
    Dim SumAdam As Integer
    Dim SumMichel As Integer
    Dim SumSara As Integer

    WS_Count = ActiveWorkbook.Worksheets.Count

    For I = 2 To WS_Count
        strTest = ActiveWorkbook.Worksheets(I).Cells(3, 3)
        SumAdam = SumAdam + CInt(strTest)
        strTest = ActiveWorkbook.Worksheets(I).Cells(4, 3)
        SumMichel = SumMichel + CInt(strTest)
        strTest = ActiveWorkbook.Worksheets(I).Cells(5, 3)
        SumSara = SumSara + CInt(strTest)

    Next I

    With ActiveWorkbook.Worksheets(1)
        .Cells(3, 3).Value = SumAdam
        .Cells(4, 3).Value = SumMichel
        .Cells(5, 3).Value = SumSara

    End With
End Sub

这样回复你的数据:主要 Sheet 和 2 sheet 数据:

在我的MainSheet中,B1中使用的公式是:

=SUMIF(Sheet1!$A:$A;A1;Sheet1!$C:$C)+SUMIF(Sheet2!$A:$A;A1;Sheet2!$C:$C)

您需要为每个要添加的 sheet 个 SUMIF。

Function SUMIF