You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel Power Query传递表至函数报错:无法将Table转为Function

问题解决:Power Query类型转换错误(Table转Function)

错误原因

你调用fxRetry(Insider([Value]))时,Insider([Value])会直接执行并返回Table类型的结果,但fxRetry函数要求传入的参数是Function类型,因此触发类型转换错误。

修改步骤

1. 修正fxRetry的调用代码

将直接执行的Insider([Value])包装成一个无参函数,这样传给fxRetry的是函数对象,而非执行后的表:

#"Added Custom" = Table.AddColumn(#"Renamed Columns", "Custom", each fxRetry(() => Insider([Value]))),

2. 优化fxRetry函数逻辑

原函数中用Binary.Buffer处理Table是错误的(Binary.Buffer仅适用于二进制数据),直接通过try捕获函数执行结果即可:

let
    Source = (MyCall as function) =>
    let
        CallResult = try MyCall(),
        Output = if CallResult[HasError] = false then 
            CallResult[Value] 
        else 
            Function.InvokeAfter(() => @fxRetry(MyCall), #duration(0,0,0,5))
    in 
        Output
in
Source

逻辑说明

  • 包装后的() => Insider([Value])是一个延迟执行的函数,fxRetry调用时会先执行这个函数,再判断是否需要重试。
  • try MyCall()会返回包含HasError和Value的记录,通过判断HasError值决定直接返回结果还是延迟5秒后递归重试。

内容的提问来源于stack exchange,提问作者Kiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:45:38