Я предполагаю, что ваш дисплей, отображающий вывод для A6
в E5
(потому что вывод для A5
- «none») является ошибкой, и вы действительно хотите вывод для A6
в E6
.
Я нахожу это неестественным, имея ключевые слова в столбце.
Выход для Ai
находится в Ei
, а значение в Ci
самом деле не имеет ничего общего с другими вещами в строке i
.
Это скорее ситуация m × n , где у вас есть m ячеек (абзацев) текста для поиска и n ключевых слов для поиска.
Ну, у нас есть способы справиться с этим.
Мое решение использует n +1 вспомогательных столбцов.
Поскольку n здесь равно 5, это означает 6 вспомогательных столбцов, которые могут быть столбцами с F
по K
(Как обычно с помощью вспомогательных столбцов, вы можете поместить их в любое место - вы можете поместить их в столбцы AA
через AF
если хотите - и можете скрыть их.)
Первый (F
) оставлен пустым.
Войти
=OFFSET($C$1, COLUMN()-COLUMN($F:$F), 0)
в ячейку G1
и перетащите / заполните вправо, к K1
.
При этом используется текущий номер столбца (относительно начала блока вспомогательных столбцов) в качестве индекса ключевых слов в столбце C
, тем самым реплицируя ключевые слова в строке 1 (ячейки с G1
по K1
).
Далее введите
=F2 & IF(ISNUMBER(SEARCH(G$1, $A2)), ", " & G$1, "")
в клетку G2
.
Перетащите / заполните вправо, в ячейку K2
, а затем вниз, чтобы покрыть m строк, имеющих данные в столбце A
При этом выполняется поиск абзаца в столбце A
текущей строки по ключевому слову i , которое находится в строке 1 текущего столбца.
Если он находит его (т. Е. Если SEARCH(…)
возвращает число; т. Е. Если ISNUMBER(SEARCH(…))
имеет значение true), он генерирует ключевое слово, которому предшествует запятая и пробел.
Если ключевое слово не найдено, функция IF(…)
оценивается как пустая строка.
(Если вы хотите сравнение с учетом регистра, замените SEARCH
на FIND
.)
Затем, в любом случае, результат объединяется со значением из ячейки слева. Это дает в столбце K
список разделенных запятыми ключевых слов, присутствующих в абзаце в столбце A
текущей строки.
Затем введите
=IF(K2="", "", RIGHT(K2, LEN(K2)-2))
в E2
, и перетащите / заполните вниз, чтобы покрыть строки, которые имеют данные в столбце A
Это говорит о том , если значение в колонке K
равна нулю, то оценить пустое значение, в противном случае ,
от начала значения в колонке K
Вот изображение результата, который я получил для ваших входных данных:
(Нажмите для увеличения изображения.)
Обратите внимание, что в ячейке E6
(вывод для A6
) мое решение перечисляет совпадающие ключевые слова в том порядке, в котором они отображаются в столбце C
, в то время как на рисунке они перечислены в том порядке, в котором они отображаются в ячейке A6
.
Если это проблема, отредактируйте свой вопрос, чтобы сказать так, и я посмотрю, смогу ли я это исправить.