|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.01.2010, 17:24 | #1 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
сравнение ячеек и добавление нового столбца к таблице
Здравствуйте.
Обращаюсь к вам за помощью, поскольку все способы, известные мне не работают. Буду очень благодарна за помощь. У меня есть две таблицы: в таблице 1 для каждого № и филиала (№+филиал являютяс уникальными) есть набор значений на разные даты (по неделям). В таблбице 2 также для каждого № и филиала есть уже одно значение на последнюю дату, которой в 1ой таблице нет. Можно ли с помощью макроса, не прибегая к бд access сравнить значения в этих двух таблицах по № и филиалу, и если №и филиал совпали, дописать в первую пустую колонку после заполненных колоноц таблицы 1 значение на новую дату? Но так чтобы при этом, № и филиал из таблицы 1 со всеми своими значениями, если их нет в таблице 2, остались в обновленной таблице. И также id и филиал, которые только появились в таблице 2 должны быть в новой таблице, но для всех предыдущих дат просто оставить пустые ячейки. Я знаю, как это реализовать с помощью acess и union, но не знаю почему (может из-за большого объема) запрос не работает. Спасибо за помощь!. |
20.01.2010, 06:27 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. Откройте оба файла и запустите макрос "Main".
Чем шире угол зрения, тем он тупее.
|
20.01.2010, 09:27 | #3 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
Спасибо вам большое! Вы мне очень помогли. Потому что через полное соединение и access ну никак работать не хочет для такого объема таблицы. (Если делаю меньше дат, все ок.)
Спасибо! |
21.01.2010, 18:00 | #4 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
SAS888, а вы не подскажете, можно ли каким-то способом оптимизировать Ваш код, чтобы он быстрее работал? У меня порядка 40000 записей. Я запустила макрос, он работает уже 45 минут и еще не закончил.. Спасибо.
|
22.01.2010, 00:10 | #5 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте robbe.
мне кажется Ваша конструкция "достойна" обработки в MS Access. т.к. все данные могут быть сохранены в одной таблице а таблица "свод" должна формироваться перекрестным запросом, и речи о "..45 минут.." не будет. Евгений. |
22.01.2010, 07:51 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
В данном случае, Teslenko_EA абсолютно прав. Я могу предложить Вам "быстрый" макрос, но с одним условием: суммарное количество заполненных строк на листах обоих файлов не должно превышать максимально допустимого количества строк на листе. Т.е. в процессе работы макрос объединяет все данные на одном листе. Так, например, если в обоих листах по 40000 строк, то 40000 + 40000 = 80000, что при использовании Excel 2003 больше допустимого 65536. При работе в Excel 2007 проблем не будет.
Откройте оба файла из вложения и запустите макрос "Main". Попробуйте на больших файлах, соблюдая оговоренные ограничения. Время работы должно быть примерно в 200 раз меньше (не проверял).
Чем шире угол зрения, тем он тупее.
|
22.01.2010, 08:57 | #7 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
В том-то вся и проблема, что первое, что я сделала - это написала запрос в MS Access, но у меня Excel 2000, и все упирается в то, что когда я делаю полное соединение через union (full outer join в Excel 2000 не реализован, насколько я поняла из того, что удалось найти в интернете про версии Excel), запрос не работает, видимо не хватает места. Если бы все удалось в Access, я бы и не просила помощи с макросом vba. Но в любом случае спасибо вам за помощь.
|
22.01.2010, 10:30 | #8 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Надеюсь Вас интересует и решение задачи, а не только общение на тему "о её решении", и "..спасибо вам за помощь.." понимать как "тема закрыта" не надо.
"..в Excel 2000 не реализован..насколько я поняла.." - в источнике данных не требуется реализации чего либо, он просто источник с которым устанавливается связь СУБД (системы управления базами данных). Скорее всего стоит пересмотреть концепцию доступа к данным и задача решится в MS Access. Евгений. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
добавление столбца | Chugun | БД в Delphi | 1 | 13.01.2010 00:22 |
сумма ячеек столбца-? | Evgenii | Компоненты Delphi | 5 | 23.11.2009 18:05 |
Выделение последнего столбца в таблице | Busine2009 | Microsoft Office Word | 2 | 26.05.2009 07:20 |
Сравнение 2 столбцов и удаление повторяющегося из второго столбца | ildusfm | Microsoft Office Excel | 3 | 07.05.2009 09:09 |
сравнение с данными в таблице | Apo | БД в Delphi | 5 | 31.03.2008 19:24 |