我是否需要一个辅助列,或者我可以使用公式来完成此操作?

我是否需要一个辅助列,或者我可以使用公式来完成此操作?

我正在使用这个公式

=IF((LEFT($B26,2)="<p"),0,IF($B26="",0,IF($F26<>"",0,(FIND("""../",$B26)))))

解析类似如下的数据。

<nobr>&nbsp;&nbsp;&nbsp;&nbsp;contractor information</nobr><br> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="../City_Electrical_Inspectors.htm"><b> City Electrical Inspectors</b></a><br>
<nobr>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../City_Electrical_Inspectors.htm"><b>inspection</b></a></nobr><br>

我的问题出现在第一行这样的情况中,其中该行既不是新段落也不是链接,并且我FIND返回一个错误#VALUE!

我想创建一个IF测试,在处理该语句之前扫描该行以查找该语句中是否存在模式FIND。我认为寻找错误条件可能是可行的方法。但是,我能想到的唯一方法是将其作为一个自引用公式,类似于以下伪代码。

IF(ISERROR($L26)=TRUE,$L26=0,L$26=上述公式的结果)

可以用公式来完成这个吗?还是我需要使用新的辅助列?

谢谢。

答案1

如果您使用的是 Excel 2007 或更新版本,则可以将该FIND()函数包装在IFERROR()函数中。

=IF((LEFT($B26,2)="<p"),0,IF($B26="",0,IF($F26<>"",0,IFERROR(FIND("""../",$B26),0))))

对于不支持的旧版 Excel IFERROR(),您可以使用以下更长的解决方案。

=IF((LEFT($B26,2)="<p"),0,IF($B26="",0,IF($F26<>"",0,IF(ISERROR(FIND("""../",$B26)),0,FIND("""../",$B26))))

相关内容