Excel 在我的公式末尾添加引号

Excel 在我的公式末尾添加引号

Excel 自动更正我的公式,提示“我们在您的公式中发现了一个拼写错误,并试图将其更正为:”

=CONCAT(CHAR(34),A4,""":""",D4,"""")

我原来的公式末尾只有三个引号:

=CONCAT(CHAR(34),A4,""":""",D4,""")

供您参考,我合并了 Excel 中两列的数据,结果如下所示:

"welcome":"Bienvenue!"

A4 单元格包含:welcome
D4 单元格包含:Bienvenue!

CHAR(34) 代表单元格 A4 的初始引号。

ExcelCONCAT()函数合并了来自不同 Excel 单元格的数据。

注意:这个问题与超级用户问题不同Excel 为公式结果添加引号

答案1

引号在 Excel 中具有特殊含义,因此您必须经过一些步骤才能将其用作常规字符。您可以通过将其加倍来实现这一点,但这可能会变得很复杂,具体取决于具体情况。

为了避免术语混淆,我们忽略撇号(有时称为“单引号”)。此处对“引号”或“引号”的任何引用均指带有两个刻度标记的符号。

如果你了解发生了什么,这些规则就很容易理解。

  • 引号总是需要成对出现(但不一定相邻)。
  • 双引号变为单个文本字符(引号)。
  • 文本需要放在引号中。
  • 如果双引号位于字符串中间,它只是另一个字符。
  • 如果它位于字符串的开头或结尾,则它所属的字符串必须用引号引起来(因此,开头或结尾处将出现三重引号)。
  • 如果它作为唯一的字符连接(在表达式的开头、中间或结尾),则需要将其括在引号中(因此最终会得到四重引号)。

以下是一些使用公式的示例:

在此处输入图片描述

  • 您可以看到,您正确地使用三重引号括住了冒号。可以将其视为双引号括住的冒号,并将所有内容放在引号内以分隔该文本。
  • 您再次正确使用 CHAR(34) 作为字符串的开头。您可以对最后一个字符执行相同操作。
  • 由于第一个字符和最后一个字符是连接的,因此您也可以将它们乘以四 (如D4&"""")。这就是 Excel 试图为您解决的问题。
  • 如果表达式以硬编码文本而不是单元格引用开始或结束,则可以使用三重引号(例如"""Welcome"

因此,可以使用多个引号来完成此操作,尽管如果您搞砸了,您需要诊断公式问题,您可能会感到困惑。 简单、安全的方法是使用 CHAR(34),尤其是当需要四重引号时,正如 Hannu 的回答所建议的那样(尽管我自己的偏好是将三重引号保留在冒号周围,以避免将一个文本表达式分成三部分;但这就是为什么有香草和巧克力冰淇淋的原因)。

答案2

这两个是等效的,并且都创建预期的字符串:

=CONCAT(CHAR(34),A4,CHAR(34),":",CHAR(34),D4,CHAR(34))

请注意,,函数调用内部可能需要;根据您的语言环境进行更改。

=CHAR(34) &A4 &CHAR(34) &":" &CHAR(34) &D4 &CHAR(34)

您可以在字符串中包含双引号,因为可以使用“转义”,但考虑到字符串以双引号开头和结尾,它很快就会变得丑陋且难以维护;例如="""welcome"":""Bienvenue!"""- 您需要更多引号来添加上面的单元格引用;=""""&A4&""":"""&D4&""""...很容易出错。

注意:已更新 wrt 引号转义。

答案3

我不确定这里有什么混淆:也许你试图CONCAT用双引号括住所有参数?你正在连接几个字符串,并且每一个必须符合 Excel 的规则。然后,每个字符串必须在两端用双引号分隔。因此,对于任何字符串,您都必须编写

"the_string" 

如果字符串包含双引号,则必须通过重复该双引号来“转义”,

"the""string"   

因此,在连接中的每个字符串实例中,都应遵循该规则。将第一个和最后一个字符串视为

$DELIMITER""$DELIMITER

因为 $DELIMITER 的值恰好是双引号,所以看起来很丑,但确实符合规则。

答案4

双引号在 Excel 中是特殊字符,并且需要逃避(通过输入两个双引号)。

  • =""""输出"
  • ="My name is ""James""."输出My name is "James".
  • =""""""""""""""""""""""(22 条引语) 输出""""""""""(10 条引语)

第一个和最后一个双引号是括号,中间每 2 个双引号变为 1 个双引号


那么,就这样吧。

  • 单元格 A4:welcome
  • 单元格 D4:Bienvenue!

  • 公式:="""" & A4 & """:""" & D4 & """"

  • 输出:"welcome":"Bienvenue!"

(为了便于阅读,&使用 代替CONCAT(...)连接)

相关内容