2013-05-28 2 views
1

Необходимо получить данные, основанные на результатах, возвращаемых формулой массиваExcel формулу массива и сочетание

enter image description here

Теперь мне нужно получить:

  • Найти самый высокий из колонны (D), где колонка (С) = 1. "Ценностно> 1868". (Т.е. между 16: 00-18: 00 часов, самый высокий за 1)
  • Из той же строке выше результата, получить значения столбцов для столбца (G) -> 1256 и (Н) -> 57

Чтобы получить первое - самое высокое значение из столбца (D), у меня есть следующая формула Array, которая отлично работает. = MAX (IF ((C10: C30) = 1, D10: D30))

Теперь, основываясь на этом, как мне получить максимальные значения от Col-G и H?

ответ

1

Вы можете использовать INDEX/MATCH для этого, например. для столбца значения G попробовать эту "формулу массива"

=INDEX(G10:G30,MATCH(1,(D10:D30=MAX(IF(C10:C30=1,D10:D30)))*(C10:C30=1),0))

подтвержденное CTRL + SHIFT + ENTER

заменить G10:G30 с H10:H30 в Gt столбце Значение H

конечно, если у вас уже есть ваша формула в B31, вы можете использовать этот результат в моей предложенной формуле для упрощения, т. е.

=INDEX(G10:G30,MATCH(1,(D10:D30=B31)*(C10:C30=1),0))

+0

Wow ... works Great. Спасибо ... Пойдем позже, как это работает! – Siva

+0

Я немного смущен, почему/как используется * (C10: C30 = 1). Не могли бы вы объяснить? – Siva

+1

Я предположил, что у вас могут быть повторяющиеся значения в D10: D30 (например, 1868 может происходить более одного раза и, возможно, в строках, где C10: C30 = 2), поэтому вам нужно искать строки, где выполняются 2 условия, то есть D10: D30 = B31, а также C10: C30 = 1, когда вы проверяете те, у которых вы получаете массивы TRUE или FALSE, и когда вы умножаете эти массивы только TRUE * TRUE = 1, так что MATCH ищет 1, который соответствует первой строке, где выполняются оба условия. ... и INDEX возвращает соответствующую строку из G10: G30 –