谷歌表格:从网站导入德国十进制数字

Posted

技术标签:

【中文标题】谷歌表格:从网站导入德国十进制数字【英文标题】:Google sheets: import German decimal numbers from website 【发布时间】:2021-01-13 14:27:11 【问题描述】:

我正在使用IMPORThtml 将网页中的表格读入谷歌表格。事实上,我只对所述表格的单个条目感兴趣(如果有更好的方法可以随意分享^^),一个数字。

问题在于该网站是德语的,其中, 用作小数分隔符而不是.。我可以替换这个没问题,除非数量小于一个。假设号码是0,54。谷歌表格将加载它,将其识别为数字并丢弃零和逗号,只给我54。但是,54 也是一个可能的值,所以我无法知道哪个值是正确的。

有没有办法告诉谷歌将表格内容加载为字符串,或者不改变它?

将我的谷歌文档切换为德语不是一种选择,因为那时我必须在所有命令中使用;\ 和其他分隔符...

这是我用来获取值的命令,除非数字有前导零,否则它可以工作:

=VALUE(SUBSTITUTE(query(query(IMPORTHTML("https://www.boerse.de/dividenden/ATundT-Aktie/US00206R1023","table",3),"Select * OFFSET 1",0),"Select Col2 where Col1='2021'"),",","."))

已经感谢您的帮助。

编辑:添加示例 URL 并调用中断。

【问题讨论】:

【参考方案1】:

全表:

=ARRAYFORMULA(SUBSTITUTE(REGEXREPLACE(
 QUERY(ARRAY_CONSTRAIN(TO_TEXT(IMPORTDATA(A1)), 6000, 1), 
 "where Col1 matches '<td>\d.*</td>'"), QUERY(FLATTEN(QUERY(TRANSPOSE(
 QUERY(ARRAY_CONSTRAIN(TO_TEXT(IMPORTDATA(A1)), 6000, 2), 
 "where Col1 matches '<td class=.alignright.*'")),,9^9)), 
 "where Col1 contains '</td>'"), "<\/\w+>|<\w+.*?>|.$", ), " ", "."))


然后像这样查询它:

=ARRAYFORMULA(QUERY(SUBSTITUTE(REGEXREPLACE(
 QUERY(ARRAY_CONSTRAIN(TO_TEXT(IMPORTDATA(A1)), 6000, 1), 
 "where Col1 matches '<td>\d.*</td>'"), QUERY(FLATTEN(QUERY(TRANSPOSE(
 QUERY(ARRAY_CONSTRAIN(TO_TEXT(IMPORTDATA(A1)), 6000, 2), 
 "where Col1 matches '<td class=.alignright.*'")),,9^9)), 
 "where Col1 contains '</td>'"), "<\/\w+>|<\w+.*?>|.$", ), " ", "."), 
 "select Col2 where Col1 = '2021'")*1)

【讨论】:

同样的结果,不幸的是。但我了解到你可以在命令中重复多行,所以已经谢谢你了。 :) 编辑:或者你可以吗?我可以复制你的东西,它会保留在多行中,但我不能在命令字段中进行换行... 你能分享一个网址吗? 我目前用这个做测试,其他的都差不多:boerse.de/dividenden/ATundT-Aktie/US00206R1023 2021的值小于1,弄坏了我的东西…… 哦,哇,那个看起来很复杂...但它确实有效,非常感谢。 :)【参考方案2】:

我认为更简单的方法是使用“欧洲下载表”

创建一个新的电子表格,然后文件>电子表格设置并将区域设置更改为德国。然后将常规的旧 IMPORTHTML 代码放入单元格 A1:

=IMPORTHTML("https://www.boerse.de/dividenden/ATundT-Aktie/US00206R1023";"table";3)

然后回到您的“非欧洲”工作表,您可以使用如下导入范围对另一个工作表运行常规 vlookup:

=VLOOKUP(2021,IMPORTRANGE(["sheet key"],["tab name!A:B"]),2,0))

在此之前,您需要“授权”工作表之间的连接。最简单的方法是调用源工作表上的随机单元格,以便系统提示您“允许访问”。

类似:

=IMPORTRANGE(["sheet key"],["tab name!A1"])

也许您可以将其他欧洲进口产品保留在该表上,以便您需要进行任何其他欧洲刮擦。

【讨论】:

以上是关于谷歌表格:从网站导入德国十进制数字的主要内容,如果未能解决你的问题,请参考以下文章

谷歌表格查询和语言环境十进制数字

在 haskell 中,如何从十进制数中生成二进制数字?

如何将二进制表示的数字转换为雪花数

编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示

使用kettle工具时,将excel表格中的数据导入到oracle数据库时,输出项出错。

Javascript - 用小数替换整数[重复]