Как подсчитать количество вхождений подстроки в ячейке?
Например:
| | A |
| 1 |John,John,Tom,David|
Какую формулу я бы использовал, если я хочу вернуть количество вхождений "Джона" в ячейку A1 (= 2)?
Как подсчитать количество вхождений подстроки в ячейке?
Например:
| | A |
| 1 |John,John,Tom,David|
Какую формулу я бы использовал, если я хочу вернуть количество вхождений "Джона" в ячейку A1 (= 2)?
Ничего себе, после поисков в течение месяца по этой проблеме, я наткнулся на ответ после публикации этого вопроса. Вот что я придумал на случай, если у кого-то еще возникнет эта проблема.
=SUM(IF(ISNUMBER(FIND("John"; SPLIT(A1; ",")));1;0))
Это формула массива, поэтому ее необходимо вводить с помощью Ctrl+Shift+Enter.
Если кто-нибудь думает о лучшем способе решения этой проблемы, пожалуйста, дайте мне знать!
Я думаю, что вы, вероятно, нашли лучший способ.
Альтернатива:
=(LEN(A1)-LEN(SUBSTITUTE(A1,"John",)))/LEN("John")
Вот подход, который работает в электронных таблицах Google:
=COUNTIF(SPLIT(A1,","),"John")
Только для Google Sheets
Я придумал следующий альтернативный способ:
=LEN(REGEXREPLACE(SUBSTITUTE(SUBSTITUTE(A1;"@";"");"John";"@");"[^@]";""))
Объяснение:
У меня нет репутации комментировать в вышеупомянутой теме, но я смог расширить ответ JohnL, чтобы он работал на нескольких ячейках:
=ArrayFormula(SUM(IF(ISNUMBER(find ("search text", split(Concatenate(A1:A3), ","))),1,0)))
где A1:A3
- это ячейки, а "текст для поиска" - это текст для поиска.