Você recebe este erro devido ao IF()
interno.
Quando Z58
contém "BX17" IFERROR()
retorna 1 (como número), caso contrário, retorna "DDR".
Quando Z58
contém "BX17", o IF()
em torno dele retorna "BX18", caso contrário, retorna o #VALUE
-error.
IF()
interpreta o retorno de 1 como TRUE
e interpretaria 0 como FALSE
. Mas não pode interpretar a string "DDR" que é retornada.