XLSXWriter:=CONCAT() 的公式在 Excel 中显示为“=@CONCAT()”?

XLSXWriter: Formula with =CONCAT() Shows in Excel as "=@CONCAT()"?

当我在 XLSXWriter 中执行以下操作时:

formula = "=CONCAT(A1, B1)"
worksheet.write_formula(1, 1, formula)

...我在工作簿中找到以下内容:

=@CONCAT(A1, B1)

...单元格显示 #NAME 错误。

我该如何纠正?

Concat() 仅适用于 Windows 或 Mac Office 2019 或 Office 365。

Excel 的任何其他版本都无法识别该函数,因此 #Name!错误。

Concat() 替换了 Concatenate() 函数。这些函数都不需要连接文本。 & 运算符通常可以更快地完成工作,即输入更少。为了更复杂,可以使用 TextJoin()(仅限 Office 365 / 2019)。

以下公式产生相同的结果。

=Concatenate(A1," - ",B1," - ",C1)
=Concat(A1," - ",B1," - ",C1)
=A1&" - "&B1&" - "&C1
=TEXTJOIN(" - ",TRUE,A1:C1)

问题是 CONCAT() 函数是 so-called 未来函数,已添加到 Excel 的较新版本中(请参阅 XlsxWriter 的 Formulas added in Excel 2010 and later 部分文档)。

你需要这样写公式:

formula = "=_xlfn.CONCAT(A1, B1)"

然而,正如@teylyn 指出的那样,在 Excel 中还有许多其他更简单且向后兼容的字符串连接方式。您应该改用其中之一。