IF语句使用find,否则使用上一个单元格

时间:2018-08-17 02:37:36

标签: excel excel-formula

我正在尝试使生成的报告中的数据自动化,但是无法使我的IF语句引用上一个单元格。公式的第一部分很好。

IF(FIND("L3:",A2),MID(A2,9,4),F1)

https://i.stack.imgur.com/jGcUv.jpg

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

在找到文本和未找到文本时(例如,当FIND返回NOT(ISERROR(...))错误时,在MID(A2,9,4)中将FIND换行以返回#VALUE如屏幕截图所示),返回上一个单元格。

=IF(NOT(ISERROR(FIND("L3:",A2))),MID(A2,9,4),F1)

编辑:

如果您很简洁,请忽略NOT并翻转IF的第二个和第三个参数:

=IF(ISERROR(FIND("L3:",A2)),F1,MID(A2,9,4))

答案 1 :(得分:0)

IF(AND(LEN(A2)>1,FIND("L3:",A2&"L3:")=1),MID(A2,9,4),F1)

当L3:不存在时,查找可能会导致错误。通过将L3:附加到列表的末尾,可以确保找到它。您只需要验证其在起始位置即可。但是,您还需要确保单元格A2不为空,因此您需要同时使单元格的长度大于1。

答案 2 :(得分:0)

您的问题是,如果FIND空着,它将返回#value IFERROR处理该问题,如果返回#value,则为0,否则返回找到该字符串的位置,IF语句将其取为1或TRUE

=IF(IFERROR(FIND("L3:",A2),0),MID(A2,9,4),F1)

enter image description here