![如何在 EXCEL 中提取可变数目个字符后的字符串?](https://linux22.com/image/1369272/%E5%A6%82%E4%BD%95%E5%9C%A8%20EXCEL%20%E4%B8%AD%E6%8F%90%E5%8F%96%E5%8F%AF%E5%8F%98%E6%95%B0%E7%9B%AE%E4%B8%AA%E5%AD%97%E7%AC%A6%E5%90%8E%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%9F.png)
我很确定您可以在 VB 中更轻松地完成此操作,但我希望使用 EXCEL 中的公式来完成此操作。
我想在 EXCEL 中去除给定字符串的前 x 个“部分”。 “部分”是完整字符串的分割。
示例:在 C# 中:
"A.BB.CCC.DDDD.EEEEE".Split(new char[]{'.'});
// This yields 5 parts, "A", "BB", "CCC", "DDDD", "EEEEE"
因此,我需要一个公式,该公式可以接受“2”,并通过剥离字符串的前 2 个“部分”来得出 CCC.DDDD.EEEEE。
A.BB.CCC.DDDD.EEEEE --> CCC.DDDD.EEEEE given 2
A.BB.CCC.DDDD.EEEEE --> DDDD.EEEEE given 3
A.BB.CCC.DDDD.EEEEE --> A.BB.CCC.DDDD.EEEEE given 0
答案1
那么你可以使用:
=MID(A2, FIND("@", SUBSTITUTE(A2, ".", "@", 2))+1, LEN(A2))
^
我上面指出的那个是“给定”的意思。将 2 替换为 2 .
,将 3 替换为 3 .
。
或者将其引用到一个单元格,您将知道需要多少个点。
编辑:根据相关编辑,我们可以添加一个IF()
来检查0
。假设数字存储在单元格 A1 中:
=IF(A1 = 0, A2, MID(A2, FIND("@", SUBSTITUTE(A2, ".", "@", A1))+1, LEN(A2)))
答案2
两个点之后:
=MID(B5,SEARCH(".",B5,SEARCH(".",B5)+1)+1,100)