web-dev-qa-db-ja.com

Excelの数式で二重引用符を含む文字列を作成する方法

Excelの数式で次の文字列を構成する方法を教えてください。

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

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

283
Allain Lalonde

二重引用符でエスケープしてみましたか?

= "Maurice ""The Rocket"" Richard"
438
YonahW

あるいは、CHAR関数を使用することができます。

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
143
Dave DuPlantis

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

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

= "x"こんにちは

21
Adel

私はこのための機能を使用します(ワークブックにすでにVBAがある場合)。

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

これはSue Mosherの本 "Microsoft Outlook Programming"からのものです。それからあなたの式は次のようになります。

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

これは、 Dave DuPlantis が投稿したものと似ています。

7
JimmyPena

あなたがJSONでこれをする必要がある場合には:

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

Chr(34)コードを使用します。Joe = "こんにちは"、&Chr(34)& "Joe"&Chr(34)ActiveCell.Value = Joe

結果:こんにちは、 "joe"

4
Dave

セルを空白に見せるために空または長さゼロの文字列(""など)を返すことはワークシートの数式では一般的な方法ですが、 Range.Formula または VBAの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
user4039065

"を別のセルとして連結します。

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

D1 displays "text"
1
Zon

これは.Formula = "=THEFORMULAFUNCTION("STUFF")"を使用するマクロに対して機能するので、次のようになります。これは.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"を使用するマクロに対して機能します。

1
eric
="Maurice "&"""TheRocker"""&" Richard"

VBA機能

1).Formula = "=" "式関数" "&(CHAR(34)&" "STUFF" "&CHAR(34))"

2).Formula = "THEFORMULAFUNCTION" "STUFF" ""

最初の方法では、vbaを使用してセルに数式を書き込み、その結果、計算値が得られます。

 THEFORMULAFUNCTION "STUFF"

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

 THEFORMULAFUNCTION "STUFF"

エクセル結果/計算式

1)= "定理関数"&(CHAR(34)& "STUFF"&CHAR(34))

2)定理関数 "STUFF"

0
Sam

「Excelの数式で次の文字列を作成するにはどうすればよいですか。」「Maurice」の「Rocket」「Richard」の「Excelの数式で二重引用符を含む文字列を作成する方法」より二重引用符:

SO216616 example

左側にはExcelワークシートから、そして右側にはVBAウィンドウからの断片が表示されています。私の見解では@YonahWで述べられているようにエスケープすることは 'ハンズダウン'に勝ちますが、2つのシングルクォートは2つのダブルクォース以上のタイプではなく.

0
pnuts