Задача - нужно подвести итог серии из Х турниров, произвольные участники и их кол-во. Дано - Х листов с результатами турниров пример 1 турнир, 1 лист имя баллы ivan 11.5 vasya 8 petya 5 olya 2
2 турнир, 2 лист имя баллы vasya 10.5 john 7.5 ivan 1.5
3 турнир, 3 лист имя баллы masha 15.5 olya 9.5 ivan 7.5 john 4.5 petya 1
и т.д.
Как я понимаю необходимо пройти по всем строкам всех листов результатов отдельных турниров и если есть имя в итоговой таблице, то прибавить баллы, если имени нет, добавить новую строку с результатом отдельного турнира. Подскажите, пожалуйста.
Задача - нужно подвести итог серии из Х турниров, произвольные участники и их кол-во. Дано - Х листов с результатами турниров пример 1 турнир, 1 лист имя баллы ivan 11.5 vasya 8 petya 5 olya 2
2 турнир, 2 лист имя баллы vasya 10.5 john 7.5 ivan 1.5
3 турнир, 3 лист имя баллы masha 15.5 olya 9.5 ivan 7.5 john 4.5 petya 1
и т.д.
Как я понимаю необходимо пройти по всем строкам всех листов результатов отдельных турниров и если есть имя в итоговой таблице, то прибавить баллы, если имени нет, добавить новую строку с результатом отдельного турнира. Подскажите, пожалуйста.Ron
В макросе можно вынести вывод результата из цикла. Замените фрагмент кода [vba]
Код
For i = 1 To j1 For j = 1 To j2 If uniArr(i, 1) = allArr(j, 1) Then uniArr(i, 2) = uniArr(i, 2) + allArr(j, 2) Next j Sheets("Итог серии").Range("A" & i) = uniArr(i, 1) Sheets("Итог серии").Range("B" & i) = uniArr(i, 2) Next i
[/vba] на следующий [vba]
Код
For i = 1 To j1 For j = 1 To j2 If uniArr(i, 1) = allArr(j, 1) Then uniArr(i, 2) = uniArr(i, 2) + allArr(j, 2) Next j Next i Sheets("Итог серии").Range("A1").Resize(i, 2) = uniArr()
[/vba]
В макросе можно вынести вывод результата из цикла. Замените фрагмент кода [vba]
Код
For i = 1 To j1 For j = 1 To j2 If uniArr(i, 1) = allArr(j, 1) Then uniArr(i, 2) = uniArr(i, 2) + allArr(j, 2) Next j Sheets("Итог серии").Range("A" & i) = uniArr(i, 1) Sheets("Итог серии").Range("B" & i) = uniArr(i, 2) Next i
[/vba] на следующий [vba]
Код
For i = 1 To j1 For j = 1 To j2 If uniArr(i, 1) = allArr(j, 1) Then uniArr(i, 2) = uniArr(i, 2) + allArr(j, 2) Next j Next i Sheets("Итог серии").Range("A1").Resize(i, 2) = uniArr()