|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.08.2010, 12:44 | #1 |
Пользователь
Регистрация: 03.08.2010
Сообщений: 22
|
Сложное сравнение и выбор
Помогите пожалуйста придумать реализацию следующей проблеммы:
Есть файл1 - Exel, в нем есть данные по изменениям в условиях сопровождения клиента (Фио, дата рожд, дата изменения, изменение, и др...) все на одном листе, и есть файл2, в нем несколько листов. Один лист содержит первоначальную информацию по сопровождению клиента (Фио, дата рожд, дата нач, дата конца, программа и т.д.). Второй лист содержит, как раз, изменения которые уже произошли ранее. Суть в том, что нужно написать макрос который позволит сравнить файл1 и файл2 и добавит только актуальные изменения (т.е. не открепит от программы людей которые небыли прикреплены, не добавит повторно и т.п.). Устно, мысль следующая: Сравнить колонку ФИО файла1 с колонками ФИО файла2 листов 1 и 2, сравнение производить без учета регистра и не на предмет равенства, а по условию "содержит" так как при изменении фамилии в ячейке фио добовляют новую фамилию в скобках сразу за старой. Так как в файле 2 может быть несколько совпадений нужно найти из них совпадение датированное наибольшей датой, определив таким образом строку последних обнавлений, передать переменной значение ячейки с описанием программы и на основании переменной наложить условие... Если хоть что-то понятно может кто поможет? |
19.08.2010, 13:02 | #2 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
|
19.08.2010, 13:15 | #3 |
Пользователь
Регистрация: 03.08.2010
Сообщений: 22
|
Я Вас не совсем понял, но на всякий случай - вот образец файла 1
|
19.08.2010, 13:44 | #4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Посмотрел файл,а дальше ??????
А где второй файл? писать от балды не хочеться.Проверять макрос на чем?
Анализ,обработка данных Недорого
|
19.08.2010, 14:10 | #5 | |
Пользователь
Регистрация: 03.08.2010
Сообщений: 22
|
Цитата:
В задаче участвуют два листа: 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, и этого не достаточно для самостоятельного решения, но и жить так нельзя! ))) Глаза отвалятся ) |
|
19.08.2010, 14:26 | #6 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Не совсем понятно с фамилиями.имя отчество есть
Например Иванов,Поменял фамилию на Петров. Как будет записано Иванов Петров(1) Это очень важный момент.Дайте запись как в оригинале
Анализ,обработка данных Недорого
|
19.08.2010, 15:17 | #7 | |
Пользователь
Регистрация: 03.08.2010
Сообщений: 22
|
Цитата:
2.Прошу прощения, я не правильно пояснил. Если Иванова Ирини Георгиевна поменяет фамилию на Петрову, то запись будет: Петрова (Иванова) Ирина Георгиевна. |
|
19.08.2010, 15:20 | #8 |
Пользователь
Регистрация: 03.08.2010
Сообщений: 22
|
Именно из-за этих заморочек с фамилмями и хочется сравнение вести отдельно по фамилии, имени, отчеству и дате рождения.
|
19.08.2010, 15:26 | #9 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Понятно.
Дальше.нашли эту строку.Ее дальнейшая судьба
Анализ,обработка данных Недорого
|
19.08.2010, 15:47 | #10 |
Пользователь
Регистрация: 03.08.2010
Сообщений: 22
|
Сравнили и нашли, но часто не одну, а 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не сложное задание | 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 |