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

使用openpyxl插入含中间数组计算的Excel公式遇问题求助

Python插入含数组计算的Excel公式问题及解决

问题背景

我编写了一个Python脚本,用于清空工作表表格的所有内容,然后在表格单元格中插入一个需要执行多个中间数组计算的Excel公式,但操作过程中遇到了诸多问题。

目标Excel公式

=IF(ISERROR(MATCH([[#This Row],[ID]],Table1[ID],0)),"NEEDS CARD",IF(ISBLANK([[#This Row],[DATE '[Ctrl+;']]]),"INPUT DATE",IF([[#This Row],[DATE '[Ctrl+;']]]>MAX(CHOOSECOLS(FILTER(HSTACK(Table1[ID],Table1[RENEWAL DATE]),Table1[ID]=[[#This Row],[ID]]),2)),"EXPIRED","VALID")))

尝试过程与问题

  • 参考相关技术帖子,尝试通过调用表格列数组解决,但出现了*#REF错误*、公式开头@运算符异常,或是Excel提示工作簿内容存在问题
  • 尝试使用array_formulae属性和ArrayFormula()命令均无效,例如以下简化代码,无论是否保留ArrayFormula(),都会导致Excel提示内容错误:
    wsmo['B2'] = ArrayFormula("B2",'=MAX(CHOOSECOLS(FILTER(HSTACK(Table1[[#Data],[WM ID]],Table1[[#Data],[RENEWAL DATE]]),Table1[[#Data],[WM ID]]=[[#This Row],[WM ID]]),2))')
    
  • 已通过拼接多段字符串处理了公式中的引号和撇号问题,也愿意尝试其他更简便的第三方包实现该功能。

问题解决(更新)

按照建议用7zip打开电子表格并检查XML,确认公式格式正确,之后仅对单个单元格应用ArrayFormula引用,问题成功解决!感谢moken和Charlie Clark!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:01:02