сопоставление данных из одного столбца рабочего листа с другим столбцом рабочего листа

У меня есть два листа с двумя столбцами данных. В столбце А рабочих листов указано название предмета, а в столбце В - цена предмета. В рабочем листе 1 указана цена прошлого года, а в рабочем листе 2 — цена этого года. Названия элементов в рабочем листе 1 могут быть или не быть в рабочем листе 2.

Мне нужен процесс, который будет сопоставлять имена на каждом листе и, если есть совпадение, определять разницу в цене для этого товара. Разница в цене будет указана в столбце C рабочего листа 2.

Я рассматривал возможность использования функции if-then с функцией vlookup, но мне нужно проверить совпадение во всех столбцах A из рабочего листа 1 и рабочего листа 2 для всех записей. Я считаю, что процесс зацикливания VB может быть более эффективным.


person user1692623    schedule 24.09.2012    source источник
comment
Попробуйте Как использовать ADO с данными Excel из Visual Basic или VBA   -  person Fionnuala    schedule 25.09.2012


Ответы (1)


Поскольку мне кажется, что вам, вероятно, потребуется это только один раз (или один раз в год), эффективность не кажется очень значительной, поэтому формулы могут служить.

Если предположить, что метки (соответственно: Item_Name и Price_O на Листе 1, Item_Name, Price_N и Diff на Листе 2) в Строке 1, то следующие формулы (скопированные по размеру) должны указать, где нет соответствия (с #N/A или, если есть, изменение цены относительно прошлого года:

На Листе 1 C2: =IF(MATCH(A2,Sheet2!A:A,0)>0,"")
На Листе 2 C2: =B2-VLOOKUP(A2,Sheet1!A:B,2,FALSE)


В качестве альтернативы сводная таблица может обеспечить лучший обзор в сочетании с:

На листе 2 H5: =IF(OR(ISBLANK(F5),ISBLANK(G5)),"No Match",G5-F5) (скопировано на свое усмотрение).

  1. В Sheet2 E1 вызовите мастер сводных таблиц (Alt+D, P, если необходимо), выберите Несколько диапазонов консолидации и сводная таблица, Далее.
  2. Выберите Я создам поля страницы, Далее.
  3. В диапазоне выберите или вставьте Лист1!$A:$B, Добавить, затем Лист2!$A$B, Добавить, Далее, выберите Существующий рабочий лист и введите =$E$3, Готово.
  4. Щелкните правой кнопкой мыши таблицу и, если необходимо, измените Σ Values ​​с Count of Value на Sum of Value (щелкнув левой кнопкой мыши на Count of Value, щелкнув левой кнопкой мыши на Настройки поля значения… и выбрав Summarize by), ОК.
  5. Щелкните правой кнопкой мыши таблицу, щелкните левой кнопкой мыши «Параметры сводной таблицы», щелкните левой кнопкой мыши «Итоги и фильтры» и, если необходимо, снимите флажок «Показать общие итоги для строк», «ОК».
  6. Если необходимо, щелкните правой кнопкой мыши на PriceN в таблице, Сортировка, Сортировка Z-A.

пример SO12563000

person pnuts    schedule 23.05.2013