3

Я пытаюсь найти наименьшую разницу между двумя наборами дат.

Самая простая формула массива работает и находит наименьшую разницу, но если в одном из столбцов отсутствует дата, она обрабатывает пустую ячейку как 0, и результат разницы MIN в днях становится примерно таким -42634 (что не Я хочу).

{=MIN(X23:X95-P23:P95)}

После некоторого чтения я попытался вычесть, только если оба столбца не пустые, и пока он работает с одной строкой ...

=IF(OR(ISBLANK(X23),ISBLANK(P23)),"",X23-P23)

это возвращает # #VALUE! ошибка, если я пытаюсь обернуть его с MIN ...

=MIN(IF(OR(ISBLANK(X23),ISBLANK(P23)),"",X23-P23))

Я не эксперт по Excel, но я предполагаю, что это потому, что MIN кроме пустых ячеек, приведут к ошибке, когда я прочитал, что она должна игнорировать пробелы. Использование MIN/MAX для 2 ячеек, одна из которых содержит дату, а другая пустая, кажется, подтверждает это, так как это приводит к единственной дате.

Я пытался включить это в оригинальную формулу, но я понятия не имею, что я делаю, и в итоге я получаю # #VALUE! ошибка снова. Помогите?

{=MIN(IF(OR(ISBLANK(X23:X95),ISBLANK(P23:P95)),"",X23:X95-P23:P95))}

1 ответ1

2

OR оценивает ВСЕ свои параметры в ОДИН РЕЗУЛЬТАТ (а не только попарно).

Чтобы оценить, как вам нужно использовать
IF(ISBLANK(X23:X95)+ISBLANK(P23:P95)...

Совет: чтобы лучше понять вашу формулу, вы можете оценить ее и просмотреть результаты шаг за шагом в формуле - "Оценить формулу"

редактировать

Используя операторы + , - , / , * Excel автоматически преобразует логическое значение в целое число (True -> 1; False -> 0), поэтому сложение (+) работает аналогично OR, а умножение (*) - AND.
После этого IF преобразует числа обратно в логическое значение (0 -> False, не ноль -> True).

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