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?
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:
In alternativa, è possibile utilizzare la CHAR
funzione:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
con una virgoletta doppia prima o subito dopo la e commerciale non funzionava usando il metodo della doppia virgoletta.
Tre virgolette doppie: " " " x " " "
= "x"
Excel passerà automaticamente a una virgoletta doppia. per esempio:
=CONCATENATE("""x"""," hi")
= "x" ciao
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 .
Nel caso in cui sia necessario eseguire questa operazione con JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
funzionerà per le macro usando .Formula = "=THEFORMULAFUNCTION("STUFF")"
così sarebbe come: funzionerà per le macro usando.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
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.
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"
="Maurice "&"""TheRocker"""&" Richard"
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:
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.
""
forse è solo perché ho Mac Excel 2011