1

Я ищу способ рассчитать значения, показанные в столбцах D & E на скриншоте ниже. Столбец D содержит самую раннюю дату из столбца B, где совпадает имя в столбце A. Аналогично, столбец E содержит самую последнюю дату из столбца C, где совпадает имя в столбце A.

Например, для всех экземпляров "Боб" в столбце A: столбец D должен содержать самую раннюю "Строку с даты" из столбца B, где столбец A = "Боб" (в данном случае 1 декабря 2013 г.).

Я знаю, что это легко сделать с помощью сводной таблицы, однако в этом случае мне нужно сделать это с помощью формулы или программно.

Данные генерируются с использованием VBA, поэтому в отсутствие формульного решения я просто вернусь к вычислению требуемых значений как части программы (примечание: я не спрашиваю, как это сделать). Из-за сложности набора данных (приведенный выше пример является грубым упрощением) мне потребовалось бы около дня, чтобы реализовать его в коде, поэтому я бы предпочел этого избежать, если это возможно.

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

Любая помощь и указатели очень ценятся.

1 ответ1

2

В общем:

{=MIN(IF(MatchRange=MatchVal,ValueRange))}

или же

{=MAX(IF(MatchRange=MatchVal,ValueRange))}

Итак, переведено на условия оригинального примера ...

Ячейка D2 будет содержать следующую формулу массива:

{=MIN(IF(A$2:A$7=A2),B$2:B$7)}

И ячейка E2 будет содержать:

{=MAX(IF(A$2:A$7=A2),C$2:C$7)}

NB. Не вводите фигурные / фигурные скобки в приведенных выше примерах. Введите формулу без них, затем нажмите Ctrl+Shift+Enter, чтобы создать формулу массива.

Тогда формулы в D2:E2 будут "автоматически заполняться" до D2:E7.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .