У меня есть две таблицы, которые выглядят так: Я знаю, если я начну с Spreadsheet2, я могу просто vlookup и получить значения. Но мне нужно начать с Spreadsheet1. Мне нужно добавить строки. Это небольшие данные, но то, что у меня на самом деле, огромно .. (более 20000 строк).Excel vlookup несколько значений и добавить повторяющиеся строки
Spreadsheet1:
Category Type NumItem
Air B747 10
Ground TBus1 15
Air B777 20
Air A380 5
Spreadsheet2:
Type TypeElement NumEngine
B747 747T1 2
B747 747T2 4
B747 747T3 8
Tbus1 TbusT1 0
B777 777T1 6
B777 777T2 4
A380 380T1 10
Я хочу, чтобы объединить их в электронную таблицу. Поскольку вы можете видеть Type для обоих совпадений, но для каждого типа у меня есть несколько «TypeElement».
Я хочу, чтобы выглядеть как
Category Type NumItem TypeElement NumEngine
Air B747 10 747T1 2
Air B747 10 747T2 4
Air B747 10 747T3 8
Ground TBus1 15 TbusT1 0
Air B777 20 777T1 6
Air B777 20 777T2 4
Air A380 5 380T1 10
Можно ли это сделать с помощью функции в Excel или .. я должен использовать VBA/Macro? Если кто-нибудь знает, как это можно сделать с помощью R, прокомментируйте, какие формулы/пакеты я должен использовать.
спасибо !!
Есть несколько библиотек, которые можно импортировать/экспортировать из Excel: openxlsx, XLConnect. Используйте их для чтения обеих таблиц в двух кадрах данных, а затем используйте 'merge' –
. Причина, по которой я должен начать с Таблицы 1, состоит в том, что мне нужно выяснить, какие элементы в Spreadsheet1 не имеют соответствующих данных в Spreadsheet2. Например, если в таблице 1 есть B700, Spreadsheet2 не имеет каких-либо данных, которые я могу найти в ячейках пустой/ошибки. –
Вам не нужно использовать таблицу для этого (и если у вас есть 20k строк, вы не хотите).Импортируйте в R с помощью 'readxl' или вашего любимого пакета, затем используйте' merge' (здесь с 'all = TRUE'), или если это запутывает, функции' * _join' пакета dplyr (здесь 'full_join'), которые SQL-стиль. Также обратите внимание, что у вас есть несоответствия между 'TBus1' и' Tbus1', поэтому вы можете взять все 'toupper' или' tolower'. – alistaire