¿Cómo crear cadenas que contengan comillas dobles en las fórmulas de Excel?

StackOverflow https://stackoverflow.com/questions/216616

  •  03-07-2019
  •  | 
  •  

Pregunta

¿Cómo puedo construir la siguiente cadena en una fórmula de Excel?

  

Maurice " The Rocket " Richard

Si estoy usando comillas simples, es trivial = " Maurice 'The Rocket' Richard " pero ¿qué pasa con las comillas dobles?

¿Fue útil?

Solución

¿Has intentado escapar con una cita doble?

= "Maurice ""The Rocket"" Richard"

Otros consejos

Alternativamente, puedes usar la función CHAR :

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

Tres comillas dobles: " " " x " " " = " x " Excel cambiará automáticamente a una comilla doble. por ejemplo:

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

= " x " hola

Uso una función para esto (si el libro de trabajo ya tiene VBA).

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

Esto es del libro de Sue Mosher " Programación de Microsoft Outlook " ;. Entonces tu fórmula sería:

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

Esto es similar a lo que publicó Dave DuPlantis .

En el caso de que necesite hacer esto con JSON:

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

Usa chr (34) Código:     Joe = " Hola, " &erio; Chr (34) & amp; " Joe " &erio; Chr (34)     ActiveCell.Value = Joe

Resultado:     Hola, " joe "

funcionará para macros utilizando .Formula = " = THEFORMULAFUNCTION (" STUFF ") " así sería como funcionará para macros utilizando .Formula = " = THEFORMULAFUNCTION (CHAR (34) & amp; STUFF & amp; CHAR (34)) "

Devolver una cadena vacía o de longitud cero (por ejemplo, " " ) para hacer que una celda aparezca en blanco es una práctica común en una fórmula de la hoja de cálculo, pero volver a crear esa opción cuando se inserta la fórmula a través de < a href = "https://msdn.microsoft.com/en-us/library/office/ff838835.aspx" rel = "nofollow"> Range.Formula o Range.FormulaR1C1 en VBA es difícil de manejar debido a la necesidad de tener que duplicar los caracteres de comillas dobles dentro de una cadena entre comillas.

La función TEXT puede producir el mismo resultado sin usar comillas.

'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

A mi modo de ver, el uso de TEXT (,) en lugar de " " limpia incluso una fórmula simple como la de arriba. Los beneficios se vuelven cada vez más significativos cuando se usan en fórmulas más complicadas, como la práctica de agregar una cadena vacía a una VLOOKUP para evitar devolver un cero a la celda cuando una búsqueda resulta en un espacio en blanco o devuelve una cadena vacía en no coincidencia 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 TEXT (,) reemplazando el antiguo método " " de entregar una cadena vacía, puedes dejar de usar un ábaco para determinar si tienes el número correcto de caracteres de comillas en una cadena de fórmula.

Concatenar " como una celda de ceparate:

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

D1 displays "text"

Función VBA

1). Fórmula = "THEFORMULAFUNCTION" & amp; (CHAR (34) & amp; " STUFF " & amp; CHAR (34)) "

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

El primer método usa vba para escribir una fórmula en una celda que da como resultado el valor calculado:

 THEFORMULAFUNCTION "STUFF"

El segundo método usa vba para escribir una cadena en una celda que da como resultado el valor:

<*>

Resultado / fórmula de Excel

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

2) THEFORMULAFUNCTION " STUFF "

="Maurice "&"""TheRocker"""&" Richard"

Hay otra forma, aunque más para " ¿Cómo puedo construir la siguiente cadena en una fórmula de Excel? & Quot; Maurice " The Rocket " Richard " " que " ¿Cómo crear cadenas que contengan comillas dobles en las fórmulas de Excel? " ;, que es simplemente usar dos comillas simples:

 SO216616 ejemplo

A la izquierda está Calibri recortado de una hoja de cálculo de Excel y, a la derecha, un recorte de una ventana de VBA. Desde mi punto de vista, escapar como lo mencionó @YonahW gana 'incuestionablemente', pero dos comillas simples no son más escritas que dos dobles y la diferencia es razonablemente aparente en VBA sin pulsaciones de teclas adicionales, mientras que, potencialmente, no se nota en una hoja de cálculo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top