Подсчет вхождений строки в ячейке

488
JAT86

У меня есть файл Excel, содержащий фрагмент кода HTML в ячейке:

<li>item 1</li><li>item 2</li><li>item 3</li>

Теперь я хочу посчитать вхождения строки " <li>" в ячейке. Я искал в Интернете и использовал довольно популярную формулу:

=LEN(A2)-LEN(SUBSTITUTE(A2,"<li>",""))

Результат, на который я надеюсь, должен быть очевидным, 3но по неизвестной причине он дает 12:

Count string occurrences error

Как мне заставить его работать как задумано?

1
Вы заменяете `
  • `с пустой строкой, поэтому вы теряете четыре символа для каждого вхождения. Либо разделите результат на 4, либо подставьте строку длиной 3, например, `= LEN (A2) -LEN (SUBSTITUTE (A2,")
  • », "+++"))`.
  • AFH 6 лет назад 1
    Если вы еще не поняли, вы получаете `12`, потому что вы (успешно) подсчитываете количество символов, которые существуют, когда`
  • `найдено. 3 случая * 4 символа в каждом случае. Когда вы заменяете
  • `он заменяет четыре символа ... три раза.
  • BruceWayne 6 лет назад 0

    2 ответа на вопрос

    2
    PeterH

    Он дает 12, так как он считается <li>как 4, так как это его длина, поэтому для исправления просто используйте:

    =LEN(A2)-LEN(SUBSTITUTE(A2,"<li>",""))/4

    Или я предпочитаю использовать SUMPRODUCT:

    =SUMPRODUCT(LEN(A2)-LEN(SUBSTITUTE(A2,"<li>","")))/4 
    2
    cybernetic.nomad

    Вам нужно разделить на длину подставляемой строки:

    =(LEN(A2)-LEN(SUBSTITUTE(A2,"<li>","")))/4 

    Похожие вопросы