Моя ситуация: Я получил огромную таблицу Excel от производителя продукции для своего интернет-магазина. Этот формат:
product ID | price | name | ...
Каждую неделю производитель присылает мне обновленный список с новыми продуктами. Поэтому мне нужно знать, какие продукты являются новыми в этом списке. Поэтому мне нужен фрагмент кода, который делает следующее:
- Я собираюсь вставить старый список продуктов на лист1 (вручную)
- Я собираюсь вставить новый список продуктов на лист 2 (вручную)
- Сравните идентификаторы продуктов Sheet1 и Sheet2
- Вставьте продукты (строки) из нового списка (Лист2) в Лист3, которых нет в старом списке (Лист1).
Так что результатом в Листе3 будут все новые продукты. Надеюсь, вы сможете подтолкнуть меня в правильном направлении.
С уважением
решение1
Я думаю, Вам может понадобиться что-то вроде этого:
=VLOOKUP(Sheet1!A1:A100,Sheet2!A1:F100,6,FALSE)
Конечно, вы также можете решить эту проблему, используя VBA с кнопками и прочими причудливыми штуками.
решение2
На самом деле, я бы сделал это совсем по-другому, используя надстройку PowerQuery от Microsoft, но я не знаю, насколько хорошо она работает в Excel 2010 (она не будет работать в Excel 2007). С ее помощью вы можете делать запросы на добавление с группировкой по идентификатору вашего продукта, чтобы получить уникальный список.
Другой способ сделать это — сохранить листы в разных файлах и использовать инструмент запросов Excel для объединения двух таблиц в новую таблицу.
В любом случае, как только у вас появится новая таблица, вы сохраните ее для подготовки к следующему объединению.
решение3
В Sheet2
(обновленный элемент) добавьте столбец D, который проверяет, является ли продукт новым:
=MATCH(A2,Sheet1!$A:$A,0)>0
Добавьте столбец E, который присвоит TRUE
значениям в столбце D уникальный идентификатор.
=D5&COUNTIF(D$2:D2)
Теперь перейдите к Sheet3
(новым элементам) и поместите столбец индекса, скажем, в столбец E со значениями TRUE1
, TRUE2
, TRUE3
и т. д., столько, сколько, по вашему мнению, вам когда-либо понадобится (например, если в один прекрасный день появится 20 новых элементов, а вы дошли только до TRUE15
, то вы пропустите 5 элементов).
Затем вы можете внести новые предметы с помощью:
=INDEX(Sheet2!A:A,MATCH($E2,Sheet2!$E:$E,0))