![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.09.2013
Сообщений: 15
|
![]()
Здравствуйте! помогите,плиз,полному профану в программировании. Есть файлы от управляющих компаний с адресами по квартплате с разбивкой по услугам. В одном файле какое-то количество услуг не равных нулю (например, содержание и ремонт,отопление)и в другом файле какое-то количество других услуг( например, горячая вода,холодная вода,водоотведение, электричество) не равных нулю. Нужно сравнить содержимое всех полей 2-х файлов и если адрес совпадает,то суммировать поля с общим начислением (Nach),долгом (Debt),оплатой (Opl), остальные поля слить в один файл.Возможно ли написать такой макрос, который будет делать сравнение и слияние с суммированием?? Мне приходится практически всё делать руками,при огромных массивах это очень тяжело. Файлы прилепила. Спасибо.
Если Вы всё понимаете, значит Вам не обо всём говорят
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Не понятна изначальная ситуация - где что как...
Но общая схема может быть такая - циклом по источникам заполняете данными словарь - ключём берите адрес|услуга, в item начисленное значение. Его можно сразу суммировать при повторе. Далее циклом по сводному файлу извлекаем по ключу собранное в словаре. Или можно параллельно собрать два словаря или коллекции с адресами и услугами, выгрузить их на лист как шапки сбоку/сверху, затем заполнить "шахматку" собранным в словаре. В общем, почитайте про Scripting.Dictionary.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
#3 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
![]() Цитата:
![]() хорошие инструкции, Игорь... по ним даже мне непросто будет макрос написать, а неспециалисту вообще в этом не разобраться) PS: Извиняюсь за OFFTOP --------- вдруг кому пригодится -------------- Цитата:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 30.09.2013 в 09:40. |
||
![]() |
![]() |
#4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
А что ещё можно сказать по таким исходным данным?
Или нужно было молча пройти мимо, как все другие 12 часов ходят? И в общем я готов об этом поговорить ![]() Хотя думаю если почитать про словарь - то мою мысль можно уловить ![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
#5 |
Пользователь
Регистрация: 11.09.2013
Сообщений: 15
|
![]()
спасибо! мне действительно не разобраться
![]() исходные данные - есть 2 файла, в одном полный адрес и услуги,одна из услуг,например,содержание и ремонт не равна 0,остальные равны 0; в другом файле так же полный адрес и такие же услуги,как в первом,но услуга содержание и ремонт равна 0,остальные услуги не равны 0. Нужно сравнить адреса в обоих файлах и в те адреса,которые совпадут (а должны совпасть все,за небольшим исключением) добавить сумму по услуге содержание и ремонт в тот файл,где есть остальные услуги,не равные 0. При этом надо ещё суммировать общий долг по квартплате и общую сумму оплаты, эти поля в обоих файлах есть,но в каждом своя цифра, потому что файлы от разных управляющих компаний. Может,так пояснее объяснила?
Если Вы всё понимаете, значит Вам не обо всём говорят
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Т.е. всего два файла, с многими адресами в каждом. Могли и в примере хотя бы два адреса показать.
Теперь чуть понятнее - как будет время сделаю пример на словаре.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
#7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Есть вопрос - что за
LS 0000000429 и LS 330100024891 ? Суммировать это очевидно нельзя. А что тогда делать?
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
#8 |
Пользователь
Регистрация: 11.09.2013
Сообщений: 15
|
![]()
Спасибо Вам!
LS - это лицевой счет адреса,в нём нет особой необходимости, каждая управляющая компания присваивает каждой квартире свой лицевой. Можно оставить любой. Ещё есть площадь квартиры - это поля SG и SNG, они должны быть одинаковы в обоих файлах, их тоже можно не трогать.
Если Вы всё понимаете, значит Вам не обо всём говорят
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 11.09.2013
Сообщений: 15
|
![]()
на самом деле файлов много, порядка 40-45 штук,в каждом от 100 до 30 000 записей.Структура у них одна,а вот данные разные. Могу сделать пример больше,чем с одним адресом
Если Вы всё понимаете, значит Вам не обо всём говорят
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Хорошо.
Вероятно поля CITY STREET NUMBER SUFFIX FLAT ROOM LS SG SNG всегда в начале 9 столбцов, и не нужно тратить ресурсы на их определение? Если нужно собирать данные из многих файлов за раз - тогда вероятно нужно будет в код добавить выбор этих файлов, или выбор папки с этими файлами, и открывать их кодом. Но это уже потом можно добавить, если нужно. Пока план такой - есть открытый сводный файл с кодом, и открытый активный файл, из которого нужно собрать данные. Выполняем код - получаем результат. Пришёл второй файл - повторяем процедуру. Но ещё не готово, работа... Может быть кто-то другой быстрее свою версию сделает - я не против ![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Слияние тхт файлов | recycler | Visual C++ | 0 | 04.06.2012 19:57 |
Pascal слияние файлов | death65 | Помощь студентам | 3 | 12.12.2010 15:41 |
Слияние файлов | pasha26 | Microsoft Office Excel | 4 | 23.12.2009 08:15 |
Слияние двух файлов в один | hen | Общие вопросы C/C++ | 1 | 07.10.2009 22:59 |
Слияние двух текстовых файлов | nataly_ukr | Общие вопросы Delphi | 5 | 26.12.2007 16:45 |