【发布时间】:2020-12-20 08:22:40
【问题描述】:
我正在使用 Google 表格从雅虎财经的表格中抓取股票数据。例如,要获取一家公司的市盈率,很简单:
=INDEX(IMPORTHTML("https://finance.yahoo.com/quote/DELL","table", 2),3,2)
但是,我在获取收益日期时遇到了奇怪的行为。雅虎财经以两种可能的格式列出它们:如“2021 年 2 月 25 日”或“2021 年 1 月 28 日 - 2021 年 2 月 1 日”
在第一种情况下,只需像上面一样抓取单元格值:
=INDEX(IMPORTHTML("https://finance.yahoo.com/quote/DELL","table", 2),5,2)
在第二个中,获取单元格值然后解析出第一位:
=LEFT(INDEX(IMPORTHTML("https://finance.yahoo.com/quote/KO","table", 2),5,2),12)
现在的问题是:它与处理数据的方式不一致。在第一种情况下,它识别出字符串“看起来像”一个日期,并直接将其作为实际日期返回 - 就好像调用被包裹在 DATEVALUE() 中一样,但显然不是。在后一种情况下,它以字符串形式返回,因此您需要将其显式包装在 DATEVALUE() 中。
为什么它的行为不一致,将第一个字符串作为日期返回,而将第二个字符串作为字符串返回?这使得很难有一个公式可以同时处理这两种情况,因为如果您将已经是日期的东西传递给DATEVALUE()(即第一种情况),它就会中断。
【问题讨论】:
标签: date google-sheets google-sheets-formula