1

Итак, у меня есть список работников, по одному имени на строку, и у каждого столбца есть дата в заголовке. Против каждого работника под каждой датой указано время начала и количество часов, отработанных в формате 6_8, если они начинаются в 6 и работают 8 часов, 10_4, если они начинаются в 10 и работают 4 часа и т.д. Ячейка пуста, если они не работают ,

Внизу этой таблицы я хотел бы получить общее количество часов, отработанных в определенный день. Это возможно?

Я понимаю, что было бы более разумно разделить ячейки, но можно ли решить мою проблему без использования vba?

2 ответа2

1

Ваш результат равен нулю, потому что вы извлекаете текстовые представления чисел, а не действительные числа. В приведенной ниже формуле обратите внимание, что я предшествовал MID с двойным унарным символом (--), который преобразует значение в число. Так как формула является формулой массива, мы должны ввести ее, удерживая Ctrl+Shift при нажатии Enter

=SUM(IFERROR(--MID(B$2:B$7,FIND("_",B$2:B$7)+1,99),0))

0

=SUMPRODUCT(IF(ISERROR(FIND("_",B2:B5,1)),0,RIGHT(B2:B5,LEN(B2:B5)-FIND("_",B2:B5,1)))*1)
Эта формула является массивом формулы. Нажмите Ctrl +Shift + Enter после записи в каждом столбце, который вы хотите суммировать, содержащий _
Я использовал в столбце B ваши данные, если у вас есть больше строк, измените B2:B5 для ссылки на ваш столбец
Iserror используется для проверки пустых ячеек и исключения значения #Value в результате
Он проверяет длину ячейки и место _ для подсчета количества цифр справа от _

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .