|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.01.2010, 10:04 | #1 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
поиск данных по двум значениям
Добрый день. Я столкнулась с макросами в excel впервые. Помогите пжлста. Мне нужно с помощью макроса организовать поиск, если первичный ключ составной, т.е. по двум колонкам (колонка A - номер id, колонка B - филиал). И скопировать значения для соответствующего id и филиала на другой лист. Чтобы было понятнее, прикладываю файл: на листе "Итог" для всех компаний по номеру и филиалу надо найти такие же компании на листе "Обороты" и "Ф1". И скопировать соответствующие значения из листа "Обороты" на лист "Итог" в колонки D и E. Аналогично с листом "Ф1", только здесь надо скопировать со строки 23 "итог по разделу 2" значение для соответствующей компании. Спасибо за помощь.
|
12.01.2010, 13:16 | #2 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
уважаемые программисты,
помогите, пожалуйста, понять, как сделать правильно. В моем макросе Sub Copy_data_from_oborot() Dim n, m, k, g, h As Integer Dim sl, sll As String n = Sheets("Итог").UsedRange.Rows.Count m = Sheets("обороты").UsedRange.Rows.Co unt h = 0 For g = 4 To n sl = Replace(Sheets("Итог").Cells(g, 1) & Sheets("Итог").Cells(g, 2), " ", "") For k = 2 To m sll = Replace(Sheets("обороты").Cells(k, 1) & Sheets("обороты").Cells(k, 2), " ", "") If sl = sll Then Sheets("Итог").Cells(4 + h, 4) = Sheets("обороты").Cells(k, 6) Sheets("Итог").Cells(4 + h, 5) = Sheets("обороты").Cells(k, 5) h = h + 1 Exit For End If Next Next End Sub значения на лист Итог подставляются подряд (h = h + 1) и возникает ситуация, что если соответствующей компании не найдено на листе "обороты", данные копируются уже не правильно (смещаясь). Пробовала связать и с именем, но проблема все равно возникает если нет вообще нужной строки на листе Обороты. Как можно исправить эту проблему? Буду очень признательна за любую помощь. Я впервые столкнулась с vba. |
12.01.2010, 13:42 | #3 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Код:
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 12.01.2010 в 14:32. |
12.01.2010, 16:58 | #4 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
doober, спасибо огромное.
но почему-то для двух компаний данные не копируются на "итог", если в "оборотах" они есть: 1270 мск ООО "..." (значения на листе "Обороты" 5643*442,63 5705*753,42) и 1274 мск ООО "компания "..." (значения на листе "Обороты" 31553 835,60 34255 678,17). В чем может быть причина? Огромное-огромное тебе спасибо за код!!! Последний раз редактировалось EducatedFool; 25.01.2010 в 16:13. |
12.01.2010, 18:00 | #5 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Не знаю как у Вас но в файле нет таких на листе обороты
после 1250 идет 1436 Список отсортировал предварительно,чудес не бывает
Анализ,обработка данных Недорого
Последний раз редактировалось EducatedFool; 25.01.2010 в 16:14. |
13.01.2010, 04:57 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Позволю себе небольшое замечание (уточнение).
Если ID уникальны, то зачем проверять соответствие по филиалу? А если один и тот же ID может быть в разных филиалах, то предложенный код от doober будет (может) пропускать совпадения, т.к. поиск осуществляется только до 1-го совпадения. В зависимости от ответа автора темы на этот вопрос, можно либо упростить код, либо потребуется его доработка.
Чем шире угол зрения, тем он тупее.
|
13.01.2010, 09:35 | #7 | ||
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
Цитата:
Цитата:
|
||
13.01.2010, 09:53 | #8 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Я не могу править код doober. Это его ителлектуальная собственность. Могу сделать по-своему.
Чем шире угол зрения, тем он тупее.
|
13.01.2010, 10:17 | #9 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 28
|
SAS888, буду очень признательна!
|
13.01.2010, 10:19 | #10 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите пример во вложении.
Кстати, поиск не зависит от того, в каком формате данные (текст или число).
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 14.01.2010 в 04:37. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переход от ссылок к значениям! | mephist | Microsoft Office Excel | 5 | 10.07.2009 16:01 |
Запрос к двум базам данных в Delphi 6 | Demonk | БД в Delphi | 8 | 29.06.2009 12:48 |
суммирование данных по двум критериям | misht | Microsoft Office Excel | 10 | 31.03.2009 12:58 |
Сортировка одной БД по значениям другой | Кот из Лета | БД в Delphi | 4 | 28.12.2007 13:35 |
Нарисовать Ellipse по значениям из... | Apollo_13 | Общие вопросы Delphi | 3 | 17.06.2007 02:53 |