Страницы: 1
RSS
Сумма чисел в ячейках с текстом
 
Имеется таблица, в которую заносятся данные. В ячейках D3:H5 необходимо произвести подсчет каждого вида работ (D2:H2). Проблема в том что бывает что перед буквенным обозначением вида работ стоит цифра, обозначающая количество. Например, в ячейке В4 указано "К", а в ячейке В4 "3 К". То есть в В4 должно учитываться как 1, а в В5 как три. Проблема в том что в некоторых ячейках могут быть указаны несколько видов работ и в разных количествах, как произвести подсчет каждого вида отдельно.
 
Массивненько
=SUM(IFERROR(RIGHT(SUBSTITUTE(" "&LEFT(TRIM(A4:C4);FIND(" "&H1&" ";" "&TRIM(SUBSTITUTE(A4:C4;CHAR(10);" "))&" ")-2);" ";REPT(" ";99));99)-1;))+SUM(--ISNUMBER(FIND(" "&H1&" ";" "&SUBSTITUTE(A4:C4;CHAR(10);" ")&" ")))
По вопросам из тем форума, личку не читаю.
 
А если в ячейке А5 будет 2 К 2 С РМ, а в В5 2 С РМ. Какая формула будет в Е5? Нужно чтобы во всех итоговых ячейках были формулы D5-H5
 
да таже, только диапазоны закрепить
=SUM(IFERROR(RIGHT(SUBSTITUTE(" "&LEFT(TRIM($A5:$C5);FIND(" "&H$2&" ";" "&TRIM(SUBSTITUTE($A5:$C5;CHAR(10);" "))&" ")-2);" ";REPT(" ";99));99)-1;))+SUM(--ISNUMBER(FIND(" "&H$2&" ";" "&SUBSTITUTE($A5:$C5;CHAR(10);" ")&" ")))
Изменено: БМВ - 02.11.2020 12:11:32
По вопросам из тем форума, личку не читаю.
 
А если в ячейке А5 написать: 3 К 2 С РМ , то количество "С РМ" в ячейке Е5 как было 1 так и остается.
 
Цитата
Yandex709 написал:
как было 1 так и остается.
Уверены? Пересчет включен? В файле из #4 все считает корректно.
По вопросам из тем форума, личку не читаю.
 
Для более разнообразных форматов исходных, но для ограниченных значений образцов формула массива:
=СУММ(ЕСЛИОШИБКА(ПРАВБ(ПОДСТАВИТЬ(" "&СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ЛЕВБ($A5:$C5;ПОИСК(H$2;$A5:$C5)-1);СИМВОЛ(10);" "));" ";"    ");5)-1;))+СЧЁТ(ПОИСК(H$2;$A5:$C5))
 
во всех ячейках ваша формула, но в ячейке Е5 отображается некорректно
 
=SUM(IFERROR(RIGHT(SUBSTITUTE(" "&LEFT(TRIM(SUBSTITUTE($A5:$C5;CHAR(10);" "));FIND(" "&E$2&" ";" "&TRIM(SUBSTITUTE($A5:$C5;CHAR(10);" "))&" ")-2);" ";REPT(" ";99));99)-1;))+SUM(--ISNUMBER(FIND(" "&E$2&" ";" "&SUBSTITUTE($A5:$C5;CHAR(10);" ")&" ")))
В одном месте забыл разделитель подменить если не пробел а перевод строки.
Выше Светлый предложил более короткое решение. Так что у вас выбор есть. И помните это формула массива.
Изменено: БМВ - 03.11.2020 11:11:37
По вопросам из тем форума, личку не читаю.
 
БМВ,Спасибо огромное! всё получилось
Страницы: 1
Наверх