Примерный набор данных:

Существует ли формула VBA, которая сравнивает даты и похожие слова между двумя наборами данных? Например, если он содержит "Ter" и «1/9/18», то я могу узнать, что это "Трава".

Моя цель состоит в том, чтобы найти ячейки, в которых "Даты" совпадают, а "Гости или Домашний клуб" совпадают с "Организацией", чтобы в конечном итоге найти местоположение.

У меня есть два листа Excel, и мне нужно найти строки, которые сопоставимы. У меня есть столбец "Дата", который должен быть точно совпадает на обоих листах. Кроме того, у меня есть два столбца, и мне нужно сопоставить один столбец на втором листе. (Они не являются точными совпадениями, но оба включают похожие слова, например, "Ter").

Образец рабочей книги

2 ответа2

0

В вашем образце данных нет повторяющихся дат, а каждое имя команды имеет уникальный трехсимвольный идентификатор. Для данных, соответствующих этим ограничениям, это будет работать. Для более чем одного конкурса в день может не быть функционального решения для рабочего листа.

`=IF(OR(UPPER(LEFT(INDEX(Data1,MATCH(F2,$A$2:$A$10,0),2),3))=UPPER(LEFT(G2,3)),UPPER(LEFT(INDEX(Data1,MATCH(F2,$A$2:$A$10,0),3),3))=UPPER(LEFT(G2,3))),INDEX(Data1,MATCH(F2,$A$2:$A$10,0),4),"no match")`

Для простоты я назвал диапазон $ A $ 2:$ D $ 10 «Данные1».

Мы учитываем соответствующий текст, беря UPPER(LEFT([text],3)) .

Это следует общей схеме:

=IF(OR([one_thing],[another_thing]),[do_something],[something_else])

[one_thing], исключая манипуляции с верхним и левым текстом, расширяется до:

INDEX(Data1,MATCH(F2,$A$2:$A$10,0),2)=G2

и [another_thing], аналогично:

INDEX(Data1,MATCH(F2,$A$2:$A$10,0),3)=G2

Говорят, используя дату (F2) в качестве ключа, найдите набор данных и верните значения 2-го и 3-го столбцов соответственно и сравните с G2 .

Если есть совпадение, [do_something]:

INDEX(Data1,MATCH(F2,$A$2:$A$10,0),4)

Получить 4-й столбец записи набора данных, где совпадает дата, и распечатать ее; иначе

[что-то другое]

"no match"

Если хотите, вы можете использовать IFERROR чтобы исключить результаты # N/A для строк, в которых нет соответствующей даты в наборе данных.

-1

Первым решением будет разработка кода VBA для выполнения того, что вы хотите.

Альтернативой было бы извлечь 2 файла CSV и сравнить их с помощью WinMerge.

Наилучшее решение зависит от сложности вашего поиска.

Прежде чем сравнивать 2 файла, вы можете загрузить их с помощью Notepad++ и использовать специальный Regex для удаления несущественных строк.

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