Excel ajoute des guillemets à la fin de ma formule

2

Excel corrige automatiquement ma formule en disant "Nous avons trouvé une faute de frappe dans votre formule et nous avons tenté de la corriger:"

=CONCAT(CHAR(34),A4,""":""",D4,"""")

Ma formule d'origine ne comporte que trois guillemets à la fin:

=CONCAT(CHAR(34),A4,""":""",D4,""")

Pour votre information, je combine les données de deux colonnes dans Excel et le résultat doit ressembler à ceci:

"welcome":"Bienvenue!"

La cellule A4 contient: welcome
La cellule D4 contient: Bienvenue!

CHAR (34) représente le guillemet initial pour la cellule A4.

L'Excel CONCAT() Cette fonction combine les données de différentes cellules Ms Excel.

Remarque: cette question n'est pas similaire à la question du superutilisateur. Excel ajoute des guillemets au résultat de ma formule

Gabriel
la source
2
Salut Gabriel, bienvenue au super-utilisateur. Vous avez déjà posté une sortie à votre problème vous-même. Au lieu d'utiliser "" ", vous pouvez simplement utiliser:, CHAR (34) qui donne un guillemet double. Vous devrez utiliser plus de virgules, mais c'est la solution la plus simple que je vois.
Michthan
@Michthan ou tout simplement suivre les règles de délimiteur Excel - voir ma réponse.
Carl Witthoft
1
Excel corrige votre formule incorrecte. Vous devriez être heureux à ce sujet. """ n'est pas une chaîne valide, alors que """" est ok
edc65
D'après les réponses de Hannu, Michhan et Fix1234, je pense que j'utiliserai cette formule = CONCAT (CHAR (34), A4, "": "" ", D4, CHAR (34),", "), car c'est la plus simple. expliquer au reste de l'équipe impliquée dans ce projet, qui peut être n'importe qui des traducteurs, des programmeurs et du personnel de PM / admin. Mais n'hésitez pas à commenter, merci.
Gabriel

Réponses:

14

Les guillemets ont une signification particulière dans Excel. Vous devez donc parcourir certaines étapes pour les utiliser comme des caractères normaux. Vous pouvez le faire en les doublant, mais cela peut devenir compliqué, selon la situation.

Pour éviter toute confusion terminologique, ignorons les apostrophes (parfois appelés "guillemets simples"). Toute référence ici à "citation" ou "guillemet" fait référence au symbole avec deux graduations.

Les règles sont compréhensibles si vous reconnaissez ce qui se passe.

  • Les guillemets doivent toujours être en paires (mais pas nécessairement adjacents).
  • Une citation doublée devient un caractère de texte unique (un guillemet).
  • Le texte doit être entre guillemets.
  • Si la citation doublée est au milieu d'une chaîne, il ne s'agit que d'un autre caractère.
  • Si c'est au début ou à la fin d'une chaîne, la chaîne dont elle fait partie doit être placée entre guillemets (vous obtiendrez donc des guillemets triples au début ou à la fin).
  • S'il est concaténé en tant que caractère unique (au début, au milieu ou à la fin d'une expression), il doit être placé entre guillemets (vous obtenez donc des guillemets quadruples).

Voici quelques exemples utilisant votre formule:

enter image description here

  • Vous pouvez voir que vous avez bien compris en utilisant des guillemets triples autour du colon. Pensez à cela comme le côlon entouré de guillemets doubles et tout ce qui est à l'intérieur de guillemets pour délimiter ce texte.
  • Vous avez encore raison avec CHAR (34) pour commencer la chaîne. Vous pouvez faire la même chose pour le dernier caractère.
  • Comme les premier et dernier caractères sont concaténés, vous pouvez également les quadrupler D4&"""" ). C'est ce que Excel a essayé de réparer pour vous.
  • Si l'expression avait commencé ou s'était terminée par un texte codé en dur au lieu d'une référence de cellule, vous pourriez utiliser des guillemets triplés (comme """Welcome" )

Cela peut donc être fait en utilisant plusieurs guillemets, même si vous pouvez regarder de travers si vous avez besoin de diagnostiquer des problèmes de formule si vous vous trompez. Le moyen le plus simple et le plus sûr de le faire est d’utiliser CHAR (34), en particulier lorsque des guillemets sont nécessaires, comme le suggère la réponse de Hannu (bien que ma préférence soit de garder les triples guillemets autour du point pour éviter de scinder une expression de texte en trois morceaux, mais c’est la raison pour laquelle il existe à la fois de la glace à la vanille et de la glace au chocolat).

