![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 28.05.2008
Сообщений: 9
|
![]()
Мужики, кто может помогите с таблицами, Excel не знаю, но по работе очень нужно это сделать. Есть 1 файл, в нем 2 листа, а в каждом листе списки льготников, надо чтобы получился 1 лист и если есть совпадение между листами, надо чтобы столбец "сумма" складывался у тех, кто в обоих списках. А так на выходном листе должны быть все без изменение (при совпадении) кроме столбца "сумма" а если совпадения нет, чтобы человек просто переносился. Я так думаю надо как - то сравнение реализовать по номеру удостоверения и фамилии наверно.
Очень прошу помочь, крайне надо по работе, как бы не уволили если не сделаю. |
![]() |
![]() |
#2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Посмотрите вложение. Запустите макрос "Main".
Если, например, фамилии на листах 1 и 2 совпадают, а номера удостоверений нет (и наоборот), то это рассматривается как разные записи. Так? После формирования общего списка, данные сортируются по фамилиям.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#3 |
Регистрация: 28.05.2008
Сообщений: 9
|
![]()
Благодарю! Выше всяких похвал! Все просто и профессионально! Лишний раз убеждаюсь, что программист - это достойнейшая профессия и должна уважаться больше, нежели сейчас принято в среде тех, кто плохо знаком с компьютерами.
Да, как разные, но знаете просматривая ОГРОМНЫЕ списки (я ведь просто кусок выдернул, дабы большой файл не закачивать) я подумал о том, что ведь может быть опечатка в удостоверении, запись весьма неудобно делают, а если будет опечатка - то человек будет "новый". Я вот думаю, может убрать фильтрацию по удостоверению и искать одинаковых людей по фамилии, улице, номеру дома и номеру корпуса (если он к примеру существует), при совпадении вышеперечисленных пунктов считать одним человеком и суммировать. Это я полагаю возможно сделать. Можете помочь? Я буду весьма благодарен. |
![]() |
![]() |
#4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
В следующем примере контролируется совпадение людей по фамилии, улице, номеру дома и номеру корпуса и номеру квартиры. Все данные в этих ячейках должны быть записаны без лишних пробелов, но если есть необходимость, можно это поручить макросу.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#5 |
Регистрация: 28.05.2008
Сообщений: 9
|
![]()
Спасибо за помощь, но есть проблема, при условии, что сортировка отключена (либо без нее, но тогда сложнее вычислить) макрос падает после 255 строки, то есть 255 строчек он обрабатывает, а дальше все воспринимает как уникальные записи. Все это происходило при условии, когда на каждой странице было по 20 с лишним тысяч льготников. Вы говорили о пробелах, я немного не понял, но суть в том, что лучше пусть скрипт их убирает. Так как во всех столбцах кроме улицы пробелы легче убрать, нежели в столбце с улицей, ведь там надо маску задать для замены, ввида {любой количество букв и чисел } пробел - > заменить на пустоту.
Я прикладываю Файл с большим списком, прошу помочь разобраться с падением Вашего макроса после 255 строчки обсчета. Файл размером 2 с лишним мегабайта не подргужался к сообщению - залил на файлообменник. http://depositfiles.com/ru/files/5674782 |
![]() |
![]() |
#6 |
Регистрация: 28.05.2008
Сообщений: 9
|
![]()
И еще буду очень благодарен если Вы уберете из макроса сравнение по корпусу.
|
![]() |
![]() |
#7 | |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]() Цитата:
And .Cells(i, "F") = Cells(y.Row, "F")
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
|
![]() |
![]() |
#8 |
Регистрация: 28.05.2008
Сообщений: 9
|
![]()
Спасибо. Но падения макроса это не убирает.
|
![]() |
![]() |
#9 | |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]() Цитата:
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
|
![]() |
![]() |
#10 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
К сожалению, не получается скачать файл по Вашей ссылке. Прикрепите архив во вложении. Формат, например, RAR - позволяет разместить объем до 7, 5 Мбайт.
Посмотрите вложение (пока с малым количеством данных). Здесь макрос убирает "лишние" пробелы и исключена проверка на совпадение данных в столбце "F". В коде макроса присутствуют небольшие комментарии. Небольшое пояснение: лист 1 просто копируется в лист "Общий", затем проходим по всем строкам листа 2 и ищем совпадения значений в контролируемых столбцах листа "Общий". Нашли - складываем результаты. Не нашли - добавляем строку. Т.е. если есть повторяющиеся записи в листе 1, то они будут присутствовать и в листе "Общий". Нужно ли это отлавливать и исключать? Если "Да", то что при этом делать? Попробуйте перенести этот макрос в Ваш рабочий файл и запустить (может дело именно в наличии "лишних" пробелов). P.S. Работа макроса при большом количестве строк листов (десятки тысяч) может занимать несколько минут. P.P.S Если не поможет - прикрепите все-таки Ваш большой файл.
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 02.06.2008 в 08:29. Причина: Добавлено |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прошу помочь с заданием =(( | Lexxich | Помощь студентам | 1 | 14.06.2008 12:34 |
Прошу помочь. Оплачу. | dreo | Фриланс | 8 | 22.12.2007 00:35 |
прошу помочь начинающему программисту | evgeni883 | Свободное общение | 7 | 26.09.2007 21:46 |
Прошу помочь с запросом | MASTERKEY | БД в Delphi | 0 | 18.05.2007 15:15 |
Прошу по помочь с TMonthCalendar, | Azamat_k | Компоненты Delphi | 12 | 04.04.2007 13:36 |