Excel 2013, формула SUMIFS

1

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

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

Kat
источник
1
Можете ли вы опубликовать снимок экрана, показывающий вашу организацию данных?
Адам
Я бы хотел, мне не разрешено, так как у меня недостаточно очков для этого сайта.
Кат
Может быть, мне нужно вложить это в Vlookup? Мои справочные данные находятся на скрытом листе, где я пытаюсь получить формулу, чтобы узнать, какой код идет в каждой категории.
Кат
Итак, вы хотите вычислить v6 без необходимости вычисления промежуточных итогов, показанных в V3: V5, потому что на самом деле существует гораздо больше, чем три возможных кода простоя?
Адам
Нет ... это не так ... Но я до сих пор не понимаю, какие именно значения вы пытаетесь вычислить. Теперь, когда у вас есть картинка, вы можете добавить детали? (Например, коды времени простоя: «AR, CP, CG, PL, FP и LM». Ячейка Y18 должна отображать общее значение ячеек в строке 4, которые находятся под одним из этих кодов в строке 3, в этом случае это будет # ##)
Адам

Ответы:

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. output = {0,0,0,0, 15, 0...

введите описание изображения здесь

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

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

Адам
источник