Проверка пользовательских данных не удалась, даже если оценка формулы имеет значение «ЛОЖЬ»

Проверка пользовательских данных не удалась, даже если оценка формулы имеет значение «ЛОЖЬ»

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

У меня есть таблица, которая приведена в Table.JPGТаблица.JPG.

У меня есть пользовательская проверка данных для последних двух столбцов, показанных в DV1.JPGDV1.JPGи DV2.JPGDV2.JPG.

Формула в ячейкеЛ3является =AND(NOT(ISBLANK(K3)),ISNUMBER(L3),LEFT(CELL("format",L3),1)="D",L3>=K3, YEARFRAC(K3, L3)>=0.5 )

Формула вМ4является =AND(INT(M4)=M4, NOT(ISBLANK(L4)))

Обе формулы не работают, и, как следует из вышесказанного, проверка данных не должна позволять мне ввести этот пользовательский ввод, но это не так. Изображение оценки формулы показано в FormEval.JPGFormEval.JPG.

Итак, теперь мотив проблемы: я пытаюсь убедиться, что дата продления,СтолбецЛможет быть введен только в том случае, если для участника существует дата начала, и эта дата продления должна быть не менее 6 месяцев с даты начала, и, наконец, это должна быть дата, превышающая дату начала, учитывая способYEARFRACфункция работает.

После вышеизложенного обновите идентификатор,СтолбецМдолжен быть установлен пользователем, и этот идентификатор продления должен быть целым числом, и это значение можно ввести только в том случае, если установлена ​​дата продления.

На основе исследований, которые я провел до сих пор. Формула выглядит хорошо, так почему же она дает сбой в некоторых случаях (например, когда зависимый столбец пуст)?

решение1

Для столбца L в L3 используйте:

=AND(COUNTA($K3),$L3>=EDATE($K3,6))

Для столбца M в M3 используйте:

=AND($M3-INT($M3)=0,COUNTA($L3))

При тестировании пустой даты Excel преобразует 0 в 01-01-1900, поэтому проверка не работает с isblank(),
а Edate добавит к дате 6 месяцев.

CountA будет иметь значение True, если ячейка не пустая

Связанный контент