Tutorial/Excel 快速入门

如何用 Power Query 在 Excel 中获取汇率

把一段 M 查询粘贴到 Excel,得到一张可刷新的汇率表。Mac 和 Windows 都能用,也不需要安装插件。

ERexchangerate.dev·Jun 29, 2026·5 min

如果工作簿里需要汇率,Power Query 比 WEBSERVICE() 更合适。下面的查询会调用 /v1/latest/USD,把 JSON 转成两列表格。打开文件或点击全部刷新时即可重新取数,不必让旧汇率一直留在单元格里。

Key points
Power Query M 内置于 Mac 和 Windows 版 Excel。
一次 /v1/latest/{base} 调用可以返回多种汇率。
RelativePath 拆分主机和路径,计划刷新更稳定。
密钥放在 Authorization 请求头中。
汇率仅供模型、分析和展示使用,不能用于结算。

创建免费 API 密钥

exchangerate.dev/signup 注册。确认邮箱后,复制以 exr_live_ 开头的密钥。免费层级每月包含 10,000 次调用。

打开 Power Query 高级编辑器

在 Excel 中依次选择数据 → 获取数据 → 启动 Power Query 编辑器。新建空白查询,然后打开视图 → 高级编辑器

粘贴 M 查询

替换示例密钥,点击完成,并把查询命名为 FxRatesRelativePath 不能省略,否则 Microsoft 365 的计划刷新可能把它视为动态数据源。

Power Query · Advanced Editorcopy
// excel: Power Query M query "FxRates"
// curl-equivalent: https://api.exchangerate.dev/v1/latest/USD
// Replace ApiKey with your exchangerate.dev key from /signup
let
    ApiKey = "exr_live_replace_with_your_key_here",
    Base = "USD",
    Source = Json.Document(
        Web.Contents(
            "https://api.exchangerate.dev",
            [
                RelativePath = "v1/latest/" & Base,
                Headers = [#"Authorization" = "Bearer " & ApiKey]
            ]
        )
    ),
    Rates = Record.ToTable(Source[rates]),
    Renamed = Table.RenameColumns(Rates, {{"Name", "currency"}, {"Value", "rate"}})
in
    Renamed

把表格载入工作表

点击关闭并加载。首次连接时,Excel 会询问 https://api.exchangerate.dev 的凭据类型,请选择匿名,因为查询已经通过请求头发送密钥。

更换基准货币或筛选币种

修改 Base 可以重新定基准。若只需要少量币种,请在 Query 中加入 symbols,一次请求即可返回所需结果。

Power Query · variantscopy
// Re-base every rate to the euro
Base = "EUR"

// Return only the quote currencies you need (one call, fewer rows)
RelativePath = "v1/latest/USD",
Query = [symbols = "EUR,GBP,JPY"]

// One pair, rate calculated for you
RelativePath = "v1/convert/USD/JPY/1"   // read Source[rate]
让 AI 助手帮你改查询?
把 endpoint、Authorization 请求头和 RelativePath 要求说清楚,再对照本页代码检查字段名。不要把真实密钥粘贴进聊天窗口。

刷新时不要浪费调用次数

打开工作簿、点击全部刷新或在查询属性中设置间隔都可以更新。多个币种应放在同一次请求中,不要为每个币种创建一条查询。

  • Power Query M 内置于 Mac 和 Windows 版 Excel。
  • 一次 /v1/latest/{base} 调用可以返回多种汇率。
  • RelativePath 拆分主机和路径,计划刷新更稳定。
  • 密钥放在 Authorization 请求头中。
  • 汇率仅供模型、分析和展示使用,不能用于结算。
代码现象检查
401未授权重新粘贴 API 密钥,并清除旧的数据源凭据。
429请求过多降低刷新频率,避免多个查询同时启动。
这是参考汇率
适合财务模型、看板、分析和展示,不是可成交报价,也不能用于结算。
ER
exchangerate.dev
面向开发者的集成指南。

Keep reading

TutorialLive exchange rates in Google SheetsRead TutorialCurrency conversion in JavaScript and Node.jsRead TutorialHow to get exchange rates in PythonRead
更多比较Fixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
学习Reading source and market_session in your pipelineIndicative vs executable FX rates: what a rates API actually gives youECB reference rates, explained
实时汇率EUR/USDGBP/USDUSD/JPY