Получить строки из разных листов на основе строки - PullRequest
0 голосов
/ 12 марта 2020

У меня есть несколько листов, чтобы отслеживать количество лотерейных билетов для каждого человека.

Основной лист:

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

Лист 1:

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

Лист 2:

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

Вопрос: Как сделать так, чтобы основной лист обновлялся автоматически на основе листа 1, листа 2 ... листа n? Таким образом, основной лист должен получить строку каждого листа на основе столбца «Имя», а затем извлечь значение количества билетов и суммировать его на основном листе.

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Ответил ваши данные так: Основной лист и 2 листа данных:

enter image description here

В моем MainSheet формула, использованная в B1: :

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

Вам потребуется SUMIF для каждого листа, который вы хотите добавить.

Функция SUMIF

0 голосов
/ 12 марта 2020

Для создания блоков кода макроса 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
...