Comment créer des chaînes contenant des guillemets doubles dans des formules Excel?

Comment puis-je construire la chaîne suivante dans une formule Excel:

Maurice" La Fusée " Richard

Si j'utilise des guillemets simples, c'est trivial = "Maurice 'The Rocket' Richard" mais qu'en est-il des guillemets doubles?

277
demandé sur pnuts 2008-10-19 20:29:42

12 réponses

Avez-vous essayé de vous échapper avec une double citation?

= "Maurice ""The Rocket"" Richard"
423
répondu YonahW 2013-02-12 20:10:43

Vous pouvez également utiliser la fonction CHAR:

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
137
répondu Dave DuPlantis 2008-10-20 13:41:42

Trois guillemets doubles: " " " x " " " = "x" Excel changera automatiquement en une citation double. par exemple:

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

= "x" salut

20
répondu Adel 2015-12-17 03:07:04

J'utilise une fonction pour cela (si le classeur a déjà VBA).

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

Ceci est tiré du livre de Sue Mosher "Microsoft Outlook Programming". Alors votre formule serait:

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

Ceci est similaire à ce que Dave DuPlantis posté.

7
répondu JimmyPena 2017-05-23 12:26:20

Dans le cas où vous devez le faire avec JSON:

=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
5
répondu tandy 2014-08-13 16:46:39

Utiliser chr (34) Code: Joe = "Bonjour," & Chr(34) & "Joe" & Chr(34) ActiveCell.Valeur = Joe

Résultat: Bonjour, " joe "

3
répondu Dave 2015-07-31 13:32:36

Cela fonctionnera-t-il pour les macros utilisant .Formula = "=THEFORMULAFUNCTION("STUFF")" donc, il serait comme: cela fonctionnera-t-il pour les macros en utilisant .Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"

1
répondu eric 2012-05-26 00:13:16

Renvoyer une chaîne vide ou de longueur nulle (par exemple "") pour faire apparaître une cellule vide est une pratique courante dans une formule de feuille de calcul, mais recréer cette option lors de l'insertion de la formule dans la plage .Formule ou Plage.FormulaR1C1 propriété dans VBA est difficile à manier en raison de la nécessité d'avoir à doubler les caractères de guillemets doubles dans une chaîne entre guillemets.

La fonction Text native de la feuille de calcul {[9] } peut produire le même résultat sans utiliser citation.

'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

À mes yeux, en utilisant TEXT(,) à la place de "" nettoie même une formule simple comme celle ci-dessus. Les avantages deviennent de plus en plus importants lorsqu'ils sont utilisés dans des formules plus compliquées comme la pratique d'ajouter une chaîne vide à un VLOOKUP pour éviter de renvoyer un zéro à la cellule quand une recherche aboutit à un vide ou renvoyer une chaîne vide sur no-match avec 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(,))"

Avec TEXT(,) remplaçant l'ancienne méthode "" de distribution d'un string, vous pouvez arrêter d'utiliser un abacus pour déterminer si vous avez le bon nombre de caractères de citation dans une chaîne de formule.

1
répondu Jeeped 2016-03-23 04:41:30

Fonction VBA

1) .La formule = " = ""THEFORMULAFUNCTION ""&(CHAR (34) & ""STUFF" "& CHAR(34)) "

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

La première méthode utilise vba pour écrire une formule dans une cellule qui aboutit à la valeur calculée:

 THEFORMULAFUNCTION "STUFF"

La deuxième méthode utilise vba pour écrire une chaîne dans une cellule qui donne la valeur:

 THEFORMULAFUNCTION "STUFF"

Résultat/Formule Excel

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

2) THEFORMULAFUNCTION "STUFF"

0
répondu Sam 2013-02-13 17:58:08
="Maurice "&"""TheRocker"""&" Richard"
0
répondu Karthick Gunasekaran 2016-04-07 12:28:49

Il y a un autre moyen, bien que plus pour "Comment puis-je construire la chaîne suivante dans une formule Excel: "Maurice" La fusée "Richard "" que " comment créer des chaînes contenant des guillemets doubles dans des formules Excel? ", qui consiste simplement à utiliser deux guillemets simples:

So216616 exemple

Sur la gauche est Calibri snipped à partir d'une feuille de calcul Excel et sur la droite un snip à partir d'une fenêtre VBA. À mon avis, s'échapper comme mentionné par @YonahW gagne "haut la main", mais deux guillemets simples ne tapent plus plus de deux doubles et la différence est raisonnablement apparente dans VBA sans frappes supplémentaires alors que, potentiellement, pas perceptible dans une feuille de calcul.

0
répondu pnuts 2016-07-17 00:36:00

Concaténer " en tant que cellule céparate:

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

D1 displays "text"
0
répondu Zon 2017-05-18 09:26:45