SEARCH 和 SUBSTITUTE 多个值

SEARCH and SUBSTITUTE Multiple value

D 列是从 C 列查找的结果

   A       B       C          D
1 1234   1234567   Person1   ASKXXXXXXXX
2 3692   8465837   Person2   AFTXXXX

如果有 8 个,我需要用 B 替换 D 中的 X, 如果有 4 个 X,则用 A 替换 D 中的 X。

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

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

感谢您的帮助。

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

您需要编写公式来处理错误。这样做:

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

这适用于您提供的数据

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