Wie erstelle ich Zeichenfolgen mit doppelten Anführungszeichen in Excel-Formeln?


312

Wie kann ich die folgende Zeichenfolge in einer Excel-Formel erstellen:

Maurice "The Rocket" Richard

Wenn ich einfache Anführungszeichen verwende, ist das trivial = "Maurice 'The Rocket' Richard"aber was ist mit doppelten Anführungszeichen?

Antworten:


468

Haben Sie versucht, mit einem doppelten Anführungszeichen zu fliehen?

= "Maurice ""The Rocket"" Richard"

159

Alternativ können Sie die CHARFunktion verwenden:

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

5
Dies funktioniert für mich konsequenter als ""Vielleicht liegt es nur daran, dass ich Mac Excel 2011 habe
Ivan

5
@Ivanoats: Nein, es ist keine Mac-Sache (hier mit Windows) - das funktioniert konsistenter; In meinem Fall &funktionierte die Verkettung mit einem doppelten Anführungszeichen kurz vor oder kurz nach dem kaufmännischen Und nicht mit der Methode des doppelten doppelten Anführungszeichens.
Amos M. Carpenter

Funktioniert für mich konsistenter, da ich häufig Anführungszeichen um eine komplizierte Zeichenfolge setzen muss, die aus mehreren verketteten Feldern mit eingestreuter Interpunktion besteht. In meinem letzten Fall, um so etwas zu finden: "NameOfLocation, Adresse, Stadt, Postleitzahl"
jamesnotjim

21

Drei doppelte Anführungszeichen: " " " x " " "= "x"Excel ändert sich automatisch in ein doppeltes Anführungszeichen. z.B:

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

= "x" hi


1
Wenn dies wahr wäre, dann erläutern Sie bitte das Ergebnis von = verketten ("a" "" b "). Nach Ihrer Beobachtung wäre das Ergebnis a" b. Das ist nicht der Fall. Tatsächlich wird dieser Ausdruck von Excel nicht einmal akzeptiert.
Whaefelinger

1
Sie haben das Komma vergessen
KiwiSteve

1
Die äußeren Anführungszeichen in Ihrem Beispiel beginnen und beenden die Zeichenfolge. "" erstellt ein Anführungszeichen, nicht "".
Ben I.

7

Ich benutze dafür eine Funktion (wenn die Arbeitsmappe bereits VBA hat).

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

Dies ist aus Sue Moshers Buch "Microsoft Outlook Programming". Dann wäre Ihre Formel:

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

Dies ähnelt dem, was Dave DuPlantis gepostet hat.


6

Für den Fall, dass Sie dies mit JSON tun müssen:

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

1
Danke dir! Das hat mir total geholfen! Ich hatte Probleme, ein JSON-Array in meinen Zellen richtig zu formatieren.
Brian C

1
Danke, genau das, was ich brauchte :)
JimiSweden

4

Verwenden Sie chr (34) Code:

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

Ergebnis:

    Hi there, "joe"

1

Funktioniert dies für die Verwendung von Makros, .Formula = "=THEFORMULAFUNCTION("STUFF")" so wäre es wie: Funktioniert dies für die Verwendung von Makros?.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"


1
Ich weiß nicht, ob diese spezielle Syntax in VBA verfügbar ist. Versuche es.
Allain Lalonde


1

Das Zurückgeben einer leeren Zeichenfolge oder einer Zeichenfolge mit der Länge Null (z. B. ""), um eine Zelle leer erscheinen zu lassen, ist in einer Arbeitsblattformel üblich. Diese Option wird jedoch neu erstellt, wenn die Formel über Range.Formula oder Range.FormulaR1C1 eingefügt wird Eigenschaft in VBA ist jedoch aufgrund der unhandlich Notwendigkeit, die doppelten Anführungszeichen innerhalb einer Zeichenfolge in Anführungszeichen zu verdoppeln.

Die native TEXT-Funktion des Arbeitsblatts kann das gleiche Ergebnis erzielen, ohne Anführungszeichen zu verwenden.

'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

Meines Erachtens reinigt die Verwendung TEXT(,)anstelle von ""sogar eine einfache Formel wie die oben beschriebene. Die Vorteile werden immer bedeutender, wenn sie in komplizierteren Formeln wie dem Anhängen einer leeren Zeichenfolge an einen VLOOKUP verwendet werden , um zu vermeiden, dass eine Null an die Zelle zurückgegeben wird, wenn eine Suche zu einem Leerzeichen führt, oder wenn bei Nichtübereinstimmung mit IFERROR eine leere Zeichenfolge zurückgegeben wird .

'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(,))"

Mit TEXT(,)Ersetzen der alten ""Methode einen leeren String liefert, könnte man einen Abakus zu stoppen erhalten , um festzustellen , ob Sie die richtige Anzahl von Anführungszeichen in einem Formel - String haben.


1

Verketten "als ceparate Zelle:

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

D1 displays "text"

0

VBA-Funktion

1) .Formula = "=" "THEFORMULAFUNCTION" "& ​​(CHAR (34) &" "STUFF" "& CHAR (34))"

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

Die erste Methode verwendet vba, um eine Formel in eine Zelle zu schreiben, die den berechneten Wert ergibt:

 THEFORMULAFUNCTION "STUFF"

Die zweite Methode verwendet vba, um eine Zeichenfolge in eine Zelle zu schreiben, die den Wert ergibt:

 THEFORMULAFUNCTION "STUFF"

Excel Ergebnis / Formel

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

2) THEFORMULAFUNCTION "STUFF"



0

Es gibt einen anderen Weg, allerdings mehr für "Wie kann ich die folgende Zeichenfolge in einer Excel-Formel erstellen:" Maurice "The Rocket" Richard "" als für "Wie erstelle ich Zeichenfolgen mit doppelten Anführungszeichen in Excel-Formeln?", Der einfach zu verwenden ist zwei einfache Anführungszeichen:

SO216616 Beispiel

Links ist Calibri aus einem Excel-Arbeitsblatt und rechts ein Ausschnitt aus einem VBA-Fenster. Meiner Ansicht nach gewinnt das Entkommen, wie von @YonahW erwähnt, "zweifellos", aber zwei einfache Anführungszeichen sind nicht mehr als zwei doppelte Anführungszeichen, und der Unterschied ist in VBA ohne zusätzliche Tastenanschläge einigermaßen offensichtlich, während er möglicherweise in einer Tabelle nicht erkennbar ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.