我在 Excel 中有一个字符串列表,如下所示:
a>b>b>d>c>a
a>b>c>d
b>b>b>d>d>a
等等
我想从每个字符串中提取最后一个 c 或最后一个 d,以最后一个为准,
例如
a>b>b>d>c>a = C
a>b>c>d = d
b>b>b>d>d>a = d
我该如何使用VBA(或者如果可能的话直接使用Excel)来做到这一点?
最佳答案
您可以使用 Excel 公式,如下所示
为了帮助解释,将以一个字母开头,然后在末尾显示完整的公式。
首先找出c出现的次数
= LEN(A1) - LEN(SUBSTITUTE(A1,"c","")
使用该位置将最后一个c替换为唯一字符(以$为例)
=SUBSTITUTE(A1,"c","$",LEN(A1) - LEN(SUBSTITUTE(A1,"c","")))
接下来找到这个独特的角色
= FIND("$",SUBSTITUTE(A1,"c","$",LEN(A1) - LEN(SUBSTITUTE(A1,"c",""))))
这给出了最后一个 c 的位置,现在您可以在 mid 函数中使用它来返回最后一个 c
= MID(A1,FIND("$",SUBSTITUTE(A1,"c","$",LEN(A1) - LEN(SUBSTITUTE(A1,"c","")))),1)
最后,为了同时考虑 c 和 d,使用 max 来返回最后一个
= MID(A1,MAX(IFERROR(FIND("$",SUBSTITUTE(A1,"c","$",LEN(A1) - LEN(SUBSTITUTE(A1,"c","")))),0),IFERROR(FIND("$",SUBSTITUTE(A1,"d","$",LEN(A1) - LEN(SUBSTITUTE(A1,"d","")))),0)),1)
关于string - VBA Excel 查找字符串中的最后一个特定实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35359830/