如何提取字符串中第三个'/'后的中间字符?SQL处理求助
提取路径中指定分段的Excel公式解法
针对格式为/WM/Operational/Reports/ReportName的字符串,要提取第三个/之后、最后一个/之前的分段(即Reports),可以结合你已有的两种思路,用以下动态公式实现(无需固定字符长度):
通用版公式(兼容多数Excel版本)
=LEFT(RIGHT(A1, LEN(A1) - CHARINDEX("/", A1, CHARINDEX("/", A1, CHARINDEX("/", A1)+1)+1)), CHARINDEX("/", RIGHT(A1, LEN(A1) - CHARINDEX("/", A1, CHARINDEX("/", A1, CHARINDEX("/", A1)+1)+1)))-1)
公式拆解
- 定位第三个
/的位置:CHARINDEX("/", A1, CHARINDEX("/", A1, CHARINDEX("/", A1)+1)+1)会依次找到第1、第2、第3个/的位置,替代你之前用的固定长度31,适配不同长度的前缀。 - 截取第三个
/之后的内容:RIGHT(A1, LEN(A1) - 第三个/的位置)得到Reports/ReportName这部分。 - 移除最后一段内容:对上面的结果用
CHARINDEX("/", ...)找到第一个/的位置,再用LEFT(..., 位置-1)截取到该/之前的内容,最终得到Reports。
简化版公式(Excel 365/2021及以上版本)
如果你的Excel支持TEXTAFTER和TEXTBEFORE函数,可以用更简洁的写法:
=TEXTAFTER(TEXTBEFORE(A1, "/", -2), "/", 3)
公式拆解
TEXTBEFORE(A1, "/", -2):取倒数第二个/之前的全部内容,即/WM/Operational/Reports。TEXTAFTER(..., "/", 3):从上面的结果中提取第三个/之后的内容,直接得到Reports。
内容的提问来源于stack exchange,提问作者BIReportGuy
相关产品推荐
相关产品推荐

