如何在Excel公式中创建包含双引号的字符串?


Answers:


468

您是否尝试过使用双引号进行转义?

= "Maurice ""The Rocket"" Richard"

159

另外,您可以使用以下CHAR功能:

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"

5
这对我而言比""可能更一致地工作,也许仅仅是因为我有Mac Excel 2011
Ivan

5
@Ivanoats:不,这不是Mac(在这里使用Windows)- 确实可以更一致地工作。在我的情况下,在连&字号之前或之后使用带双引号的连接不能使用双双引号方法。
Amos M. Carpenter

对我来说,工作更一致,因为我经常需要在复杂的字符串周围加上引号,这些字符串由多个串联的字段组成,并带有点缀的标点符号。在我最近的情况下,想出这样的东西:“ NameOfLocation,街道地址,城市,州邮编”
jamesnotjim 2015年

21

三个双引号:" " " x " " "= "x"Excel将自动更改为一个双引号。例如:

=CONCATENATE("""x"""," hi")  

=“ x”嗨


1
如果这是真的,那么请详细说明= concatenate(“ a”“” b“)的结果。根据您的观察,结果将是a” b。不是这种情况。实际上,Excel甚至不会接受该表达式。
whaefelinger 2015年

1
您忘记了逗号
KiwiSteve

1
您的示例中的引号只是字符串的开头和结尾。“”创建了一个引号字符,而不是“””
本·I.

7

为此,我使用了一个功能(如果工作簿已经具有VBA)。

Function Quote(inputText As String) As String
  Quote = Chr(34) & inputText & Chr(34)
End Function

这来自Sue Mosher的书“ Microsoft Outlook编程”。那么您的公式将是:

="Maurice "&Quote("Rocket")&" Richard"

这类似于Dave DuPlantis发布的内容。


6

如果您需要使用JSON进行此操作:

=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")

1
谢谢!这完全帮助了我!我正在努力在自己的单元格中正确格式化JSON数组。
Brian C

1
谢谢,正是我所需要的:)
JimiSweden's

4

使用chr(34)代码:

    Joe = "Hi there, " & Chr(34) & "Joe" & Chr(34)
    ActiveCell.Value = Joe

结果:

    Hi there, "joe"


1

返回空的或零长度的字符串(例如"")以使单元格显示为空白是工作表公式中的常见做法,但是通过VBA中的Range.FormulaRange.FormulaR1C1属性插入公式时,重新创建该选项不方便必须在引号中将双引号字符加倍。

工作表的本机TEXT函数无需使用引号即可产生相同的结果。

'formula to insert into C1 - =IF(A1<>"", B1, "")
range("C1").formula = "=IF(A1<>"""", B1, """")"         '<~quote chars doubled up
range("C1").formula = "=IF(A1<>TEXT(,), B1, TEXT(,))"   '<~with TEXT(,) instead

在我看来,使用TEXT(,)替代方法""甚至可以清除上述简单公式。当在更复杂的公式中使用时,好处变得越来越显着,例如将空字符串附加到VLOOKUP以避免在查找结果为空时返回零​​到单元格或在与IFERROR不匹配时返回空字符串的做法。

'formula to insert into D1 - =IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"", "")
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"""", """")"
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&TEXT(,), TEXT(,))"

通过TEXT(,)替换""传递空字符串的旧方法,您可能会停止使用算盘来确定公式字符串中的引号字符数是否正确。


1

连接"为一个单独的单元格:

    A |   B   | C | D
1   " | text  | " | =CONCATENATE(A1; B1; C1);

D1 displays "text"

0

VBA功能

1).Formula =“ =”“ THEFORMULAFUNCTION”“&(CHAR(34)&”“ STUFF”“&CHAR(34))”

2).Formula =“ THEFORMULAFUNCTION”“ STUFF”“”“

第一种方法使用vba在单元格中写入公式,该公式将得出计算值:

 THEFORMULAFUNCTION "STUFF"

第二种方法使用vba在单元格中写入一个字符串,该字符串产生以下值:

 THEFORMULAFUNCTION "STUFF"

Excel结果/公式

1)=“ THEFORMULAFUNCTION”&(CHAR(34)&“ STUFF”&CHAR(34))

2)形式功能“填充”



0

还有另一种方法,即“如何在Excel公式中构造以下字符串:“莫里斯·火箭”理查德”比“如何在Excel公式中创建包含双引号的字符串?”更多的方法。两个单引号:

SO216616范例

左边是Excel工作表中的Calibri,右边是VBA窗口中的片段。在我看来,@ YonahW提到的转义赢得了“ hands down”,但是两个单引号的键入最多不超过两个双打,并且在VBA中,没有额外的击键,但在电子表格中可能没有明显的区别,这种差异是相当明显的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.