1

Я думаю, что мне нужно использовать функцию SUMIFS для этого, но я не уверен. У меня есть список кодов:

Все эти коды относятся к категории времени простоя, у каждого кода также есть минуты 5,10,15,40,65 и т.д. На моем листе есть все эти коды в столбцах за день, мне нужно общее количество минут для простоя. Сумма, если работает для других моих категорий, которые имеют только один код, но я не могу понять, как заставить работать несколько критериев, у меня действительно нет нескольких критериев. Это просто, если вы видите, что FP поместит это в время простоя и прибавит минуты.

1 ответ1

1

Предполагая, что лист, на котором вы сохранили свой список кодов, называется CodeSheet

={SUM(IF(IFERROR(MATCH(f3:t3,CodeSheet!$A$8:$A$22,0),0)>0,f4:t4))}

Это формула массива. Введите его без фигурных скобок и нажмите control-shift-enter. Excel вставит фигурные скобки для вас.

Как это устроено:

  • MATCH(f3:t3,CodeSheet!$A$8:$A$22,0)

CodeSheet!$ A $ 8:$ A $ 22 - ваш список кодов, которые относятся к категории простоя. Match ищет каждое из значений в f3:t3 и находит их позицию в этом списке (если есть). Поскольку это формула массива, он может возвращать массив, подобный этому {#N/A,#N/A,#N/A,#N/A,11, #N/A,#N/A,.... Везде, где нет совпадения, возвращается ошибка. В других местах это дает место в списке, где совпадение было найдено. (В данном случае "PL" был 11-м кодом простоя в списке)

Мы хотим выбросить ошибки, поэтому мы заключаем их в iferror

  • IFERROR(MATCH(F1:M1,CodeSheet!$A$8:$A$22,0),0)

Любое из значений ошибок в этом массиве, которые заменяются на 0. (ЛОЖНЫЙ)

выход = {0,0,0,0, 11, 0...

Каждое ненулевое значение в нашем новом массиве мы заменяем значением в соответствующей ячейке строки минут:

  • IF(IFERROR(MATCH(F1:M1,CodeSheet!$A$8:$A$22,0),0)>0,F2:M2) Это заменит "11" значением под PL в строке 4. выход = {0,0,0,0, 15, 0...

Ничего не осталось, как подвести итог!

Надеюсь, это поможет.

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