北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

WEBSERVICE + FILTERXML 组合函数,轻松抓取网络数据

在日常工作中,我们经常需要从网络上获取数据,比如最新的货币汇率、产品价格或者天气信息。大多数时候,我们可能会手动复制粘贴,这种方式不仅效率低下,而且容易出错。其实,Excel 内置了两个强大的函数——WEBSERVICE 和 FILTERXML,它们组合起来可以变身为一个自动化网络数据抓取工具。

下面,我们就来分解这个过程,看看如何让 Excel 自动帮我们完成数据的获取和整理。

第一步:认识“渔夫”函数 — WEBSERVICE

我们可以把 WEBSERVICE 函数想象成一个勤劳的“渔夫”,它的任务就是根据你给定的网址,去网络这个“大海”里,把那一整网原始数据给捞回来。

函数语法: =WEBSERVICE(url)

  • url: 你需要获取数据的网络服务地址。

当你使用这个函数后,它通常会返回一大段看起来像代码的文本。这种文本最常见的格式就是 XML(可扩展标记语言)。它虽然包含了我们想要的数据,但杂乱无章,无法直接用于计算或分析。

例如,我们访问一个提供汇率的(虚构)网址,WEBSERVICE 可能会在一个单元格里返回如下内容:

XML

<rates>
    <currency name="USD">
        <rate>6.85</rate>
    </currency>
    <currency name="EUR">
        <rate>7.89</rate>
    </currency>
    <currency name="JPY">
        <rate>0.06</rate>
    </currency>
</rates>

现在,我们就需要第二个函数来处理这一网“渔获”。

第二步:认识“分拣员”函数 — FILTERXML

FILTERXML 函数就像一个专业的“分拣员”,它的任务是从 WEBSERVICE 捞回来的那一大段 XML 数据中,精确地挑出我们想要的那一个具体信息。

函数语法: =FILTERXML(xml_data, xpath_query)

  • xml_data: WEBSERVICE 函数返回的 XML 数据。
  • xpath_query: 一种特殊的“路径语言”,用来告诉 Excel 我们要的数据具体存放在哪个位置。你可以把它理解成一个家庭住址,能精准定位到某个数据。

强强联合:组合使用与实例

现在,我们把“渔夫”和“分拣员”组合起来,实现全自动的数据抓取。

假设我们的目标是获取上述 XML 数据中美元(USD)的汇率。

  1. 捞数据:WEBSERVICE("你的网址") 会返回上面那一整段 XML。
  2. 挑数据:我们需要编写一条 XPath 路径来定位美元的汇率。路径如下: "/rates/currency[@name='USD']/rate"
  3. /rates/currency:表示从顶层的 rates 标签往下找到 currency 标签。
  4. [@name='USD']:这是一个筛选条件,表示只选择那个 name 属性为 "USD" 的 currency 标签。
  5. /rate:最后,从选中的标签里,获取 rate 标签中的内容。

将两者嵌套在一起,最终的公式就是: =FILTERXML(WEBSERVICE("你的网址"), "/rates/currency[@name='USD']/rate")

把这个公式输入到任意单元格并回车,你就会直接得到干净的数值:6.85。

举一反三 如果我们想获取日元(JPY)的汇率呢?非常简单,只需要修改 XPath 路径中的筛选条件即可: =FILTERXML(WEBSERVICE("你的网址"), "/rates/currency[@name='JPY']/rate") 这个公式就会准确地返回 0.06。

总结

通过 WEBSERVICE + FILTERXML 的组合,我们可以将许多手动的网页数据查询工作自动化,让你的 Excel 表格“活”起来,随时与网络数据保持同步。下次再遇到需要从网上扒数据的工作时,不妨试试这个强大的组合拳吧!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言