Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.09.2013, 19:59   #1
Lemon Tree
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 15
По умолчанию Сравнение и слияние файлов

Здравствуйте! помогите,плиз,полному профану в программировании. Есть файлы от управляющих компаний с адресами по квартплате с разбивкой по услугам. В одном файле какое-то количество услуг не равных нулю (например, содержание и ремонт,отопление)и в другом файле какое-то количество других услуг( например, горячая вода,холодная вода,водоотведение, электричество) не равных нулю. Нужно сравнить содержимое всех полей 2-х файлов и если адрес совпадает,то суммировать поля с общим начислением (Nach),долгом (Debt),оплатой (Opl), остальные поля слить в один файл.Возможно ли написать такой макрос, который будет делать сравнение и слияние с суммированием?? Мне приходится практически всё делать руками,при огромных массивах это очень тяжело. Файлы прилепила. Спасибо.
Вложения
Тип файла: rar квартплата.rar (3.1 Кб, 6 просмотров)
Если Вы всё понимаете, значит Вам не обо всём говорят
Lemon Tree вне форума
Старый 12.09.2013, 09:28   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не понятна изначальная ситуация - где что как...
Но общая схема может быть такая - циклом по источникам заполняете данными словарь - ключём берите адрес|услуга, в item начисленное значение. Его можно сразу суммировать при повторе.
Далее циклом по сводному файлу извлекаем по ключу собранное в словаре.
Или можно параллельно собрать два словаря или коллекции с адресами и услугами, выгрузить их на лист как шапки сбоку/сверху, затем заполнить "шахматку" собранным в словаре.
В общем, почитайте про Scripting.Dictionary.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Старый 12.09.2013, 09:52   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
можно параллельно собрать два словаря или коллекции с адресами и услугами, выгрузить их на лист как шапки сбоку/сверху, затем заполнить "шахматку" собранным в словаре

хорошие инструкции, Игорь...

по ним даже мне непросто будет макрос написать,
а неспециалисту вообще в этом не разобраться)

PS: Извиняюсь за OFFTOP


--------- вдруг кому пригодится --------------
Цитата:
Надстройка LOOKUP предназначена для сравнения и подстановки значений в таблицах Excel.

Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
надстройка «Lookup» поможет сделать это нажатием одной кнопки.


В настройках программы можно задать:
  • где искать сравниваемые файлы (использовать уже открытый файл, загружать файл по заданному пути, или же выводить диалоговое окно выбора файла)
  • с каких листов брать данные (варианты: активный лист, лист с заданным номером или названием)
  • какие столбцы сравнивать (можно задать несколько столбцов)
  • значения каких столбцов надо копировать в найденные строки (также можно указать несколько столбцов)

Скачать надстройку для сравнения таблиц Excel и копирования данных из одинаковых строк


Последний раз редактировалось EducatedFool; 30.09.2013 в 09:40.
EducatedFool вне форума
Старый 12.09.2013, 09:56   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А что ещё можно сказать по таким исходным данным?
Или нужно было молча пройти мимо, как все другие 12 часов ходят?
И в общем я готов об этом поговорить
Хотя думаю если почитать про словарь - то мою мысль можно уловить
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Старый 12.09.2013, 10:05   #5
Lemon Tree
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 15
По умолчанию

спасибо! мне действительно не разобраться
исходные данные - есть 2 файла, в одном полный адрес и услуги,одна из услуг,например,содержание и ремонт не равна 0,остальные равны 0; в другом файле так же полный адрес и такие же услуги,как в первом,но услуга содержание и ремонт равна 0,остальные услуги не равны 0. Нужно сравнить адреса в обоих файлах и в те адреса,которые совпадут (а должны совпасть все,за небольшим исключением) добавить сумму по услуге содержание и ремонт в тот файл,где есть остальные услуги,не равные 0. При этом надо ещё суммировать общий долг по квартплате и общую сумму оплаты, эти поля в обоих файлах есть,но в каждом своя цифра, потому что файлы от разных управляющих компаний. Может,так пояснее объяснила?
Если Вы всё понимаете, значит Вам не обо всём говорят
Lemon Tree вне форума
Старый 12.09.2013, 10:35   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Т.е. всего два файла, с многими адресами в каждом. Могли и в примере хотя бы два адреса показать.
Теперь чуть понятнее - как будет время сделаю пример на словаре.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Старый 12.09.2013, 10:44   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Есть вопрос - что за
LS
0000000429
и
LS
330100024891
?
Суммировать это очевидно нельзя. А что тогда делать?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Старый 12.09.2013, 10:49   #8
Lemon Tree
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 15
По умолчанию

Спасибо Вам!
LS - это лицевой счет адреса,в нём нет особой необходимости, каждая управляющая компания присваивает каждой квартире свой лицевой. Можно оставить любой. Ещё есть площадь квартиры - это поля SG и SNG, они должны быть одинаковы в обоих файлах, их тоже можно не трогать.
Если Вы всё понимаете, значит Вам не обо всём говорят
Lemon Tree вне форума
Старый 12.09.2013, 10:57   #9
Lemon Tree
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Т.е. всего два файла, с многими адресами в каждом. Могли и в примере хотя бы два адреса показать.
Теперь чуть понятнее - как будет время сделаю пример на словаре.
на самом деле файлов много, порядка 40-45 штук,в каждом от 100 до 30 000 записей.Структура у них одна,а вот данные разные. Могу сделать пример больше,чем с одним адресом
Если Вы всё понимаете, значит Вам не обо всём говорят
Lemon Tree вне форума
Старый 12.09.2013, 11:09   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Хорошо.
Вероятно поля
CITY STREET NUMBER SUFFIX FLAT ROOM LS SG SNG
всегда в начале 9 столбцов, и не нужно тратить ресурсы на их определение?
Если нужно собирать данные из многих файлов за раз - тогда вероятно нужно будет в код добавить выбор этих файлов, или выбор папки с этими файлами, и открывать их кодом.
Но это уже потом можно добавить, если нужно.
Пока план такой - есть открытый сводный файл с кодом, и открытый активный файл, из которого нужно собрать данные. Выполняем код - получаем результат.
Пришёл второй файл - повторяем процедуру.
Но ещё не готово, работа...
Может быть кто-то другой быстрее свою версию сделает - я не против
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние тхт файлов 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