Вот к чему я стремлюсь:
=ЕСЛИ(ЛЕВЫЙ(Q3,2)="По","см. авторизующую лабораторию"&"-"&СУММА(Q3-L3))
Я пытаюсь сказать, что ЕСЛИ в Q3 указано «К», то следует вернуть «см. авторизующую лабораторию», если нет, то вычесть L3 из Q3 (обе ячейки — даты) и вернуть количество прошедших дней.
решение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)
решение2
Конечно, вы можете это сделать, нет никаких причин, по которым вы не можете использовать текст и математику в одной и той же IF
функции.
Ваш пример не соответствует формату функции IF
, который выглядит следующим образом:
=IF(logical_test, value_if_true, value_if_false)
То есть, вам нужно отделить каждую часть запятой. Таким образом, ваш код должен выглядеть так:
=IF(LEFT(Q3,2)="By", "see authorizing lab", Q3-L3)
(Кроме того, нет необходимости использовать эту SUM
функцию, если вы не пытаетесь сложить диапазон чисел.)