Я больше из мира SQL, но я получил один файл Excel с именами, электронными письмами, почтовыми индексами, номерами телефонов и так далее. Мне нужно отфильтровать / извлечь всю информацию о рядах от некоторых людей. У меня есть полный список (как пример)

1   John        Doe         john@example.com    28032
2   Ken         Smith       ken@example.com     28012
3   Abraham     Johnson     abraham@example.com 28001
4   Don         Williams    don@example.com     28022
5   Brenda      Jones       brenda@example.com  28031
6   Kenneth     Brown       brown@example.com   28045
7   Jennifer    Davis       davis@example.com   28005
8   Brittany    Miller      miller@example.com  28021
9   Martin      Wilson      wilson@example.com  28032
10  Roger       Moore       john@example.com    28004

И список людей, которые мне нужно извлечь:

Ken     Smith
Martin  Wilson
Brenda  Jones

Ожидаемый результат следующий:

2   Ken     Smith   ken@example.com     28012
5   Brenda  Jones   brenda@example.com  28031
9   Martin  Wilson  wilson@example.com  28032

Как я уже сказал, у меня есть некоторый опыт работы с SQL, и я хотел бы сделать это с помощью простого SELECT * FROM employees WHERE name='John Doe' или подобного, но я полностью потерян с Excel. Я не знаю, смогу ли я сделать это с формулой макроса VBA или проще, чем я думаю.

PS: Я не против, если предлагаемое решение работает с MS Excel или LibreOffice Calc.

1 ответ1

0

Рассматривать:

Мы поместили имена поиска в столбцы G и H.
В F1 вводим формулу массива:

=MATCH(G1 & H1,A:A & B:B,0)

и скопировать вниз. Затем в I1 введите:

=INDEX(C:C,$F1)

и копировать как поперек, так и вниз.

Формулы массива должны вводиться с помощью Ctrl + Shift + Enter, а не только клавиша Enter .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .