search和替代多个值

D列是C列的LOOKUP结果

ABCD 1 1234 1234567 Person1 ASKXXXXXXXX 2 3692 8465837 Person2 AFTXXXX 

如果有8个,我需要用DreplaceD中的X,如果有4个,用D代替D中的X。

我尝试下面的公式,但只适用于8X,而不是4X的。

  =IF(SEARCH("XXXXXXXX",D2),SUBSTITUTE(D2,"XXXXXXXX",$B$2),IF(SEARCH("XXXX",D2),SUBSTITUTE(D2,"XXXX",$A$2),"")) 

感谢您的任何帮助。

如果SEARCH失败,您将获得#VALUE! 作为结果。 IF公式不知道如何处理这个,所以失败了。

你需要编写你的公式来处理错误。 做这个:

 =IF(NOT(ISERROR(SEARCH("XXXXXXXX",D2))),SUBSTITUTE(D2,"XXXXXXXX",$B$2),IF(NOT(ISERROR(SEARCH("XXXX",D2))),SUBSTITUTE(D2,"XXXX",$A$2),D2)) 

这适用于您提供的数据

 =LEFT(TRIM(D2),3)&IF(LEN(RIGHT(TRIM(D2),LEN(TRIM(D2))-3))=4,A2,B2)