Я использую эту формулу

=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 перед обработкой этого оператора. Я полагал, что поиск условия ошибки может быть способом пойти. Тем не менее, единственный способ, которым я могу представить это в виде самореференциальной формулы, подобной следующему псевдокоду.

ЕСЛИ (ЕОШИБКА ($ L26)= TRUE, $ L26 = 0, L = 26 $ заместитель результат-оф-формула-выше)

Можно ли это сделать с помощью формулы или мне нужно использовать новый вспомогательный столбец?

Благодарю.

1 ответ1

2

Если вы используете 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))))

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