Получить условно отфильтрованный массив значений в Excel - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу сделать F.Test, T.Test, Var.S с подмножеством данных, основанным на условно удовлетворяющих критериях других ячеек.Для этого мне нужен массив, представляющий подмножество данных, которое условно соответствует моим критериям.При вычислении среднего я смог сделать AVERAGEIFS(), но такая же условная структура недоступна для F.Test, T.Test и Var.S.Пример набора данных ниже.

    A            B           C             D
1  Month      Employee      Part         Value
2  Jan          Tom          A            50    
3  Jan          Bob          A            55
4  Jan          Sally        B            40
5  Feb          Bob          A            45
6  Feb          Tom          A            75
7  Feb          Bob          A            60
8  Feb          Bob          B            65
9  Feb          Bob          A            55
10 Mar          Sally        B            70
11 Mar          Tom          B            40
12 Apr          Bob          B            50
13 Apr          Sally        A            45   
14 Apr          Sally        A            60
15 May          Bob          A            55
16 May          Tom          B            55
17 May          Bob          A            50
18 May          Sally        B            60

Например, если бы я хотел узнать дисперсию столбца «Значение» от Боба в феврале с частью А, этот массив будет состоять из 3 значений: 45,60,55,Я хочу иметь возможность делать Var.S(CODE I NEED GOES HERE)

В моем реальном наборе данных у меня есть тысячи строк данных, поэтому, хотя для моего примера ввод вручную VAR.S(D5, D7, D9) достиг бы того, чего я хочу, это неосуществимо дляреальный набор данных.

Я думаю, что любое решение, используемое для получения условно фильтрованного массива для использования в VAR.S, может быть применено для массивов, необходимых для T.TEST, и F.TEST, но если это не тактогда я был бы признателен за решение этой проблемы.

Любая помощь, которая может быть оказана, очень ценится!

1 Ответ

0 голосов
/ 16 февраля 2019

Существует стандартный метод создания базовой формулы массива, который вводит условия для функций, которые обычно не принимают условий.

'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

enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...