【发布时间】:2020-08-12 06:18:12
【问题描述】:
当我在 XLSXWriter 中执行以下操作时:
formula = "=CONCAT(A1, B1)"
worksheet.write_formula(1, 1, formula)
...我在我的工作簿中找到以下内容:
=@CONCAT(A1, B1)
...单元格显示#NAME 错误。
我该如何纠正这个问题?
【问题讨论】:
当我在 XLSXWriter 中执行以下操作时:
formula = "=CONCAT(A1, B1)"
worksheet.write_formula(1, 1, formula)
...我在我的工作簿中找到以下内容:
=@CONCAT(A1, B1)
...单元格显示#NAME 错误。
我该如何纠正这个问题?
【问题讨论】:
问题在于 CONCAT() 函数是一个所谓的 Future 函数,它被添加到最新版本的 Excel 中(请参阅 XlsxWriter 文档的 Formulas added in Excel 2010 and later 部分)。
你需要这样写公式:
formula = "=_xlfn.CONCAT(A1, B1)"
但是,正如@teylyn 指出的那样,在 Excel 中还有许多其他更简单且向后兼容的连接字符串的方法。您应该改用其中之一。
【讨论】:
=Concat(A1,B1) 是数组公式???我不这么认为。 support.microsoft.com/en-us/office/…
Concat() 仅适用于装有 Office 2019 或 Office 365 的 Windows 或 Mac。
任何其他版本的 Excel 都无法识别该函数,因此使用 #Name!错误。
Concat() 替换了 Concatenate() 函数。这些函数都不需要连接文本。 & 运算符通常可以更快地完成工作,即输入更少。如需更复杂,可以使用 TextJoin()(仅限 Office 365 / 2019)。
以下公式产生相同的结果。
=Concatenate(A1," - ",B1," - ",C1)
=Concat(A1," - ",B1," - ",C1)
=A1&" - "&B1&" - "&C1
=TEXTJOIN(" - ",TRUE,A1:C1)
【讨论】: