+ Ответить в теме
Показано с 1 по 10 из 10

Тема: Left Join в Excell

  1. #1
    coder Pomuk is on a distinguished road
    Регистрация
    25.10.2006
    Сообщений
    13
    Вес репутации
    12

    По умолчанию Left Join в Excell

    Потскажите, может есть стандартный способ решения данной проблемы?
    К примеру, есть Таблица1.

    # Название Код количество
    1 Булка 1001 10
    2 Пряник 1002 20
    3 Печенье 235 30

    И Таблица2

    Код Развес
    1001 0,5кг
    235 0,9кг

    Требуется подставить в первую таблицу, значение поля Развес из второй таблицы, если во второй таблице, есть соответствующий код. При помощи SQL (или в Аccess) 10 секунд делов. А вот в Exсell как при помощи макроса подставить данные значения? Ну не пробегаться же по всей второй таблице в поисках при формировании каждой позиции первой таблицы. Просто уверен, что должен существовать стандартный способ.

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    senior developer Pavel55 is on a distinguished road
    Регистрация
    20.10.2006
    Адрес
    Moscow
    Возраст
    38
    Сообщений
    405
    Вес репутации
    12

    По умолчанию

    Можно функцией ВПР (смотрите справку Excel) по коду товара

  4. #3
    coder Pomuk is on a distinguished road
    Регистрация
    25.10.2006
    Сообщений
    13
    Вес репутации
    12

    По умолчанию

    Даже при помощи записи макроса вытаскивается функция VLOOKUP. Это функция листа Экселя. Если в каждую строку такую функцию вставлять, я думаю слишком долго отчёт будет работать. Нет ли аналогичонй функции в VBA?.

  5. #4
    senior developer Pavel55 is on a distinguished road
    Регистрация
    20.10.2006
    Адрес
    Moscow
    Возраст
    38
    Сообщений
    405
    Вес репутации
    12

    По умолчанию

    а не надо вставлять в каждую ячейку макросом, вы просто протяните формулу мышкой или средставами VBA (.AutoFill)

  6. #5
    system architect pashulka will become famous soon enough pashulka will become famous soon enough
    Регистрация
    24.11.2004
    Возраст
    76
    Сообщений
    827
    Вес репутации
    16

    По умолчанию

    Pomuk, Любую формулу можно ввести сразу в несколько ячеек, для этого достаточно выделить нужный диапазон, ввести нужную формулу и нажать клавиши CTRL+ENTER. Программно же это будет выглядить так :

    Код :
    1. Worksheets(1).Range("A1:A100").Formula = "=B1+C1"

    Код :
    1. Worksheets(1).Range("A1:A100").FormulaR1C1 = "=RC[1]+RC[2]"

  7. #6
    coder Pomuk is on a distinguished road
    Регистрация
    25.10.2006
    Сообщений
    13
    Вес репутации
    12

    По умолчанию

    Да как вставить формулу в диапазон это я знаю. Просто эта формула в конечном итоге будет в каждой ячейке, и соответственно, пересчитываться будет в каждой ячейке. А что-то мне потсказывает, что если я в VBA посчитаю и вставлю значение в ячейку, то выйдет быстрее. Если строк с формулами будет 10 то это конечно не критично. А если уже пару тысяч, то пауза заметна. А если формулы будут в двух ячейках в строке, а не в одной...

  8. #7
    system architect pashulka will become famous soon enough pashulka will become famous soon enough
    Регистрация
    24.11.2004
    Возраст
    76
    Сообщений
    827
    Вес репутации
    16

    По умолчанию

    Pomuk, Все знают как ввести формулу в ячейку, а вот как заполнить целый диапазон, почему-то нет. Впрочем, если Вы не хотите вводить формулы с последующей заменой их на значения, которые они возвращают (см. ниже), то смотрите здесь ...

    Код :
    1. With Worksheets(1).Range("A1:A100")
    2.      .Formula = "=B1+C1"
    3.      .Value = .Value
    4. End With

  9. #8
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    22

    По умолчанию

    Просто эта формула в конечном итоге будет в каждой ячейке, и соответственно, пересчитываться будет в каждой ячейке. А что-то мне потсказывает, что если я в VBA посчитаю и вставлю значение в ячейку, то выйдет быстрее.
    Уверен, что в Вашем случае будет как раз наоборот.
    Если сподобитесь сравнить, то сообщите здесьт результат, если не трудно.

  10. #9
    coder Pomuk is on a distinguished road
    Регистрация
    25.10.2006
    Сообщений
    13
    Вес репутации
    12

    По умолчанию

    Да. вы правы. При помощи VBA получается медленнее.
    Да я подумал, это и логичней. То ли бэйсик это будет делать, то ли по любому более быстрый язык, на котором написан Excell (если не изменяет память - на С)

  11. #10
    system architect pashulka will become famous soon enough pashulka will become famous soon enough
    Регистрация
    24.11.2004
    Возраст
    76
    Сообщений
    827
    Вес репутации
    16

    По умолчанию

    А в этом никто и не сомневался, именно поэтому все и предлагали Вам использовать формулы.

+ Ответить в теме

Похожие темы

  1. как открыть pdf файл на p://www.xxx.xx/xx.pdf в Excell
    чтобы Excell не предупреждал об опасности вирусов. Как отключить эту меру безопасности? Когда линкую pdf с локального диска все OK, любой файл c http...
    от Olena в разделе MS Office и VB(A).
  2. join каждой записи НД с функцией (MSSQL) [2]
    Я так понял что join объединяет только наборы данных. А можно ли в MSSQL объединять КАЖДУЮ запись с функцией (параметрами которой являются значения...
    от VirusXP в разделе SQL
  3. Экспорт данных из excell в power point
    Добрый день! Подскажите, пожалуйста, как автоматизировать экспорт данных из эксель в графики power point. презентация здоровая куча слайдов с кучей...
    от Дмитрий Д в разделе MS Office и VB(A).
  4. Проблемы при печати excell
    Добрый день. Столкнулся вот с какой проблеммой, есть программа, котороя формирует данные, то есть отчет в excell, открывается эта форма, все ячейки...
    от ZaikinMaxim в разделе MS Office и VB(A).
  5. Доступ к Excell таблице при помощи C#
    Задача: необходимо получить доступ к Excell таблице при помощи C#. Трудность: пытался делать, как написано в MSDN загвоздка заключается в том, что...
    от Testmaster в разделе C и C++

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения