Подтвердить что ты не робот

Формула в Excel для подсчета вхождений подстрок внутри строк

Я пытаюсь подсчитать количество раз, когда подстрока появляется в столбце строковых данных в Excel. См. Приведенный ниже пример.

Столбец строковых данных (твитов) выглядит следующим образом:

   A
1  An example string with @username in it
2  RT @AwesomeUser says @username is awesome

Столбец с "подстроками" (названия экрана Twitter) выглядит следующим образом:

   B
1  username
2  AwesomeUser

Я хочу использовать формулу для подсчета количества раз, когда подстрока из B1, B2 и т.д. появляется в строках в столбце A. Например: формула, которая ищет B1, вернет "2", а поиск B2 вернет "1".

Я не могу так:

=COUNTIF(A:A, "username")

потому что COUNTIF ищет только строки, а не подстроки. Эта формула всегда возвращает "0".

Здесь formula Я думал, что может это сделать:

=SUMPRODUCT((LEN(A:A)-(LEN(SUBSTITUTE(A:A,"username",""))))/LEN("username"))

К сожалению, у меня 16 000 записей в столбце B и десятки тысяч в A, поэтому подсчет символов не будет работать даже на ПК с высокой мощностью (также ожидается, что результат, возвращаемый функцией, является подозрительным).

Я думал об использовании:

=COUNTIF(A:A, "*username*")

но COUNTIF требует строку со звездообразными операторами; Мне нужно использовать ссылки на ячейки из-за объема данных.

Мой вопрос: кто-нибудь знает, как я могу использовать формулу для этого? Если используется COUNTIF, как мне получить ссылку на ячейку в условной части инструкции (или использовать функцию для замены строки в ячейке, указанной в условной части инструкции COUNTIF)?

Я знаю, что могу разбирать данные, но я хотел бы знать, как это сделать в Excel.

4b9b3361

Ответ 1

Вы почти там, используйте

=COUNTIF(A:A, "*"&B1&"*")

(проверено в Excel 2010)

Ответ 2

Очень простое решение Excel для появления x-string ( "ABC" ) в y-string ( "ABC 123 ABC 23dfABC" ):

  • Определите длину y-строки. Ly = len (y)
  • Замените x-string на x1-строку (добавьте только 1 char любого поддерживаемого символа в x-строку, например, "ABC" = > "ABC_" ) и вычислите длину новой строки y1-string. Ly1 = len (подставить (y, x, x1)).
  • Нет появления x-строки) в y-string = Ly1-Ly

Число происшествий: len (подставить (y, x, x1)) - len (y)

Номенклатура для понимания: x-string: "ABC" x1-строка: "ABC_" y-string: "ABC 123 ABC 23dfABC" y1-string: "ABC_ 123 ABC_ 23dfABC _"