ВУЗы и колледжи

Формула в Exel`е, которая будет сравнивать фамилии и считать балл.

Вот пример: 1АвлиякуловАрсланДжоракулович38 2АдамчукМаксимВладимирович42 3АкбердинМаратОлегович47 4АкентьеваЕкатеринаАлександровна51 5АксеновМихаилВикторович51 ----------------------------------------------------------------------1АкбердинМаратОлегович43 2АкентьеваЕкатеринаАлександровна39 3АксёновИванАлександрович40 4АминовМамадалиМилазимович42 5БелькоЕвгенийАлександрович39 Акеньтьева совпадает и чтоб бал посчитал её общий... Акеньтьева: 90
Помещаешь Номер в ячейку А, Фамилию, Имя, Отчество в B, баллы в C - это 1-ая таблица.
D пропускаешь
Помещаешь Номер в ячейку E, Фамилию, Имя, Отчество в F, баллы в G - это 2-ая таблица.
H пропускаешь
Помещаешь Номер в ячейку I, Фамилию, Имя, Отчество в J, баллы в K - это итоговая таблица.
В 1 строке пишешь заголовки таблиц, начиная со 2 строки идут сами таблицы
Пишем макрос:
Dim i As Integer, k As Integer, n As Integer, Flag As Boolean
' Сравниваем данные (Фамилию, Имя, Отчество) в 1 и 2 таблицах
i = 2: n = 2
Do While Rows(i).Cells(2) <> "" ' Цикл по 1 таблице, пока она не кончится

k = 2: Flag = False
Do While Rows(k).Cells(6) <> "" ' Цикл по 2 таблице, пока она не кончится

' Вписываем людей, которые есть в обоих таблицах, суммируя результаты.
If (Rows(k).Cells(6) = Rows(i).Cells(2)) Then ' Если совпадают ФИО - Нашли соответствие
Rows(n).Cells(9) = n - 1 ' Номер по порядку в итоговой таблице
Rows(n).Cells(10) = Rows(i).Cells(2) ' ФИО
Rows(n).Cells(11) = Rows(i).Cells(3) + Rows(k).Cells(7) ' Баллы суммируются
n = n + 1 ' Переход к очередному номеру
Flag = True ' Флаг соответствия
End If

' Вписываем людей, которые есть только в 1 таблице
If Flag = False Then ' Не нашли соответствия
Rows(n).Cells(9) = n - 1 ' Номер по порядку в итоговой таблице
Rows(n).Cells(10) = Rows(i).Cells(2) ' ФИО
Rows(n).Cells(11) = Rows(i).Cells(5) ' Баллы из 1 таблицы
End If

k = k + 1
Loop

i = i + 1
Loop

' Сравниваем 2 таблицу с итоговой
i = 2
Do While Rows(i).Cells(8) <> ""

k = 2: Flag = False
Do While Rows(k).Cells(14) <> ""

' Пропускаем людей из 2 таблицы, которые уже есть в итоговой таблице
If (Rows(k).Cells(6) = Rows(i).Cells(10)) Then ' Если совпадают имя, фамилия и отчество
' Ничего не делаем
Flag = True ' Нашли соответствие
End If

' Вписываем людей, которые есть только во 2 таблице.
If Flag = False Then ' Не нашли соответствия
Rows(n).Cells(9) = n - 1 ' Номер по порядку в итоговой таблице
Rows(n).Cells(10) = Rows(i).Cells(8) ' ФИО
Rows(n).Cells(11) = Rows(i).Cells(11) ' Баллы из 2 таблицы
End If
k = k + 1
Loop

i = i + 1
Loop

End Sub

Таким образом, в таблицу будут записаны все - и те, кто встречается в обеих таблицах по 1 разу, и те, кто в обеих сразу, а у них баллы будут просуммированы.
Альмира Зукашева
Альмира Зукашева
92 642
Лучший ответ
Лена Чинарева сейчас попробую, спасибо за ответ)
Просто одной формулой не обойтись.
1) Надо поместить всё в один столбец так, чтобы не было между таблицами пустых строк.
2) Выделить всю таблицу с № п/п, ФИО и оценками, нажать Данные -> Сортировать по возрастанию по столбцу с ФИО -> ОК.
3) Сделать справа столбец и вбить туда формулу =ЕСЛИ (B1=B2;C1+C2;0)
4) Протянуть эту формулу вниз до конца. Если 0, значит один раз ФИО было, если цифры, значит сумма двух.
Динара ***
Динара ***
10 055