我正试图从雅虎财务中导入当前股票价格。我使用了一些网站的公式,它部分工作。我只知道如何告诉它寻找一个特定的查询,它适用于我需要的其他一些数据点,但价格变化查询从
更改“Fw(500)Pstart(10px)Fz(24px)C($ dataRed)”
到
“Fw(500)Pstart(10px)Fz(24px)C($ dataGreen)”
取决于当天的价格是上涨还是下跌。
如何修改我在下面使用的公式,在这种情况下使用“或”运算符?因此无论股票当天是涨还是跌,它都会降低价格。谢谢!
我正在使用的公式: = IMPORTXML(“https://finance.yahoo.com/quote/IBM”,“// span [@ class ='Fw(500)Pstart(10px)Fz(24px)C($ dataRed)']”)
答案 0 :(得分:1)
我注意到其他答案对我不起作用(它们过去可能有用),因此我决定发布此解决方案。只需将代码置入 A1 单元格中,然后将以下一个或两个公式放在其他位置即可。
价格:
=IFNA(VALUE(IMPORTXML("https://finance.yahoo.com/quote/" & A1, "//*[@class=""D(ib) Mend(20px)""]/span[1]")))
更改:
=IFNA(VALUE(REGEXEXTRACT(IMPORTXML("https://finance.yahoo.com/quote/" & A1,"//*[@class=""D(ib) Mend(20px)""]/span[2]"), "^.*?\s")))
答案 1 :(得分:1)
如果您只想要价格:
=IFNA(VALUE(IMPORTXML("https://finance.yahoo.com/quote/" & $A1, "///*[@class=""D(ib) Mend(20px)""]/跨度[1]")))
答案 2 :(得分:0)
您可以使用更加动态/通用的xpath,它不需要这样的特定路径,例如:
这个包含了价格和变化:
=ARRAY_CONSTRAIN(transpose(IMPORTXML("https://finance.yahoo.com/quote/IBM:,"//*[@class='Mt(6px)']//span")),1,2)
如果您只想要价格:
=trim(IMPORTXML("https://finance.yahoo.com/quote/IBM","//*[@class='Mt(6px)']//span"))
如果您只是想要改变:
=IMPORTXML("https://finance.yahoo.com/quote/IBM","//*[@class='Mt(6px)']//span[2]")
答案 3 :(得分:0)
或者您也可以在单元格上使用条件格式,以便颜色仅由单元格的值确定。
答案 4 :(得分:0)
遗憾的是,雅虎财经经常更改其网站的 XML/HTML 结构。现在有效的是:
=IMPORTXML("https://finance.yahoo.com/quote/IBM/", "//*[@id=""quote-header-info""]/div[3]/div[1]/div/span[1]")
您可以随时打开 HTML 结构并使用开发人员工具查找和复制 X 路径。
PS1. 虽然似乎有 a bug 并且该函数无法从包含点/点/句点“.
”的 URL 中检索数据名字。
P.S.2. IMPORTHTML()
函数也无法从 Yahoo Finance 获取最新价格,因为信息既不在表格中也不在列表中。您可以尝试使用 this page 和 this page 中的脚本列出所有 table
和 list
。