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(...)
连接)