В новых версиях Excel удобно пользоваться функцией ОБЪЕДИНИТЬ (разделитель параметров ","):
ОБЪЕДИНИТЬ(разделите<wbr />ль, попускать_пустые, текст1, текст2,... )
вместо текст1, текст2,... можно использовать массив букв исходной строки, в котором если разница между полной длиной строки до исходного символа и длиной строки без символов "<" и ">" четная то в массив ставится символ строки иначе путая строка ("")
этот расчёт можно взять из
ответа на вопрос "Как в EXCEL считать количество символов в ячейке без учета тегов HTML?"
Записываем в виде формулы Excel для ячейки A2:
=ОБЪЕДИНИТЬ( "", 1, ЕСЛИ( ОСТАТ( ДЛСТР(ПСТР(A2, 1, СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 ))))) - ДЛСТР( ПОДСТАВИТЬ( ПОДСТАВИТЬ( ПСТР(A2, 1,СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 )))), "<", ""), ">","")) + ЕСЛИ(ПСТР(A2, СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 ))), 1)=">", 1, 0), 2)=0, ПСТР(A2, СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 ))), 1), ""))
Результат для бесплатной онлайн версии Excel:
Эта формула не требует выделения дополнительных ячеек и обрабатывает текст ячейки без ограничений на количество тегов HTML, но даёт ошибку для пустых ячеек, если это недопустимо, то формулу придётся изменить:
=ЕСЛИ(ЕПУСТО(A2), "", ОБЪЕДИНИТЬ( "", 1, ЕСЛИ( ОСТАТ( ДЛСТР(ПСТР(A2, 1, СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 ))))) - ДЛСТР( ПОДСТАВИТЬ( ПОДСТАВИТЬ( ПСТР(A2, 1,СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 )))), "<", ""), ">","")) + ЕСЛИ(ПСТР(A2, СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 ))), 1)=">", 1, 0), 2)=0, ПСТР(A2, СТРОКА( ДВССЫЛ("1:"&ДЛСТР( A2 ))), 1), "")))