Top.Mail.Ru
Ответы

Вопрос знатокам excel

Знатоки, подскажите пожалуйста, который час сижу и голову ломаю. Есть Столбец А в нём распологаются ФИО сотрудников, ФИО могут повторяться, а могут и нет,е сть значения в столбцах с H до Q справа от каждого ФИО
Пример:
Иванов иван Иванович Значение1 Значение2
Иванов иван Иванович Значение3
Иванов иван Иванович Значение6
Петров Петр Петрович Значение1


Справа от каждого ФИО значения не повторяются то есть если в одной строке у Иванова есть Значение1 то во второй строке у этого же Иванова Значение1 быть не может.

Задача: Необходимо с помощью формул или же макроса(если есть такая возможность)
записать все значения у повторяющихся ФИО в одну строку т.е.
Дано:
Иванов иван Иванович Значение1 Значение2
Иванов иван Иванович Значение3
Иванов иван Иванович Значение6
Решение
Иванов иван Иванович Значение1 Значение2 Значение3 Значение6
Порядок значение не важен

По дате
По Рейтингу
Аватар пользователя
Новичок
5мес

Самый "топорный" способ, который пришел в голову.

  1. Сделать concat столбцов от H до Q c разделителем ";" например. Это будет колонка к примеру "AB".

  2. В колонке, например, "ABC" пишем: =IF(A2=A1,AB2&ABC1,AB2).


Должно получиться, либо чуть докрутите логику.

Аватар пользователя
Просветленный
5мес

Как-то так

Sub DobZnach()
Dim cFIO As Long, cZnach As Long, rStart As Long, rStop As Long 'входные адреса ФИО и значений
Dim rIn1 As Long, rIn2 As Long, cOut As Long 'текущие адреса входа и выхода
Dim stFIO As String 'ФИО сотрудника
'
cFIO = 1 'задать столбец с ФИО
cZnach = 2 'задать столбец со сзначениями
rStart = 2 'задать начальную строку
rStop = 10 'задать конечную строку
'
For rIn1 = rStart To rStop
stFIO = Cells(rIn1, cFIO)
cOut = cZnach
For rIn2 = rIn1 + 1 To rStop
If stFIO = Cells(rIn2, cFIO) Then
cOut = cOut + 1
Cells(rIn1, cOut) = Cells(rIn2, cZnach)
End If
Next rIn2
Next rIn1
End Sub

Аватар пользователя
Искусственный Интеллект
5мес

тебе надо преобразовать таблицу - значит макрос нужен.
Сначала отсортировать по первому столбцу (чтобы все строки на одного ФИО стали рядом), а после переносить значения из соседних строк (в столбцах с H по Q) в первую из блока повторяющихся строк. Попутно удаляя остальные строки из этого блока.
Это - логика макроса.

Аватар пользователя
Искусственный Интеллект
5мес

Это называется "сводная таблица"

Аватар пользователя
Мастер
5мес

ех а я мастер не судьба значит тебе ответить