我目前正在开发一个 Python 脚本,该脚本利用 OpenPyXL 将公式写入 .xlsx 文件。我使用的具体公式涉及 TEXTJOIN 和 INDEX 函数。但是,在 Excel 中打开保存的 .xlsx 文件时,我注意到公式中的 INDEX 函数之前会自动插入一个“@”符号。这个意外的“@”符号破坏了公式,并且只有当我手动删除“@”符号时,公式才按预期工作。
这是我用来将公式写入 .xlsx 文件的代码片段:
formula = '=_xlfn.TEXTJOIN(" + ", TRUE, IF(INDEX(Products!$B:$G, MATCH($A2, Products!$A:$A, 0), 0)=1, Products!$B$1:$G$1, ""))'
ws.cell(row=1, column=2, value=formula)
当我在 Excel 中打开保存的 .xlsx 文件时,公式如下所示:
=TEXTJOIN(" + ", TRUE, IF(@INDEX(Products!$B:$G,
MATCH($A2, Products!$A:$A, 0), 0)=1, Products!$B$1:$G$1, ""))
如您所见,“@”符号导致公式中的 INDEX 函数出现问题。
我已经在 TEXTJOIN 函数中添加了“_xlfn”前缀以确保其正常工作,但我无法弄清楚为什么在 INDEX 函数之前插入“@”符号。有人可以解释为什么会发生这种情况,并提出一个解决方案来防止将“@”符号添加到公式中吗?
任何见解或帮助将不胜感激!