使用Excel进行字符串操作 - 如果有其他部分,如何删除部分字符串?

war*_*ren 7 string excel vba worksheet-function

我做了一些谷歌搜索,找不到任何东西,虽然也许我只是在寻找错误的地方.我也不是很擅长VBA,但我确信我能用正确的指针弄明白:)

根据各种条件,我有一个我正在构建的字符串,它是各种单元格的串联.我按顺序打了这些.

=IF(A405<>A404,G405,G405&H404)
Run Code Online (Sandbox Code Playgroud)

我想要做的是返回我的连接列表,如果取代者在列表中,则删除一个被取代的值.

例如,请参阅以下列表:

A, D, G, Y, Z
Run Code Online (Sandbox Code Playgroud)

我想删除D 当且仅 当 Y存在.

我该怎么做?(VBA或in-cell,虽然我更喜欢in-cell)

Jos*_*Bui 5

尝试:

=IF(ISERROR(FIND("Y",A1)),A1,SUBSTITUTE(A1,"D, ",""))
Run Code Online (Sandbox Code Playgroud)

但是假设你总是在D之后有逗号和空格.


war*_*ren 0

我也刚刚通过电子邮件得到了这个可能的解决方案:

=IF(A15<>A14,G15,IF(OR(AND(G15="CR247, ",ISNUMBER(FIND("CR247, ",H14))),AND(G15="CR149, ",ISNUMBER(FIND("CR215, ",H14))),AND(G15="CR149, ",ISNUMBER(FIND("CR180, ",H14))),AND(G15="CR180, ",ISNUMBER(FIND("CR215, ",H14))),G15="CR113, "),H14,G15&H14))
Run Code Online (Sandbox Code Playgroud)

(这具有带有优先规则的“真实”值)

它看起来与@Joseph的答案相对相似。

有更好的解决方案吗?