Come creare stringhe contenenti virgolette doppie nelle formule di Excel?


312

Come posso costruire la seguente stringa in una formula di Excel:

Maurice "The Rocket" Richard

Se sto usando virgolette singole, è banale = "Maurice 'The Rocket' Richard"ma per quanto riguarda le virgolette doppie?

Risposte:


468

Hai provato a scappare con una doppia citazione?

= "Maurice ""The Rocket"" Richard"

159

In alternativa, è possibile utilizzare la CHARfunzione:

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

5
Questo funziona in modo più coerente per me che ""forse è solo perché ho Mac Excel 2011
Ivan

5
@Ivanoats: No, non è una cosa che Mac (utilizzando Windows qui) - questo fa il lavoro in modo più coerente; nel mio caso, concatenare l'utilizzo &con una virgoletta doppia prima o subito dopo la e commerciale non funzionava usando il metodo della doppia virgoletta.
Amos M. Carpenter,

Funziona in modo più coerente per me, poiché spesso ho bisogno di racchiudere le virgolette attorno a una stringa complicata costituita da più campi concatenati con punteggiatura intervallata. Nel mio caso più recente, per trovare qualcosa del genere: "NameOfLocation, indirizzo, città, CAP di stato"
jamesnotjim,

21

Tre virgolette doppie: " " " x " " "= "x"Excel passerà automaticamente a una virgoletta doppia. per esempio:

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

= "x" ciao


1
Se questo fosse vero, si prega di approfondire l'esito di = concatenato ("a" "" b "). Secondo la tua osservazione, il risultato sarebbe a" b. Questo non è il caso. In realtà questa espressione non sarà nemmeno accettata da Excel.
whaefelinger,

1
hai dimenticato la virgola
KiwiSteve,

1
Le virgolette esterne nel tuo esempio stanno solo iniziando e terminando la stringa. "" crea un carattere di citazione, non "" ".
Ben I.

7

Uso una funzione per questo (se la cartella di lavoro ha già VBA).

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

Questo è tratto dal libro di Sue Mosher "Programmazione di Microsoft Outlook". Quindi la tua formula sarebbe:

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

Questo è simile a quello pubblicato da Dave DuPlantis .


6

Nel caso in cui sia necessario eseguire questa operazione con JSON:

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

1
Grazie! Questo mi ha aiutato totalmente! Stavo lottando per formattare correttamente un array JSON nelle mie celle.
Brian C,

1
Grazie, proprio quello di cui avevo bisogno :)
JimiSweden il

4

Usa il codice chr (34):

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

Risultato:

    Hi there, "joe"


1

Restituire una stringa vuota o di lunghezza zero (ad es. "") Per far apparire vuota una cella è una pratica comune in una formula del foglio di lavoro, ma ricreare tale opzione quando si inserisce la formula tramite la proprietà Range.Formula o Range.FormulaR1C1 in VBA è ingombrante a causa della necessità di raddoppiare i caratteri tra virgolette all'interno di una stringa tra virgolette.

La funzione TEXT nativa del foglio di lavoro può produrre lo stesso risultato senza usare le virgolette.

'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

Ai miei occhi, usare TEXT(,)al posto di ""pulisce anche una formula semplice come quella sopra. I vantaggi diventano sempre più significativi se utilizzati in formule più complicate come la pratica di aggiungere una stringa vuota a un VLOOKUP per evitare di restituire uno zero alla cella quando una ricerca risulta vuota o restituire una stringa vuota in caso di non corrispondenza con 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(,))"

Con la TEXT(,)sostituzione del vecchio ""metodo di consegna di una stringa vuota, potresti smettere di usare un abaco per determinare se hai il giusto numero di caratteri di citazione in una stringa di formula.


1

Concatenare "come cellula cefalea:

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

D1 displays "text"

0

Funzione VBA

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

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

Il primo metodo utilizza vba per scrivere una formula in una cella che risulta nel valore calcolato:

 THEFORMULAFUNCTION "STUFF"

Il secondo metodo utilizza vba per scrivere una stringa in una cella che risulta nel valore:

 THEFORMULAFUNCTION "STUFF"

Risultato / formula di Excel

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

2) THEFORMULAFUNCTION "STUFF"



0

Esiste un altro modo, sebbene più per "Come posso costruire la seguente stringa in una formula di Excel:" Maurice "The Rocket" Richard "" rispetto a "Come creare stringhe che contengono virgolette doppie nelle formule di Excel?", Che è semplicemente da usare due virgolette singole:

Esempio SO216616

A sinistra è Calibri ritagliato da un foglio di lavoro di Excel e a destra uno scatto da una finestra VBA. A mio avviso, la fuga come menzionato da @YonahW vince "a mani basse", ma due virgolette singole non sono più digitanti di due doppie e la differenza è ragionevolmente evidente in VBA senza tasti aggiuntivi mentre, potenzialmente, non si nota in un foglio di calcolo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.