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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2010, 12:44   #1
Bogusgl
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 22
По умолчанию Сложное сравнение и выбор

Помогите пожалуйста придумать реализацию следующей проблеммы:
Есть файл1 - Exel, в нем есть данные по изменениям в условиях сопровождения клиента (Фио, дата рожд, дата изменения, изменение, и др...) все на одном листе, и есть файл2, в нем несколько листов.
Один лист содержит первоначальную информацию по сопровождению клиента (Фио, дата рожд, дата нач, дата конца, программа и т.д.).
Второй лист содержит, как раз, изменения которые уже произошли ранее.
Суть в том, что нужно написать макрос который позволит сравнить файл1 и файл2 и добавит только актуальные изменения (т.е. не открепит от программы людей которые небыли прикреплены, не добавит повторно и т.п.).
Устно, мысль следующая: Сравнить колонку ФИО файла1 с колонками ФИО файла2 листов 1 и 2, сравнение производить без учета регистра и не на предмет равенства, а по условию "содержит" так как при изменении фамилии в ячейке фио добовляют новую фамилию в скобках сразу за старой.
Так как в файле 2 может быть несколько совпадений нужно найти из них совпадение датированное наибольшей датой, определив таким образом строку последних обнавлений, передать переменной значение ячейки с описанием программы и на основании переменной наложить условие...

Если хоть что-то понятно может кто поможет?
Bogusgl вне форума Ответить с цитированием
Старый 19.08.2010, 13:02   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Цитата:
Сообщение от Bogusgl Посмотреть сообщение
Есть файл1 - Exel, в нем есть данные...
Вот с этого и начните.
vikttur вне форума Ответить с цитированием
Старый 19.08.2010, 13:15   #3
Bogusgl
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
Вот с этого и начните.
Я Вас не совсем понял, но на всякий случай - вот образец файла 1
Вложения
Тип файла: rar Книга111.rar (3.7 Кб, 15 просмотров)
Bogusgl вне форума Ответить с цитированием
Старый 19.08.2010, 13:44   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Посмотрел файл,а дальше ??????
А где второй файл?
писать от балды не хочеться.Проверять макрос на чем?
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 19.08.2010, 14:10   #5
Bogusgl
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Посмотрел файл,а дальше ??????
А где второй файл?
писать от балды не хочеться.Проверять макрос на чем?
Ок понял, вот второй файл.
В задаче участвуют два листа:
no name - отображает первоночальное положение дел и никогда не обнавляется.
addition - отображает происходящие изменения.
(Так видно, что изначально пришедший Иванов1
сначала изменил сумму с 5000 на 6000 01.01.10
потом сменил фамилию на 333 и поменял сумму с 6000 на 10000 10.10.10
потом отказался от программы поменяв сумму с 10000 на null 12.12.10
Иванов 2 - просто ушел 04.10.10
Баранов пришел с суммой 25000 20.02.10)

Вот такой фигней приходится заниматься вручную по файлам типа Файла 1 от клиентов, я уже больше не могу, особенно когда файл содержит от 40 до 10000 клиентов, мозг вскипает. Я немного (совсем чуточку) знаю VBA, и этого не достаточно для самостоятельного решения, но и жить так нельзя! ))) Глаза отвалятся )
Вложения
Тип файла: rar Файл2.rar (65.0 Кб, 16 просмотров)
Bogusgl вне форума Ответить с цитированием
Старый 19.08.2010, 14:26   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не совсем понятно с фамилиями.имя отчество есть

Например Иванов,Поменял фамилию на Петров.
Как будет записано Иванов Петров(1)
Это очень важный момент.Дайте запись как в оригинале
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 19.08.2010, 15:17   #7
Bogusgl
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Не совсем понятно с фамилиями.имя отчество есть

Например Иванов,Поменял фамилию на Петров.
Как будет записано Иванов Петров(1)
Это очень важный момент.Дайте запись как в оригинале
1.Чаще всего и фамилия и имя и отчество есть.
2.Прошу прощения, я не правильно пояснил.
Если Иванова Ирини Георгиевна поменяет фамилию на Петрову, то запись будет: Петрова (Иванова) Ирина Георгиевна.
Bogusgl вне форума Ответить с цитированием
Старый 19.08.2010, 15:20   #8
Bogusgl
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 22
По умолчанию

Именно из-за этих заморочек с фамилмями и хочется сравнение вести отдельно по фамилии, имени, отчеству и дате рождения.
Bogusgl вне форума Ответить с цитированием
Старый 19.08.2010, 15:26   #9
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Понятно.
Дальше.нашли эту строку.Ее дальнейшая судьба
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 19.08.2010, 15:47   #10
Bogusgl
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Понятно.
Дальше.нашли эту строку.Ее дальнейшая судьба
Сравнили и нашли, но часто не одну, а 2-10 - столько сколько раз менялись условия у этого человека. И из этих найденных строк надо найти ту, в которой стоит наибольшая (наипозднейшая) дата изменения.
Вот тогда получив эту строку можно накладывать условия:
1: если в файле 1 на записи стоит код 1 - это значит этого чела надо прикрепить, а следовательно надо проверить, что его нету в списках файла 2, или если он есть, то последняя запись в поле "new FA" равна null, тогда можно будет запись из файл1 перенести в файл2 лист addition.

2: если в файле 1 на записи стоит код 2 - зто значит что этого чела надо открепить, а следовательно надо проверить что он точно есть в списках файла 2 и последняя запить в поле "new FA" не равна null, тогда можно будет запись из файл1 перенести в файл2 лист addition со значением "old FA" равным "new FA" от прошлой записи, и значением "new FA" = null.

3: если в файле 1 на записи стоит код 3 - зто значит что этому челу надо поменять размер "new FA" , а следовательно надо проверить что он точно есть в списках файла 2 и последняя запить в поле "new FA" не равна null.
Bogusgl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не сложное задание wma57 Фриланс 5 19.06.2010 20:44
Сложное копирование из одной книги в другую kzld Microsoft Office Excel 12 15.07.2009 11:56
не сложное задание Instant coffee Помощь студентам 3 13.05.2009 17:33
Сложное копирование в Word. rzrwolf Microsoft Office Excel 2 11.01.2009 05:48
TURBO PASCAL 7.0 сложное задание Nook Помощь студентам 14 26.02.2007 19:10