Excel: AVERAGEIFS с парами связанных критериев, И не работает - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть формула AVERAGEIFS для нескольких критериев. Для определенных пар критериев я хочу, чтобы он усреднялся только тогда, когда ОБА верны. Это моя текущая формула:

=AVERAGEIFS('NA Trades'!$R$3:$R$1048576,'NA Trades'!$C$3:$C$1048576,"TSX D3",'NA Trades'!$DW$3:$DW$1048576,">16",'NA Trades'!$Z$3:$Z$1048576,"<20",'NA Trades'!$BB$3:$BB$1048576,"<5.25",'NA Trades'!$AA$3:$AA$1048576,">240000000",'NA Trades'!$BB$3:$BB$1048576,">5.25",'NA Trades'!$CQ$3:$CQ$1048576,"<14.55")

Последние 4 критерия - это те, которые я хочу связать попарно

Я хочу, чтобы он применял только критерии «NA Trades»! $ AA $ 3: $ AA $ 1048576, «> 240000000», когда «NA Trades»! $ BB $ 3: $ BB $ 1048576, «<5.25» и применял только «NA торгует»! $ CQ $ 3: $ CQ $ 1048576, критерии «<14,55», когда «NA торгует»! $ BB $ 3: $ BB $ 1048576, «> 5,25». (Таким образом, если BB> 5,25, критерии AA> 240000000 не имеют значения, а когда BB <5,25, CQ <14,55 не имеет значения) </p>

Я сделал это, добавив в свой набор данных дополнительный столбец, чтобы определить, когда пары критериев верны, и вместо этого просто включить его в средние значения. Однако я пытаюсь понять, как это сделать, не добавляя дополнительный столбец, и сделать это только в самом AVERAGEIFS. Я пытался вложить и AND, чтобы соединить критерии, но продолжаю получать ошибку.

1 Ответ

0 голосов
/ 11 ноября 2018

Более кратким вариантом будет переключение на формулу массива **:

=AVERAGE(IF('NA Trades'!$C$3:$C$20="TSX D3",IF('NA Trades'!$DW$3:$DW$20>16,IF('NA Trades'!$Z$3:$Z$20<20,IF(IF('NA Trades'!$BB$3:$BB$20<5.25,'NA Trades'!$AA$3:$AA$20>240000000,1),IF(IF('NA Trades'!$BB$3:$BB$20>5.25,'NA Trades'!$CQ$3:$CQ$20<14.55,1),'NA Trades'!$R$3:$R$20))))))

хотя в этом случае вам настоятельно рекомендуется не использовать ссылки на весь столбец ; следовательно, я выбрал ссылку на верхний ряд, равную 20 (которую вы, очевидно, можете увеличить по мере необходимости, хотя не забудьте сохранить ее как можно ниже).

В качестве альтернативы, вы можете использовать комбинацию SUMIFS / COUNTIFS, которая менее лаконична, но имеет то преимущество, что ссылка на целые столбцы практически не влияет на производительность:

=SUM(SUMIFS('NA Trades'!$R$3:$R$1048576,'NA Trades'!$C$3:$C$1048576,"TSX D3",'NA Trades'!$DW$3:$DW$1048576,">16",'NA Trades'!$Z$3:$Z$1048576,"<20",'NA Trades'!$BB$3:$BB$1048576,{"<",">="}&5.25,'NA Trades'!$AA$3:$AA$1048576,{">240000000",">=0"},'NA Trades'!$BB$3:$BB$1048576,{"<=",">"}&5.25,'NA Trades'!$CQ$3:$CQ$1048576,{">=0","<14.55"}))/SUM(COUNTIFS('NA Trades'!$C$3:$C$1048576,"TSX D3",'NA Trades'!$DW$3:$DW$1048576,">16",'NA Trades'!$Z$3:$Z$1048576,"<20",'NA Trades'!$BB$3:$BB$1048576,{"<",">="}&5.25,'NA Trades'!$AA$3:$AA$1048576,{">240000000",">=0"},'NA Trades'!$BB$3:$BB$1048576,{"<=",">"}&5.25,'NA Trades'!$CQ$3:$CQ$1048576,{">=0","<14.55"}))

Кстати, есть ли в строках 1 и 2 значения, которые не позволили бы вам ссылаться на столбцы целиком для сокращения последнего? Если нет, используйте:

=SUM(SUMIFS('NA Trades'!$R:$R,'NA Trades'!$C:$C,"TSX D3",'NA Trades'!$DW:$DW,">16",'NA Trades'!$Z:$Z,"<20",'NA Trades'!$BB:$BB,{"<",">="}&5.25,'NA Trades'!$AA:$AA,{">240000000",">=0"},'NA Trades'!$BB:$BB,{"<=",">"}&5.25,'NA Trades'!$CQ:$CQ,{">=0","<14.55"}))/SUM(COUNTIFS('NA Trades'!$C:$C,"TSX D3",'NA Trades'!$DW:$DW,">16",'NA Trades'!$Z:$Z,"<20",'NA Trades'!$BB:$BB,{"<",">="}&5.25,'NA Trades'!$AA:$AA,{">240000000",">=0"},'NA Trades'!$BB:$BB,{"<=",">"}&5.25,'NA Trades'!$CQ:$CQ,{">=0","<14.55"}))

Привет

** Формулы массива вводятся не так, как «стандартные» формулы. Вместо того, чтобы просто нажимать ENTER, вы сначала удерживаете клавиши CTRL и SHIFT, и только затем нажимаете ENTER. Если вы сделали это правильно, вы заметите, что Excel заключает в формулу фигурные скобки {} (хотя не пытайтесь вставить их вручную).

...