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

使用Pycel编译含Sumifs的Excel公式时遇类型错误求助

问题描述

我有一个包含大量范围计算(Sumifs)的电子表格,对应的Excel公式如下:

=IF($Q13=0,0,IF(OR($D13>X$7,X$11<IF($D13=$X$3,$AI$2,$U12)),0,MAX(0,MIN($T13,$Q13-SUM($W13:W13),$S13-IF($D13>=$X$3,SUMIF($D$12:$D12,">="&$X$3,X$12:X12),SUMIF($D$12:$D12,"<"&$X$3,X$12:X12))))))

当Pycel尝试解析该范围计算时,出现以下错误:
TypeError: unsupported operand type(s) for +: 'int' and 'str'

完整回溯错误信息如下:

Traceback (most recent call last):
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelformula.py", line 923, in eval_func
    excel_formula.compiled_lambda())
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelformula.py", line 948, in <lambda>
    ### Traceback will show this line if not loaded from a text file
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelcompiler.py", line 782, in _evaluate_range
    data = tuple(
           ^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelcompiler.py", line 783, in <genexpr>
    tuple(self._evaluate(addr.address) for addr in row)
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelcompiler.py", line 783, in <genexpr>
    tuple(self._evaluate(addr.address) for addr in row)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelcompiler.py", line 809, in _evaluate
    value = self.eval(cell)
            ^^^^^^^^^^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelcompiler.py", line 172, in _eval
    return eval_ctx(
           ^^^^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelformula.py", line 934, in eval_func
    error_logger('error', f"{address}{excel_formula.python_code}",
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelformula.py", line 877, in error_logger
    raise exc(error_msg)
pycel.excelformula.FormulaEvalError: Traceback (most recent call last):
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelformula.py", line 923, in eval_func
    excel_formula.compiled_lambda())
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excelformula.py", line 948, in <lambda>
    ### Traceback will show this line if not loaded from a text file

  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excellib.py", line 333, in sumif
    return sumifs(sum_range, rng, criteria)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jtown\AppData\Local\Programs\Python\Python311\Lib\site-packages\pycel\excellib.py", line 348, in sumifs
    return sum(_numerics(
           ^^^^^^^^^^^^^^
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Eval: BS4 Schedule!X14: if_(_C_("BS4 Schedule!Q14") == 0, 0, if_(or_(_C_("BS4 Schedule!D14") > _C_("BS4 Schedule!X7"), _C_("BS4 Schedule!X11") < if_(_C_("BS4 Schedule!D14") == _C_("BS4 Schedule!X3"), _C_("BS4 Schedule!AI2"), _C_("BS4 Schedule!U13"))), 0, max_(0, min_(_C_("BS4 Schedule!T14"), _C_("BS4 Schedule!Q14") - sum_(_C_("BS4 Schedule!W14")), _C_("BS4 Schedule!S14") - if_(_C_("BS4 Schedule!D14") >= _C_("BS4 Schedule!X3"), sumif(_R_("BS4 Schedule!D12:D13"), ">=" & _C_("BS4 Schedule!X3"), _R_("BS4 Schedule!X12:X13")), sumif(_R_("BS4 Schedule!D12:D13"), "<" & _C_("BS4 Schedule!X3"), _R_("BS4 Schedule!X12:X13")))))))
Eval: BS4 Schedule!X9: sum_(_R_("BS4 Schedule!X13:X47"))
Eval: BS4 Schedule!X249: _C_("BS4 Schedule!X9")
Eval: BS4 Schedule!W250: sumproduct(_R_("BS4 Schedule!X249:EB249"), _R_("BS4 Schedule!X250:EB250"))
Eval: Sheet1!D1: _C_("BS4 Schedule!W250")

请问是否有人遇到过该错误并找到了解决方案?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:19:57