这就是我所追求的:
=IF(LEFT(Q3,2)="By","参见授权实验室"&"-"&SUM(Q3-L3))
我想说的是,如果 Q3 说“通过”,则返回“参见授权实验室”,如果不是,则从 Q3 中减去 L3(两个单元格都是日期)并返回已经过去的天数。
答案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
(此外,除非您要添加一系列数字,否则无需使用该函数。)