Excel функция MAXIF или эмуляция?

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

Желаемая функциональность схожа функциональности SUMIF или COUNTIF, но ни одни из тех данных возврата, которые необходимы. Нет a MAXIF функция; как я эмулирую тот?

5
задан brettdj 23 October 2012 в 04:49
поделиться

1 ответ

Вы можете использовать формулу массива. В ячейке, в которой вы хотите вычислить максимальное значение, введите: = Max (Если ([test], [if true], [if false]), где вы замените значения в квадратных скобках на тест, что возвращать, если истинно, и что возвращать, если ложно. Например:

=MAX(IF(MOD(A2:A25,2)=0,A2:A25,0)

В этой формуле я возвращаю значение в столбце A, если значение, деленное на 2, не имеет остатка. Обратите внимание, что я использую диапазон ячеек в мое сравнение и в значении if false, а не в отдельной ячейке.

Теперь, все еще редактируя ячейку, нажмите Ctrl + Shift + Enter (одновременно удерживая клавиши Ctrl и Shift, а затем нажмите Enter).

Это создает формулу массива, которая действует на каждое значение в диапазоне.

EDIT Кстати, вы хотели сделать это программно или вручную? Если программно, то какую среду вы используете? VBA? C #?

РЕДАКТИРОВАТЬ Если через VBA, вам нужно использовать свойство FormulaArray и ссылки R1C1 следующим образом:

Range("A1").Select
Selection.FormulaArray = "=MAX(IF(MOD(R[1]C:R[24]C,2)=0,R[1]C:R[24]C,0))"
5
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: