如何使Google Sheets IMPORTXML仅提取数字?已尝试VALUE函数
解决IMPORTXML返回带符号字符串的数字提取问题
方法1:替换非数字字符后转数值(通用Excel/Google Sheets)
先用SUBSTITUTE移除美元符号和多余空格,再用VALUE转换:
=VALUE(SUBSTITUTE(SUBSTITUTE(IMPORTXML("https://csgoskins.gg/items/gamma-2-case", "/html/body/main/div[2]/div[1]/div[8]/div[2]/div[1]/div[2]"), "$", ""), " ", ""))
- 第一层
SUBSTITUTE去掉$符号 - 第二层
SUBSTITUTE清除字符串中可能存在的空格 - 最后用
VALUE将清理后的纯数字字符串转为数值格式
方法2:正则提取数字(Google Sheets专用)
利用REGEXEXTRACT直接匹配字符串中的小数部分,再转数值:
=VALUE(REGEXEXTRACT(IMPORTXML("https://csgoskins.gg/items/gamma-2-case", "/html/body/main/div[2]/div[1]/div[8]/div[2]/div[1]/div[2]"), "\d+\.\d+"))
如果目标值可能是整数(如$5),可以把正则表达式改成"\d+(\.\d+)?",兼容整数和小数场景。
方法3:定位截取数字(Excel专用,含简化写法)
基础写法
通过FIND定位$的位置,再用MID截取后面的数字部分:
=VALUE(MID(IMPORTXML("https://csgoskins.gg/items/gamma-2-case", "/html/body/main/div[2]/div[1]/div[8]/div[2]/div[1]/div[2]"), FIND("$", IMPORTXML("https://csgoskins.gg/items/gamma-2-case", "/html/body/main/div[2]/div[1]/div[8]/div[2]/div[1]/div[2]"))+1, LEN(IMPORTXML("https://csgoskins.gg/items/gamma-2-case", "/html/body/main/div[2]/div[1]/div[8]/div[2]/div[1]/div[2]"))-FIND("$", IMPORTXML("https://csgoskins.gg/items/gamma-2-case", "/html/body/main/div[2]/div[1]/div[8]/div[2]/div[1]/div[2]"))))
简化写法(Excel 365及以上)
用LET函数存储IMPORTXML的结果,避免重复调用:
=LET( raw_price, IMPORTXML("https://csgoskins.gg/items/gamma-2-case", "/html/body/main/div[2]/div[1]/div[8]/div[2]/div[1]/div[2]"), VALUE(MID(raw_price, FIND("$", raw_price)+1, LEN(raw_price)-FIND("$", raw_price))) )
为什么直接用VALUE无效?
因为IMPORTXML返回的字符串包含$符号和可能的前后空格,这些非数字字符会导致VALUE无法识别为有效数值格式,必须先清理或提取纯数字部分。
内容的提问来源于stack exchange,提问作者Veli-Pekka Hiltunen
相关产品推荐
相关产品推荐

