Я думаю, что мне нужно использовать функцию SUMIFS для этого, но я не уверен. У меня есть список кодов:
Все эти коды относятся к категории времени простоя, у каждого кода также есть минуты 5,10,15,40,65 и т. Д. На моем листе есть все эти коды в столбцах за день, мне нужно общее количество минут для простоя. Сумма, если работает для других моих категорий, которые имеют только один код, но я не могу понять, как заставить работать несколько критериев, у меня действительно нет нескольких критериев. Это просто, если вы видите, что FP поместит это в время простоя и прибавит минуты.
Ответы:
Предполагая, что лист, на котором вы сохранили свой список кодов, называется 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. output ={0,0,0,0, 15, 0...
Ничего не осталось, как подвести итог!
Надеюсь, это поможет.
источник