
функция подстановки в Excel
Модератор: Naeel Maqsudov
Помогите пожалуйста! Есть два файла с базой сотрудников (к примеру 1файл-приемник, 2 файл-передатчик). Необходимо сравнить их и заполнить отсутствующие поля в файле-приемнике, такие как должность, разряд и т.д (не одно поле). Я встретил здесь очень интересный файл надстройки от Teslenko_EA, но он не всегда может выручить - для нескольких полей приходится процедуру подстановки повторять и колонка вся должна быть пустой, а файлов-передатчиков может быть два сразу или через месяц снова прийти, но это полбеды)) встречаются два Иванова Ивана Ивановича и он забьет первого из них
. Различить данных сотрудников можно только по дате рождения (табельный номер есть только в файле-приемнике, в организации передатчика его не знают). И возможно ли организовать добавление нового сотрудника, если он есть в передатчике, а в приемнике пока нет (или хотябы как-то об этом оповещать)? Заранее извиняюсь если данная тема уже была - искал по поиску (может не нашел).

-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте mokintoh.
"два файла с базой " - очевидно речь о файлах в таблицах которых находится база данных, а не радио устройства (приемник, передатчик
)
При работе с таблицами баз данных у каждой записи (строки) должен быть уникальный ключ, поле (столбец) которому можно ее идентифицировать.
Ни дата рождения ни фамилия идентификатором быть не могут (в Вашем случае). Табельный номер для этой цели подойдет, но необходимо чтобы во всех таблицах записи (строки) сотрудников имели такой ключ. Единожды прописав табельный номер во всех таблицах Вы лищите себя проблем в дальнейшем.
файл надстройки о котором Вы упоминали, это образец создания инструмента для решения таких задач в Excel.
Но если подобная задача не последняя, я рекомендую Вам заняться изучением SQL и Баз данных, такие задачи это их категория.
Евгений.
"два файла с базой " - очевидно речь о файлах в таблицах которых находится база данных, а не радио устройства (приемник, передатчик

При работе с таблицами баз данных у каждой записи (строки) должен быть уникальный ключ, поле (столбец) которому можно ее идентифицировать.
Ни дата рождения ни фамилия идентификатором быть не могут (в Вашем случае). Табельный номер для этой цели подойдет, но необходимо чтобы во всех таблицах записи (строки) сотрудников имели такой ключ. Единожды прописав табельный номер во всех таблицах Вы лищите себя проблем в дальнейшем.
файл надстройки о котором Вы упоминали, это образец создания инструмента для решения таких задач в Excel.
Но если подобная задача не последняя, я рекомендую Вам заняться изучением SQL и Баз данных, такие задачи это их категория.
Евгений.
Спасибо за ответ. Решения значит не получится? Вторичные файлы присылает организация, которая не знает табельные номера наших сотрудников, и не будет их у себя проставлять - вот в чем дело. Наверное можно применить простой вариант не влезая в SQL (хотя спасибо за литературу - обязательно займусь изучением) изобразить формулу сравнения используя ВПР.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
SQL - это все-таки более простой вариант." писал(а):Наверное можно применить простой вариант не влезая в SQL
В SQL одним единственным запросом можно выбрать из файла-передатчика данные, которые отсутствуют в приемнике (по критериям ФИО+дата рождения). Т.е. полностью новые.
Вторым запросом можно выбрать те, которые выборочно обновляются. И т.д.
SQL - в данном случае это панацея

И он к листам MS Excel вполнен применим.
В общем теорию я понял - бери учебники и штудируй... Интересно только как скоро это я изобрету? Мне сегодня нужен именно этот вариант решения, завтра я пока не знаю - на сколько реально возникнет потребность полученных мною знаний. Специфика работы не та, чтобы постоянно творить, в общем то потому я сюда и обратился в надежде, что уже были у кого-то такие проблемы и ему реально помогли готовым решением. А пока это все выростает в курсы самоосознания твоей неполноценности... Я постараюсь изучить "панацею" - SQL, но это займет явно не 1 день. А мне нужно заполнить ячейку C2 когда совпадут данные в ячейках А2 и B2 в первой и во второй таблице - вот и все! Может есть все-таки еще тут светлые головы?
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Mokintoh, если вам не охота заморачиваться с изучением SQL и жалко на это времени - оформите вашу проблемку как freelans заказ. За "пару" тысяч IMHO тут найдётся достаточное количество специалистов готовых потратить часик на её решение.
Почему часик а не пару минут ? Потому что "дьявол в подробностях" и промышленная задача отличается от учебного примера.
Можно так же попробовать получить решение на халяву опубликовав запрос в
разделе "Решите мне задачку" этого форума ...
Почему часик а не пару минут ? Потому что "дьявол в подробностях" и промышленная задача отличается от учебного примера.
Можно так же попробовать получить решение на халяву опубликовав запрос в
разделе "Решите мне задачку" этого форума ...
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Не понял причем тут ВПР. Обычных операций сравнения должно хватить вполне.mokintoh писал(а):Вторичные файлы присылает организация, которая не знает табельные номера наших сотрудников....... изобразить формулу сравнения используя ВПР.
Этот разговор будет предметным, если будут файлы.
Эсли это дело такое разовое, то можно и макрос написать, но нет никакого желания делать "абстрактный" макрос. Давайте Ваши файлы с фальсифицированными данными. По паре десятков записей к каждом для отладки хватит.
Ок. Высылаю образцы, надеюсь разберетесь в сути. Заранее благодарен!
А времени не сколько жалко - сколько просто не хватает. Специфика работы не такая чтобы сидеть только над этим
А времени не сколько жалко - сколько просто не хватает. Специфика работы не такая чтобы сидеть только над этим
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте mokintoh.
Решение с применением ADO и SQL.
Евгений.
Решение с применением ADO и SQL.
Евгений.
- Вложения
-
- PriemSQL.zip
- (17.36 КБ) 57 скачиваний
Огроменное спасибо Евгений! Все работает отлично, теперь то мне и не надо будет судорожно конопатиться в поисках верного решения
Диапазон сравнения данных расширить уж как нибудь думаю смогу своими бестолковыми ручонками))
Надеюсь, что данное решение пригодится и остальным страждущим...
Всем до свидания.

Надеюсь, что данное решение пригодится и остальным страждущим...
Всем до свидания.