Как посчитать сумму чисел в ячейках с буквами

Автор Профан, 17 июня 2021, 01:12

0 Пользователи и 1 гость просматривают эту тему.

Профан

Здравствуйте, многоуважаемые форумчане. На днях занялся оформлением табеля учета рабочего времени сотрудников, и столкнулся с проблемой.
Существуют несколько ячеек в строке. Одна со значением "ФН2", другая с "ФН4" к примеру, и пустые ячейки.
Нужно создать формулу, чтобы она считала числовое значение ячеек, игнорируя буквы и пустые ячейки.
Создать формулу, игнорирующую буквы у меня получилось, но она не работатет, если хотя бы одна ячейка в диапозоне пуста. Помогите пожалуйста, товарищи!
Вот мой вариант формулы:
Цитировать=СУММПРОИЗВ(--ПОДСТАВИТЬ(A2:D2;"ФН";))

eeigor

#1
=AGGREGATE(9;6;RIGHT(A2:D2)*1)
=AGGREGATE(9;6;--RIGHT(A2:D2))

АГРЕГАТ(AGGREGATE) обрабатывает массивы и не требует фигурных скобок. Аргумент 9 - это СУММ (SUM), 6 - пропустить ошибки, которые как раз и возникают в вашем варианте.
ПРАВСИМВ(RIGHT). По умолчанию берёт 1 символ. Это если цифра справа только одна (один разряд). Если нет, то оставьте свою формулу. В общем, выбирайте вариант короче.

UPD
=AGGREGATE(9;6;--MID(A2:D2;3;2))
Если разрядов больше одного, то ПСТР(MID). Всё равно это короче функции ПОДСТАВИТЬ(SUBSTITUTE).
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Можно поправить и исходный вариант:

=СУММПРОИЗВ(ЕСЛИОШИБКА(--ПОДСТАВИТЬ(A3:D3;"ФН"; ); 0))
Владимир.

eeigor

Конечно можно. Длина имеет значение  :)
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Это  - дело вкуса. Calc (как и Excel) работает с формулами в "компилированном" виде - встроенные функции заменяются номерами.
Владимир.

eeigor

#5
Функция АГРЕГАТ - из последних. Хорошо оптимизирована по скорости. Не требует фигурных скобок как и СУММПРОИЗВ, но в отличие от СУММ... и умеет обрабатывать ошибки, и не только. Может, не наглядна, но с ней стоит познакомиться.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

kompilainenn

Цитата: eeigor от 17 июня 2021, 15:34Функция АГРЕГАТ - из последних. Хорошо оптимизирована по скорости
было бы интересно провести сравнение скорости для разных методов и функций
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

eeigor

#7
@kompilainenn, в мире Excel общепризнанный эксперт по профилированиию Charles Williams. Немного знаком с его методикой.
У меня есть примеры с VBA-кодом (Win DLL вызовы) по тематике "timing". Для LO надо адаптировать. Возможно, есть что-то уже готовое?
Это большая и непростая тема, которая в Excel поддерживается и сегодня.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community