создать код vba для сортировки
Dinadin
Дата: Четверг, 18.12.2014, 08:31 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Нужно с помощью макроса отсортировать данные так, чтобы ФИО не повторялось, а код (столбец код) записывался в одну строку разделяясь через запятую. таблица примерно такая (сорри, файл вложить не могу, режет безопасность) всего 2 столбца ФИО Код Виктор Федорович 04 Виктор Федорович 26 Вика 04 Мария Федоровна 01 Федор 04 Серега 28 Серега 74 Серега 49 Яна 65 т.е. должно получится так: Виктор Федорович 04, 26 Вика 04 Мария Федоровна 01 Федор 04 Серега 28, 74, 49 Яна 65 помогите пожалуйста! очень нужно!
Нужно с помощью макроса отсортировать данные так, чтобы ФИО не повторялось, а код (столбец код) записывался в одну строку разделяясь через запятую. таблица примерно такая (сорри, файл вложить не могу, режет безопасность) всего 2 столбца ФИО Код Виктор Федорович 04 Виктор Федорович 26 Вика 04 Мария Федоровна 01 Федор 04 Серега 28 Серега 74 Серега 49 Яна 65 т.е. должно получится так: Виктор Федорович 04, 26 Вика 04 Мария Федоровна 01 Федор 04 Серега 28, 74, 49 Яна 65 помогите пожалуйста! очень нужно! Dinadin
Сообщение отредактировал Dinadin - Четверг, 18.12.2014, 08:37
Ответить
Сообщение Нужно с помощью макроса отсортировать данные так, чтобы ФИО не повторялось, а код (столбец код) записывался в одну строку разделяясь через запятую. таблица примерно такая (сорри, файл вложить не могу, режет безопасность) всего 2 столбца ФИО Код Виктор Федорович 04 Виктор Федорович 26 Вика 04 Мария Федоровна 01 Федор 04 Серега 28 Серега 74 Серега 49 Яна 65 т.е. должно получится так: Виктор Федорович 04, 26 Вика 04 Мария Федоровна 01 Федор 04 Серега 28, 74, 49 Яна 65 помогите пожалуйста! очень нужно! Автор - Dinadin Дата добавления - 18.12.2014 в 08:31
Pelena
Дата: Четверг, 18.12.2014, 08:46 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19572
Репутация:
4646
±
Замечаний:
±
Excel 365 & Mac Excel
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Dinadin
Дата: Четверг, 18.12.2014, 09:03 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
не поняла, как это вставить в эксель
не поняла, как это вставить в эксель Dinadin
Ответить
Сообщение не поняла, как это вставить в эксель Автор - Dinadin Дата добавления - 18.12.2014 в 09:03
Pelena
Дата: Четверг, 18.12.2014, 09:07 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19572
Репутация:
4646
±
Замечаний:
±
Excel 365 & Mac Excel
Это UDF (пользовательская функция) Как её использовать, можно почитать здесь
Это UDF (пользовательская функция) Как её использовать, можно почитать здесь Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Это UDF (пользовательская функция) Как её использовать, можно почитать здесь Автор - Pelena Дата добавления - 18.12.2014 в 09:07
Dinadin
Дата: Четверг, 18.12.2014, 09:31 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
вставила как функцию определенную пользоваталем. Но что то не различает одинаковые фио (
вставила как функцию определенную пользоваталем. Но что то не различает одинаковые фио ( Dinadin
Ответить
Сообщение вставила как функцию определенную пользоваталем. Но что то не различает одинаковые фио ( Автор - Dinadin Дата добавления - 18.12.2014 в 09:31
JayBhagavan
Дата: Четверг, 18.12.2014, 11:08 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация:
27
±
Замечаний:
0% ±
Excel 2010
Первый опыт со словарём.[vba]Код
Sub jjj() Set fio = Range([a2], [a2].End(xlDown)) Range(fio(1).Offset(, 3), UsedRange.SpecialCells(xlLastCell)).ClearContents Set fk = CreateObject("Scripting.Dictionary") For Each cl In fio fk.Item(cl.Value) = fk.Item(cl.Value) & cl.Offset(, 1) & ", " Next cl i = 0 For Each dc In fk i = i + 1 fio(i).Offset(, 3).Value = "'" & dc fio(i).Offset(, 4).Value = "'" & Mid(fk.Item(dc), 1, Len(fk.Item(dc)) - 2) Next dc End Sub
[/vba]
Первый опыт со словарём.[vba]Код
Sub jjj() Set fio = Range([a2], [a2].End(xlDown)) Range(fio(1).Offset(, 3), UsedRange.SpecialCells(xlLastCell)).ClearContents Set fk = CreateObject("Scripting.Dictionary") For Each cl In fio fk.Item(cl.Value) = fk.Item(cl.Value) & cl.Offset(, 1) & ", " Next cl i = 0 For Each dc In fk i = i + 1 fio(i).Offset(, 3).Value = "'" & dc fio(i).Offset(, 4).Value = "'" & Mid(fk.Item(dc), 1, Len(fk.Item(dc)) - 2) Next dc End Sub
[/vba] JayBhagavan
Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
Сообщение отредактировал JayBhagavan - Четверг, 18.12.2014, 11:09
Ответить
Сообщение Первый опыт со словарём.[vba]Код
Sub jjj() Set fio = Range([a2], [a2].End(xlDown)) Range(fio(1).Offset(, 3), UsedRange.SpecialCells(xlLastCell)).ClearContents Set fk = CreateObject("Scripting.Dictionary") For Each cl In fio fk.Item(cl.Value) = fk.Item(cl.Value) & cl.Offset(, 1) & ", " Next cl i = 0 For Each dc In fk i = i + 1 fio(i).Offset(, 3).Value = "'" & dc fio(i).Offset(, 4).Value = "'" & Mid(fk.Item(dc), 1, Len(fk.Item(dc)) - 2) Next dc End Sub
[/vba] Автор - JayBhagavan Дата добавления - 18.12.2014 в 11:08
Dinadin
Дата: Четверг, 18.12.2014, 12:34 |
Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
спасибо!
Ответить
Сообщение спасибо! Автор - Dinadin Дата добавления - 18.12.2014 в 12:34