2 votos

Excel agrega comillas al final de mi fórmula

Excel corrige automáticamente mi fórmula, diciendo "Encontramos un error tipográfico en tu fórmula e intentamos corregirlo a:"

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

Mi fórmula original solo tiene tres comillas al final:

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

Para tu información combino los datos de dos columnas en Excel y el resultado debería lucir así:

"welcome":"Bienvenue!"

La celda A4 contiene: welcome
La celda D4 contiene: Bienvenue!

CHAR(34) representa la comilla inicial para la celda A4.

La función CONCAT() de Excel combina los datos de diferentes celdas de Ms Excel.

Nota: Esta pregunta no es similar a la pregunta de Superuser Excel añade comillas al resultado de mi fórmula

2 votos

Hola Gabriel, bienvenido a Superuser. Ya has publicado una solución a tu problema tú mismo. En lugar de usar """. Solo puedes usar: ,CHAR(34) que devuelve una comilla doble. Tendrás que usar más comas, pero esta es la solución más sencilla que veo.

0 votos

@Michthan o simplemente sigue las reglas del delimitador de Excel - consulta mi respuesta.

1 votos

Excel está corrigiendo tu fórmula incorrecta. Deberías estar feliz por esto. """ no es una cadena válida, mientras que """" está bien.

15voto

Altealice Puntos 2457

Las comillas tienen un significado especial en Excel, por lo que debes hacer algunos malabares para usarlas como un carácter regular. Puedes hacerlo duplicándolas, pero eso puede complicarse, dependiendo de la situación.

Para evitar confusiones terminológicas, ignoremos las apóstrofes (a veces llamadas "comillas simples"). Cualquier referencia aquí a "comilla" o "comillas" se refiere al símbolo con dos marcas de verificación.

Las reglas son comprensibles si reconoces lo que está sucediendo.

  • Las comillas siempre deben estar en pares (pero no necesariamente adyacentes).
  • Una comilla doble se convierte en un carácter de texto único (una comilla).
  • El texto debe estar entre comillas.
  • Si la comilla doble está en medio de una cadena, es simplemente otro carácter.
  • Si está al principio o al final de una cadena, la cadena de la que es parte debe estar encerrada entre comillas (así que terminarás con comillas triples al principio o al final).
  • Si está concatenada como el único carácter (al principio, en medio, o al final de una expresión), debe estar entre comillas (así que terminarás con comillas cuádruples).

Aquí tienes algunos ejemplos usando tu fórmula:

introducir descripción de la imagen aquí

  • Puedes ver que lo hiciste bien usando comillas triples alrededor de los dos puntos. Piensa en eso como los dos puntos rodeados de comillas dobles, y todo eso dentro de comillas para delimitar ese texto.
  • Lo hiciste bien nuevamente con CHAR(34) para comenzar la cadena. Puedes hacer lo mismo para el último carácter.
  • Dado que los primeros y últimos caracteres están concatenados, alternativamente podrías cuadruplicar esos (como D4&""""). Eso es lo que Excel intentó corregir por ti.
  • Si la expresión hubiera comenzado o terminado con texto codificado en lugar de una referencia a celda, podrías usar comillas triplicadas (como """Bienvenido")

Por lo tanto, esto se puede hacer usando múltiples comillas, aunque puedes acabar con los ojos cruzados si necesitas diagnosticar problemas en la fórmula si te equivocas. La forma simple y segura de hacerlo es usar CHAR(34), especialmente cuando se necesitan comillas cuádruples, como sugiere la respuesta de Hannu (aunque mi preferencia personal sería mantener las comillas triples alrededor de los dos puntos para evitar dividir una expresión de texto en tres partes; pero por eso existe tanto helado de vainilla como de chocolate).

0 votos

Prefiero Heath Bar Crunch por mi cuenta.

0 votos

No debería ser difícil no cruzar los ojos - las dos formas más fáciles de saber si es una comilla de cierre o una comilla literal son 1. Leer la comilla de apertura. Luego, mientras las comillas siguientes vienen en pares, son comillas literales. Si no, es una comilla de cierre. Alternativamente, puedes dividirlas en cadenas esencialmente más pequeñas - """:""" se convierte en "" ":" "". Luego, simplemente unes todas las cadenas con comillas

0 votos

Mi fórmula completa es en realidad =CONCAT(CHAR(34),A4,""": """,D4,"""",",") ya que estoy creando una cadena JSON en la columna G a partir de los datos de la columna A y la columna D. ¿Recomendarías esta fórmula para esto? =""""&A4&""":"""&D4&"""," Quiero que el resultado se vea así: "bienvenida": "Bienvenue!",

4voto

Hannu Puntos 2533

Estos dos son equivalentes y ambos crean la cadena esperada:

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

Tenga en cuenta que , dentro de llamadas de funciones puede necesitar cambiarse a ; dependiendo de su configuración regional.

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

Puede incluir comillas dobles en una cadena de caracteres ya que hay "escapado" disponible, pero combinado con el hecho de que las cadenas comienzan y terminan con comillas dobles, rápidamente se vuelve feo y difícil de mantener; por ejemplo, ="""welcome"":""Bienvenido!""" - necesita más comillas para agregar las referencias de celda arriba; =""""&A4&""":"""&D4&"""" ... fácil de cometer errores.

NOTA: actualizado con respecto al escapado de comillas.

0 votos

Nada malo con 4 comillas dobles seguidas aparte de que se ve feo

1 votos

@CarlWitthoft, a menos que necesites diagnosticar un error de escritura en una fórmula larga llena de comillas dobles triples y cuádruples. Eso es una de las dos cosas que pueden hacerte quedar ciego. :-)

0 votos

@fixer1234 Cierto eso -- o paréntesis de 7 niveles

1voto

Absolom Puntos 143

No estoy seguro de cuál es la confusión aquí: ¿quizás estabas tratando de encerrar todos los argumentos en CONCAT con comillas dobles? Estás concatenando varias cadenas, y cada una debe cumplir las reglas de Excel. Entonces, cada cadena debe estar delimitada con comillas dobles en cada extremo. Así que, para cualquier cadena que sea, debes escribir

"la_cadena"

Si tu cadena contiene comillas dobles, esa comilla doble debe ser "escapada" repitiéndola,

"la""cadena"

Entonces, en cada instancia de una cadena en tu concatenación, sigue esa regla. Piensa en tus primeras y últimas cadenas como

$DELIMITADOR""$DELIMITADOR

Debido a que el valor de $DELIMITADOR resulta ser la comilla doble, se ve feo pero sigue las reglas.

0 votos

Carl gran respuesta, ¡esto tiene perfecto sentido para mí!

0voto

sarumont Puntos 1106

La comilla doble es un carácter especial en Excel, y debe ser escapada (ingresando dos comillas dobles).

  • ="""" produce "
  • ="Mi nombre es ""James""." produce Mi nombre es "James".
  • ="""""""""""""""""""""" (22 comillas) produce """""""""" (10 comillas)

Las primeras y últimas comillas dobles son las de cierre, y cada 2 comillas dobles en el medio se convierten en 1 comilla doble.


Entonces, aquí tienes.

  • Celda A4: bienvenido

  • Celda D4: ¡Bienvenido!

  • Fórmula: ="""" & A4 & """:""" & D4 & """"

  • Salida: "bienvenido":"¡Bienvenido!"

(Para una lectura más fácil, se ha utilizado & en lugar de CONCAT(...) para la concatenación)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X