Существует стандартный метод создания базовой формулы массива, который вводит условия для функций, которые обычно не принимают условий.
'basic formula
=FUNCTION(<range1>, [optional range2], [optional range3], ...)
'array formula with one condition
=FUNCTION(IF(<condition1>, <range1>))
'array formula with two conditions
=FUNCTION(IF(<condition1>, IF(<condition2>, <range1>)))
После ввода или вставки этих формул массива впанель формул рабочего листа, они должны быть завершены с помощью Ctrl + Shift + Enter (он же CSE);не просто войти.Это приведет к тому, что математические скобки будут заключаться в формулу, подобную этой:
{=FUNCTION(IF(<condition1>, <range1>))}
Вы не вводите их в себя.Excel добавит их, если вы правильно введете формулу массива в CSE.
Важно отметить, что два условия были выполнены путем вложения двух операторов IF. не попробуйте соединить два или более условий с И или ИЛИ.И и ИЛИ уже являются формой циклического вычисления и не будут работать должным образом в формуле массива.
Также важно отметить, что формулы массива вычисляют все, что вы им предоставляете. не использовать полные ссылки на столбцы;попытайтесь сократить диапазоны до размера, используемого с минимумом неиспользованных ячеек.Если вам приходится ссылаться на часто меняющиеся диапазоны, существуют методы правильной ссылки на них динамически.
Формулы для ваших же данных:
'in G5:H5 per supplied image (Bob)
=VAR.S(D3, D5, D7:D9, D12, D15, D17) 'standard formula
=VAR.S(IF(B2:B18="bob", D2:D18)) 'array formula with CSE
'in G8:H8 per supplied image (Bob, Feb)
=VAR.S(D5, D7:D9) 'standard formula
=VAR.S(IF(B2:B18="bob", IF(A2:A18="Feb", D2:D18))) 'array formula with CSE
'in G11:H11 per supplied image (Bob, Feb, A)
=VAR.S(D5, D7, D9) 'standard formula
=VAR.S(IF(B2:B18="bob", IF(A2:A18="Feb", IF(C2:C18="A", D2:D18)))) 'array formula with CSE
Из приведенных выше парных примеров видно, что ручной выбор разнообразного набора ячеек и условная фильтрация по формуле массива дают одинаковые результаты.