Это частичный ответ, чтобы вы начали. Вам придется выяснить вторую часть («вернуть три верхних значения, которые есть в столбце D»).
С другой стороны, то, что вы описываете, очень неясно, и я не могу не думать, что это XY Проблема , и что может быть найдено лучшее решение, если ваш вопрос содержит больше информация о , откуда поступают эти данные , и конечный результат того, что вы пытаетесь с ним сделать.
Начнем с того, что данные не следует группировать в ячейки, как вы делаете, и ваша проблема в том, почему: с данными гораздо проще работать, искать, манипулировать и т. Д., Если они правильно хранятся в логической и организованная мода ... в Excel, которая начинается с наличия не более чем одного «куска» данных на ячейку .
Для первой половины вашей проблемы, один способ сравнить список значений с одной ячейкой, чтобы вернуть True
/ False
, если в ячейке есть какое-либо из значений, вы можете использовать массив ** формула * с FIND
, IFERROR
и SUM
.
Если ячейка A1
содержит cartoon,high volume,safe,funny
, а ячейки D1:D4
содержат history,science,funny,cartoon
, вы можете использовать эту формулу массива, например, в B1
:
=SUM(IFERROR(FIND($D$1:$D$4,A1),0))>0
Чтобы сделать эту функцию формулой массива , вам нужно нажать Ctrl + Shift + Введите , чтобы ввести формула (вместо того, чтобы просто нажать Введите .)
Это вернет TRUE
, так как значение существует. Вы можете иметь больше наборов строк в ячейках ниже A1
и скопировать или «заполнить» формулу в B1
, чтобы вернуть TRUE
или FALSE
в зависимости от ситуации.
Вторая часть, возвращающая только верхние 3 значения, которые существуют в другом наборе ячеек, будет немного сложнее, если вы не напишите пользовательскую функцию VBA, или, что еще лучше, разделите данные на отдельные ячейки как боги Microsoft намеревались.
Дополнительная информация: