Поиск и возврат нескольких текстовых строк в Excel

У меня есть список ячеек в Excel, все в столбце I. Каждая из ячеек имеет список стран и / или регионов.

Я хотел бы построить формулу, которая будет искать текст в ячейках в столбце I для определенных строк и возвращать те же строки в той же строке столбца J. Если найдено несколько строк, то я бы хотел, чтобы все строки были найдены быть в колонке J.

Независимые строки, на которые я хотел бы обратить внимание в колонке I: «Африка», «Северная Африка», «Восточная Африка», «Южная Африка», «Западная Африка» и «Центральная Африка».

Если ячейка в колонке I «Алжир, Франция, Португалия, Восточная Африка, Северная Африка, Зимбабве», то желаемым результатом на колонке J будет «Восточная Африка, Северная Африка».

Мне удалось создать формулу в столбце J, которая будет искать строки:

=IF(ISNUMBER(SEARCH("Africa", I2)), "Africa", "") 

Мне также удалось создать вложенные операторы IF, которые будут искать каждую строку независимо и возвращать на столбец J, в зависимости от того, что было найдено. Однако в этом случае возвращается только первая найденная строка.

Как я могу построить формулу, которая будет искать все строки в одной ячейке (не останавливаясь, когда она найдет первую), и вернет их все в столбце J?

спасибо

Попробуйте эту небольшую пользовательскую функцию:

 Public Function GetKeyWords(rng As Range) As String bry = Array("Africa", "North Africa", "South Africa", "East Africa", "West Africa", "Central Africa") ary = Split(rng.Text, ", ") For Each a In ary For Each b In bry If a = b Then GetKeyWords = GetKeyWords & ", " & b Next b Next a GetKeyWords = Mid(GetKeyWords, 3) End Function 

введите описание изображения здесь

Пользовательские функции (UDF) очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте содержимое и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003 года, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить UDF:

  1. вывести окно VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы использовать UDF из Excel:

= MyFunction (А1)

Чтобы узнать больше о макросах в целом, см.

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

и для специфики UDF, см.

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Для этого необходимо активировать макросы!

Если у вас есть Office 365 Excel, вы можете использовать следующую формулу массива:

 =textjoin(",",TRUE,IF(ISNUMBER(SEARCH(", " & A1:A6 & ", ",", " & I1 & ", ")),A1:A6,"")) 

Будучи формулой массива, она должна быть подтверждена клавишей Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

Измените A1:A6 в диапазон, который содержит требуемые имена областей.

  • Разделить с использованием разделителя, за исключением случаев, когда разделитель экранирован
  • Найти значение в текстовой строке чисел, используя VBA или формулу
  • VBA для поиска строки, затем второй строки и возврата строк данных из текстового файла
  • Excel - VBA: совпадение с двумя комбинированными ячейками?
  • Использование str.contains в pandas dataframe
  • Как создать строку, которая будет использоваться в качестве формулы в excel VBA
  • Как скопировать только текст определенного цвета в Excel?
  • Заменить для одного и того же последующего слова в excel
  • powershell или excel split string, наконец, две запятые в строке
  • Сохранение ведущего 0 в преобразовании строки - числовой строки
  • Как бороться с тире в переменной ввода VBA Excel?
  • Interesting Posts

    Преобразование рукописного номера в текст

    Фильтрация значений по формуле

    Как заполнить ячейки на основе сложной формулы?

    C #: попытайтесь сохранить экспортированный файл excel, но сохраните его как веб-страницу (.html)

    Сортировка данных с использованием VBA и данных в ячейке

    При загрузке excel из приложения Asp.net в нем отображается следующая ошибка

    Python – чистый способ обертывания отдельных операторов в попытке, кроме блока

    Алгоритм сортировки строк и столбцов по подобию

    Как конвертировать VBA Now () в секунды, чтобы определить общую продолжительность выполнения программы

    Раскрашивание строки, где макрос находит определенное слово

    не может создать файл excel из asp.net

    Поднять событие после завершения работы рабочей книги

    Извлечение строки из файла CSV в Excel VBA

    Excel-Изменить цвет фона из двух разных ячеек

    Элементы ячейки форматирования Excel сводной таблицы

    Давайте будем гением компьютера.