Google Sheets用REGEXEXTRACT提取欧元价格等加粗字段方法
Google Sheets提取Idealista房产结构化字段实现方案
原公式失效原因
你之前使用的售价提取公式=REGEXEXTRACT('Hoja 1'!B1; "\€([0-9.]+)")无法得到正确结果,核心问题是正则匹配顺序写反:原文本中售价的格式为数值+空格+€,该公式会先查找€符号再抓取符号后的数字,和实际文本顺序不符,因此匹配失败。
由于所有目标字段均被<strong>标签包裹,且全表文本结构统一,直接基于标签特征写正则即可稳定提取,不需要额外做复杂上下文匹配。
单字段独立提取公式
以下公式可逐个提取对应字段,直接粘贴到目标单元格即可使用,如果你的表格区域设置用分号做参数分隔符,把公式里的逗号替换为分号即可:
- 所在区域提取:
=REGEXEXTRACT('Hoja 1'!B1, "<strong>([^<]+)</strong>"),对应返回值示例:Montealegre - 售价提取(修正版):
=REGEXEXTRACT('Hoja 1'!B1, "<strong>([0-9.]+ €)</strong>"),对应返回值示例:425.000 € - 房源ID提取:
=REGEXEXTRACT('Hoja 1'!B1, "<strong>([0-9]{8})</strong>"),对应返回值示例:98106051 - 房屋面积提取:
=REGEXEXTRACT('Hoja 1'!B1, "<strong>([0-9]+ m²)</strong>"),对应返回值示例:152 m² - 房间数量提取:
=REGEXEXTRACT('Hoja 1'!B1, "<strong>([0-9]+ hab)</strong>"),对应返回值示例:4 hab - 地块面积提取:
=REGEXEXTRACT('Hoja 1'!B1, "<strong>([0-9]+ mts2)</strong>"),对应返回值示例:613 mts2
一键全字段拆分公式
如果需要一次性把6个字段拆分到相邻单元格,直接在目标区域第一个单元格输入以下公式即可自动横向溢出所有结果,完全匹配你需要的| Montealegre | 425.000 € | 98106051 | 152 m² | 4 hab | 613 mts2 |排版效果:
=ARRAYFORMULA(REGEXEXTRACT('Hoja 1'!B1,"<strong>([^<]+)</strong>.*?<strong>([0-9.]+ €)</strong>.*?<strong>([0-9]{8})</strong>.*?<strong>([0-9]+ m²)</strong>.*?<strong>([0-9]+ hab)</strong>.*?<strong>([0-9]+ mts2)</strong>"))
提示:如果需要批量处理多行数据,把公式里的
'Hoja 1'!B1改成对应数据列的范围(比如'Hoja 1'!B1:B100),公式会自动按行批量提取所有房源的结构化信息。
内容的提问来源于stack exchange,提问作者Bannedillo
相关产品推荐
相关产品推荐

