Уравнение, чтобы найти минимальную разницу между данной датой и массивом дат - PullRequest
1 голос
/ 11 июля 2019

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

Мое текущее уравнение может определить, соответствует ли пара дат вышеуказанным критериям и возвращает 1, если есть совпадение, и 0, если совпадения нет.

=IF(E15<>"",IFERROR(--(AGGREGATE(15,7,(E15-$H$2:$H$8000)/(($C$1:$C$8000=C15)*(E15-$H$2:$H$8000>=0)),1)<43),0),0)

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

Я играл с таким уравнением:

=IF(E3<>"", IFERROR(IF(--(AGGREGATE(15, 6, (E3-$H$2:$H$8000)/(--($C$2:$C$8000=C3)*--(E3-$H$2:$H$8000>=0)), 1)<43)=1, MIN(--($C$2:$C$8000=C3)*(E3-$H$2:$H$8000)), ""), 0), 0)

Но он возвращает только нули.

Ниже приведены примерные данные и ожидаемые значения.

enter image description here

1 Ответ

1 голос
/ 11 июля 2019

Для того, что вы хотите, вам нужно всего лишь переместить чек на сумму менее 43 в Агрегат и вернуть пробелы вместо 0:

=IF(E15<>"",IFERROR(AGGREGATE(15,7,(E15-$H$2:$H$8000)/(($C$1:$C$8000=C15)*(E15-$H$2:$H$8000>=0)*(E15-$H$2:$H$8000<43)),1),""),"")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...