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)
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)