【问题标题】:XLSXWriter: Formula with =CONCAT() Shows in Excel as "=@CONCAT()"?XLSXWriter:=CONCAT() 的公式在 Excel 中显示为“=@CONCAT()”?
【发布时间】:2020-08-12 06:18:12
【问题描述】:

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

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

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

=@CONCAT(A1, B1)

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

我该如何纠正这个问题?

【问题讨论】:

    标签: excel-formula xlsxwriter


    【解决方案1】:

    问题在于 CONCAT() 函数是一个所谓的 Future 函数,它被添加到最新版本的 Excel 中(请参阅 XlsxWriter 文档的 Formulas added in Excel 2010 and later 部分)。

    你需要这样写公式:

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

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

    【讨论】:

    • 这也非常有用。在我正在构建的实际工作簿中,我在大量 Excel 单元格上运行 CONCAT,因此 CONCAT 非常完美。
    • =Concat(A1,B1) 是数组公式???我不这么认为。 support.microsoft.com/en-us/office/…
    • @teylyn,你是对的。这不是数组公式。我已经修改了答案。
    【解决方案2】:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 2023-03-07
      • 2022-01-05
      • 2021-06-12
      • 1970-01-01
      • 2021-11-01
      • 2018-11-12
      相关资源
      最近更新 更多