如何用公式在Excel/Google Sheets提取URL路径中的州名
从URL提取州名的Excel/Google Sheets公式
以下针对你的URL格式(https://www.example.com/[州名]-services,可带查询参数),提供适配单字/多字州名的提取公式:
Google Sheets 解决方案
使用正则表达式直接匹配目标内容,适配所有场景:
=PROPER(REGEXEXTRACT(A1, "example\.com/([^?]+)-services"))
公式说明:
REGEXEXTRACT(A1, "example\.com/([^?]+)-services"):匹配example.com/后、-services前的所有非?字符(自动忽略URL末尾的查询参数),捕获州名字符串PROPER():将提取的字符串转换为首字母大写格式(如south-dakota转为South Dakota)
测试结果:
- 对应第一个URL:返回
Florida - 对应第二个URL:返回
South Dakota - 对应第三个URL:返回
Illinois
Excel 解决方案
根据Excel版本选择对应公式:
适用于Excel 365/2021及以上(支持TEXTBEFORE/TEXTAFTER)
=PROPER(TEXTBEFORE(TEXTAFTER(A1, "example.com/"), "-services", , TRUE))
公式说明:
TEXTAFTER(A1, "example.com/"):提取example.com/之后的所有内容TEXTBEFORE(..., "-services", , TRUE):提取上述结果中-services之前的内容,TRUE参数确保即使URL无查询参数也能正常提取PROPER():格式化州名为首字母大写
适用于旧版Excel(无TEXTBEFORE/TEXTAFTER)
=PROPER(MID(A1, FIND("example.com/", A1)+12, IFERROR(FIND("?", A1)-FIND("example.com/", A1)-12-9, LEN(A1)-FIND("example.com/", A1)-12)))
公式说明:
FIND("example.com/", A1)+12:定位到example.com/之后的起始位置(example.com/长度为12)IFERROR(...):判断URL是否包含查询参数?,计算需要提取的州名字符串长度- 若有
?:用?的位置减去域名起始位置,再减去12(域名长度)和9(-services长度),得到州名长度 - 若无
?:用URL总长度减去域名起始位置和12,得到州名长度
- 若有
MID():提取州名字符串,再用PROPER()格式化
内容的提问来源于stack exchange,提问作者Matt Makris
相关产品推荐
相关产品推荐

