Вот для чего я снимаю:

= IF(LEFT(Q3,2)= "By", "см. Авторизирующую лабораторию" & "-" & SUM(Q3-L3))

Я пытаюсь сказать, ЕСЛИ Q3 говорит "По" возврату "см. Санкционирующую лабораторию", если нет, то вычтите L3 из Q3 (обе ячейки - даты) и верните, сколько дней прошло.

2 ответа2

1

Похоже, ячейка Q3 имеет формат By [date] . Excel видит это как текстовое значение, а не как значение даты. Таким образом, вы не можете сделать что-то вроде Q3-L3 . Я предполагаю, что это - то, где беспорядок входит. У вас есть несколько вариантов решения проблемы в зависимости от настроек ваших данных. Прежде чем мы углубимся в это, давайте очистим вашу формулу. Я думаю, что вы хотите либо показать текст «См. Авторизирующую лабораторию», либо указать, сколько дней ожидается до его готовности. Если это так, формула должна быть

=IF(LEFT(Q3,2)="By", "See authorizing lab", Q3-L3)

Теперь для части Q3-L3 нам нужно извлечь значение даты из текстового значения. Для этого есть функция. Поскольку мы хотим пропустить первые 3 символа (By), мы также будем использовать функцию MID .

DATEVALUE(MID(Q3,4,LEN(Q3)))

Это позволит извлечь весь текст, начиная с четвертого символа, и попытаться преобразовать его в значение даты. Включение этого в остальную часть формулы дает нам:

=IF(LEFT(Q3,2)="By", "See authorizing lab", DATEVALUE(MID(Q3,4,LEN(Q3)))-L3)
0

Конечно, вы можете сделать это, нет причины, по которой вы не можете использовать текст и математику в одной и той же функции IF .

Ваш пример не соответствует формату функции IF , а именно:

=IF(logical_test, value_if_true, value_if_false)

То есть вам нужно разделить каждую часть запятой. Итак, ваш код должен читать:

=IF(LEFT(Q3,2)="By", "see authorizing lab", Q3-L3)

(Кроме того, нет необходимости использовать функцию SUM если вы не пытаетесь добавить диапазон чисел.)

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