fixer1234
la source
Je préfère Heath Bar Crunch moi-même
Carl Witthoft
Il ne devrait pas être difficile de ne pas avoir les yeux croisés - les deux manières les plus faciles de savoir s'il s'agit d'une citation de clôture ou d'une citation littérale sont 1. Lisez la citation d'ouverture. Ensuite, bien que les prochaines citations viennent par paires, ce sont des citations littérales. Sinon, c'est une citation finale. Alternativement, vous pouvez les scinder en chaînes plus petites - """:""" devient "" ":" "". Ensuite, il suffit de joindre toutes les chaînes avec des guillemets
somebody
Ma formule complète est en fait = CONCAT (CHAR (34), A4, "": "" ", D4," "" ",", ") car je crée une chaîne JSON dans la colonne G à partir des données de la colonne A et la colonne D. Alors, recommanderiez-vous cette formule? = "" "" "& A4 & amp;" ":" "" & D4 & amp; "" "," Je veux que le résultat ressemble à ceci: "welcome": "Bienvenue!",
Gabriel
@ Gabriel, avez-vous essayé de voir ce que vous obtenez? :-) Cela semble correct, bien que dans votre commentaire souhaité dans votre commentaire, il semble y avoir un espace après les deux points que vous devez inclure si c'est vrai:. . . ( """: """ contre. """:""" ). Il est préférable que vous utilisiez CONCAT avec des virgules ou des esperluettes; même avec """" CHAR (34) pour une citation concaténée unique. Ainsi, la version de la formule dans votre commentaire sur la réponse de Hannu fonctionnera également (même point avec l’espace apparent après les deux points): ": " contre. ":" ).
fixer1234
@ fix1234 Oh, j'ai vu maintenant que je n'avais pas la place, merci! :-) Oui j'ai besoin de l'espace après la virgule. J'essaie simplement de trouver une formule que tout le monde utilisant le fichier Excel comprendra facilement et pourra facilement changer. Je souhaite simplement suivre une pratique Excel standard.
Gabriel
4

Ces deux sont équivalents et créent la chaîne attendue:

=CONCAT(CHAR(34),A4,CHAR(34),":",CHAR(34),D4,CHAR(34))

Notez que , appels de fonction internes, car il peut être nécessaire de modifier ce paramètre pour ; en fonction de votre région.

=CHAR(34) &A4 &CHAR(34) &":" &CHAR(34) &D4 &CHAR(34)

Vous pouvez inclure des guillemets doubles dans une chaîne de caractères car l'option "eascaping" est disponible, mais combinée au fait que les chaînes commencent et se terminent par une guillemet double, elles deviennent rapidement laides et difficiles à maintenir. par exemple. ="""welcome"":""Bienvenue!""" - vous avez besoin de plus de citations pour ajouter les références de cellules ci-dessus; =""""&A4&""":"""&D4&"""" ... facile de se tromper.

NOTE: mis à jour w.r.t. cite s'echapper.

Hannu
la source
Rien à redire avec 4 guillemets dans une rangée autre que ça a l'air moche
Carl Witthoft
1
@CarlWitthoft, sauf si vous devez diagnostiquer une erreur de frappe dans une formule longue remplie de guillemets triples et quadruples. C'est l'une des deux choses qui peuvent vous rendre aveugle. :-)
fixer1234
@ fix1234 Vrai que - ou parenthèses de 7 profondeurs
Carl Witthoft
Ma formule complète est en fait = CONCAT (CHAR (34), A4, "": "" ", D4," "" ",", ") car je crée une chaîne JSON dans la colonne G à partir des données de la colonne A et la colonne D. Alors, recommanderiez-vous cette formule? = CONCAT (CHAR (34), A4, CHAR (34), ":", CHAR (34), D4, CHAR (34), ",",) Je souhaite que le résultat ressemble à ceci: "bienvenue": " Bienvenue! ",
Gabriel
Vraiment, c'est à vous de choisir. J'ai du mal à croire que ces choix font toute la différence en termes de rapidité, du moins lorsque vous utilisez des quantités modérées de données. Cependant, il peut y avoir une différence si vous avez des quantités de données énormes. J'irais pour une bonne lisibilité - de sorte que toute révision ultérieure (après environ un an peut-être) serait plus facile; par exemple. si vous tentez des modifications.
Hannu
1

Je ne suis pas sûr de la confusion qui règne ici: vous avez peut-être essayé de joindre tous les arguments à CONCAT avec des guillemets doubles? Vous concaténez plusieurs chaînes et chacun doit respecter les règles d'Excel. Chaque chaîne doit ensuite être délimitée par un guillemet double à chaque extrémité. Ainsi, pour quelque chaîne que ce soit, vous devez écrire

"the_string" 

Si votre chaîne contient une citation double, cette citation doit être "échappée" en la répétant,

"the""string"   

Donc, dans chaque instance d'une chaîne dans votre concaténation, suivez cette règle. Pensez à vos première et dernière chaînes comme

$DELIMITER""$DELIMITER

Comme la valeur de $ DELIMITER est la citation double, elle a l'air moche mais respecte les règles.

Carl Witthoft
la source
Carl bonne réponse, cela me semble tout à fait logique!
Michthan