Страницы: 1
RSS
Подсчёт количества слов в цифровом и буквенном представлении
 
Вариант подсчёта количества всех слов через запятую (яблоко, груша, груша, груша, лимон, лимон, апельсин) известен, но такое представление информации переполняет ячейку данными.

Есть значение ячейки: яблоко, 3 груша, 2 лимон, апельсин. В результате в ячейке должно быть подсчитано количество 7. Как реализовать?
Заранее спасибо!
 
Guest34, файл-пример
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
=СУММ(ЕСЛИОШИБКА(ЕНЕТЕКСТ(ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ(A1;" ";"</i><i>")&"</i></j>";"//i"))*ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ(A1;" ";"</i><i>")&"</i></j>";"//i");0))+СЧЁТЗ(ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ(A1;",";"</i><i>")&"</i></j>";"//i"))-СЧЁТ(ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ(A1;" ";"</i><i>")&"</i></j>";"//i"))
Изменено: Тимофеев - 26.07.2021 15:12:28
 
Выйдет короче, если эту часть
Код
ISNONTEXT(FILTERXML("<j><i>"&SUBSTITUTE(A1;" ";"</i><i>")&"</i></j>";"//i"))*FILTERXML("<j><i>"&SUBSTITUTE(A1;" ";"</i><i>")&"</i></j>";"//i")

заменить на:
Код
FILTERXML("<t><s>"&SUBSTITUTE(A1;" ";"</s><s>")&"</s></t>";"//s[.*0=0]")


Код
=SUM(FILTERXML("<t><s>"&SUBSTITUTE(A1;" ";"</s><s>")&"</s></t>";"//s[.*0=0]"))+COUNTA(FILTERXML("<j><i>"&SUBSTITUTE(A1;",";"</i><i>")&"</i></j>";"//i"))-COUNT(FILTERXML("<j><i>"&SUBSTITUTE(A1;" ";"</i><i>")&"</i></j>";"//i"))
Изменено: memo - 26.07.2021 23:27:03
 
Цитата
Guest34 написал в личку: Хотелось бы узнать Вашу реализацию
Я не формулист, поэтому только макрофункция (UDF). Зато не массивная
Изменено: Jack Famous - 27.07.2021 09:28:35
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Всем благодарен за участие!
Страницы: 1
Наверх