Excelの数式で二重引用符を含む文字列を作成するにはどうすればよいですか?


312

Excelの数式で次の文字列を作成するにはどうすればよいですか。

モーリス「ロケット」リチャード

一重引用符を使用している場合、それは取るに足らない=です"Maurice 'The Rocket' Richard"が、二重引用符はどうですか?

回答:


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、Street Address、City、State Zip」
jamesnotjim

21

3つの二重引用符:" " " x " " "= "x"Excelは自動的に1つの二重引用符に変更されます。例えば:

=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 '29

4

chr(34)コードを使用:

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

結果:

    Hi there, "joe"


1

空または長さ0の文字列(例:)を返し""てセルを空白に表示することは、ワークシートの数式では一般的な方法ですが、VBAのRange.FormulaまたはRange.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"

2番目の方法は、vbaを使用してセルに文字列を書き込み、結果として次の値になります。

 THEFORMULAFUNCTION "STUFF"

Excelの結果/数式

1)= "THEFORMULAFUNCTION"&(CHAR(34)& "STUFF"&CHAR(34))

2)数式機能「スタッフ」



0

「Excel数式で次の文字列を作成するにはどうすればよいですか: "Maurice" The Rocket "Richard" "」の方が、「Excel数式で二重引用符を含む文字列を作成する方法?」よりも、別の方法があります。 2つの単一引用符:

SO216616の例

左側はExcelワークシートから切り取られたCalibriで、右側はVBAウィンドウから切り取られたものです。@YonahWで言及されているようにエスケープすると私の見解では、2つのシングルクォートは2つの2つのダブルを入力するだけであり、その違いは、追加のキーストロークなしでVBAで合理的に明らかである一方で、スプレッドシートでは目立たない可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.