У меня есть умеренно размерный набор данных в Excel, от которого я хочу извлечь максимальную ценность значений в Столбце B, но те, которые соответствуют только ячейкам в Столбце A, которые удовлетворяют определенные критерии.
Желаемая функциональность схожа функциональности SUMIF
или COUNTIF
, но ни одни из тех данных возврата, которые необходимы. Нет a MAXIF
функция; как я эмулирую тот?
Вы можете использовать формулу массива. В ячейке, в которой вы хотите вычислить максимальное значение, введите: = 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))"