从Google电子表格中的文字中提取特定数据

时间:2016-06-15 14:14:22

标签: google-sheets

我正在尝试从Google电子表格中的文字中提取一些特定数据,但我在获取我想要的数据方面遇到了问题。

我想提取的文字如下:

"<strong>Title -</strong> Round and Round <strong><br><br>Artist -</strong> Laurie Lipton <strong><br><br>Type -</strong> Print <strong><br><br>Size -</strong> 18,3 x 23,5 in (46,5 x 59,7 cm) <strong><br><br>Medium - </strong> Lithograph <strong><br><br>Year -</strong> 2014 <strong><br><br>Condition -</strong> Excellent

我可以使用@soup给我的公式,但即使在这种情况下,当有数字时它也不会完全提取数字。如果我有13.5 x 14.35,我有一个显示13的单元格,另一个显示5。

公式如下:

=arrayformula(value(regexextract(A68, "([\d.]+)\D*([\d.]+)")))

2 个答案:

答案 0 :(得分:1)

在Google表格中,regexextract可以很好地完成工作:

=regexextract(Q2, "([\d.]+)\D*([\d.]+)")

在两个单独的单元格中返回“40”和“30”。

但是这些是以字符串形式返回的,因此您可能希望将它们转换为value的数字:

=arrayformula(value(regexextract(Q2, "([\d.]+)\D*([\d.]+)")))

解释

字符串“([\ d。] +)\ D *([\ d。] +)”是regular expression,表示:找到一组连续数字\d,可能带有小数点,并捕获它(用括号表示);然后滚动任意数量的非数字\D*,然后找到另一组数字并捕获它。关于正则表达式的教程在上面链接; Google表格支持的功能的技术说明是here

答案 1 :(得分:0)

如果有的话,这将解决逗号和小数 - 如果没有,它仍然会对它进行相同的处理:

=REGEXEXTRACT(A1,"(\d+.?\d*)\D*(\d+.?\d*)")

enter image description here

更新以包含分数:

=REGEXEXTRACT(A1,"(\d+.?\d*|\d+.?\d/\d)\D*(\d+.?\d*|\d+.?\d/\d)\D*(\d+.?\d*|\d+.?\d/\d\s?)?in")