2015-06-19 2 views
1

У меня есть набор данных с четырьмя столбцами: Start Date, End Date, Scheduled Qty и Actual Quantity:Сумма минимум соответствующих значений столбцов - ограничивается диапазон дат

Start Date End Date Scheduled Qty Actual Qty 
04/13/15  04/17/15 35    19 
04/20/15  04/24/15 35    42 
04/27/15  05/01/15 35    41 
05/04/15  05/08/15 35    41 

Я хочу, чтобы найти общий фактический, кроме случаев, когда фактический превышает запланированный, я хочу использовать запланированный номер.

В уже ответил вопрос (Sum minimum of corresponding column values) я нашел формулу массива, которая работает в общей сложности меньшие значения каждой строки для Qty столбцов (котировки, используемые для отображения меньше, чем символ):

=SUM(IF(C1:C4"<"D1:D4, C1:C4, D1:D4)) 

Это дает мне всего для всего моего диапазона, но теперь я хотел бы ограничить его диапазоном дат, таким как конечные даты в течение определенного месяца. Я использовал SUMIFS в других ситуациях, чтобы посмотреть мои конечные даты и только суммировать данные, которые попадают в данный месяц, но я не понимаю, как объединить эту идею с той, что из формулы массива.

Любые идеи, как это осуществить? Я работаю в Excel 2013.

ответ

0

Чтобы добавить критерии в функцию массива большую часть времени, вы просто будете умножать дополнительное условие на любой набор условий, которые у вас уже есть.

Причина, почему это работает просто потому, что мы начнем с нашим списком чисел мы хотим подвести:

IF(C1:C4<D1:D4, C1:C4, D1:D4) => { 19, 35, 35, 35 } 

Умножим 1-й или 0 к каждому из значений, соответствующих дополнительные критерии.

Таким образом, для примера можно сказать, что мы хотим только проверить количество значений, которые имеют дату окончания в пределах месяц 4. Мы можем сделать это с помощью:

MONTH(B1:B4)=4 

Просто умножьте критерии в функции SUM в основном создать логическое and условие для этого критерия:

=SUM(IF(C1:C4<D1:D4, C1:C4, D1:D4)*(MONTH(B1:B4)=4)) 
= SUM({ 19, 35, 35, 35 } * { 1, 1, 0, 0}) => SUM({19, 35, 0, 0}) = 54 

Это то же самое, если мы хотим, чтобы добавить п условие-х :

=SUM(IF(C1:C4<D1:D4, C1:C4, D1:D4)*(MONTH(B1:B4)=4)*(`Condition2`)*(`Condition3`)...) 

Вы можете использовать любую формулу или оператор, который возвращает значение true/false в ваших условиях.
Такие, как: =><>=<=<>IF(...,TRUE)

Чтобы добавить OR логику в качестве критерия необходимо использовать сложение вместо умножения, а затем сгруппировать их внутри (..)>0, как это:

(((Or_Condition1)+(Or_condition2)+...+(Or_conditionN))>0) 

Так что если мы хотели бы суммировать месяцы 4 или 5, мы можем написать:

=SUM(IF(C1:C4<D1:D4, C1:C4, D1:D4)*(((MONTH(B1:B4)=4)+(MONTH(B1:B4)=5))>0)) 
+0

Итак, если я хочу подвести итог несколько месяцев, я мог бы просто добавить дальнейшие итерации того же состояния с последующим номером месяца? ... * (MONTH (B: B) = 5) * (MONTH (B: B) = 6) ...) – triebark

+0

@ triebark Ah, используя логику 'OR', немного сложнее, но я могу объяснить, что – chancea

+0

@triebark Я добавил, что в свой ответ – chancea

1

Вот расширение подхода chancea: Функция SUM в Excel (и СРЕДНЕЕ, STDEV и т. Д.) Имеет полезное поведение «пропуска» над текстовыми значениями. Например, AVERAGE (3, 4, «собака», 5) возвращает 4. Вы можете использовать это поведение вложенных IF внутри суммы. Например,

=SUM(IF(MONTH(B1:B4)=4,IF(C1:C4<D1:D4,C1:C4,D1:D4),"NO")) 

подведут (а) меньшее из запланированное и фактическое (б), когда месяц 4

Это достигается за счет вложенных IF-х. Наружный ПЧ IF(MONTH(B1:B4)=4,...,"NO") [если месяц <> 4, ЕСЛИ возвращает текст («НЕТ»), который пропускает СУММА]

Внутренний ПЧ является той же, что chancea показали. Вы можете вложить столько тестов/фильтров, сколько вам нужно

Смежные вопросы