¿Cómo puedo construir la siguiente cadena en una fórmula de Excel:
Maurice "El cohete" Richard
Si estoy usando comillas simples, es trivial = "Maurice 'The Rocket' Richard"
pero ¿qué pasa con las comillas dobles?
¿Cómo puedo construir la siguiente cadena en una fórmula de Excel:
Maurice "El cohete" Richard
Si estoy usando comillas simples, es trivial = "Maurice 'The Rocket' Richard"
pero ¿qué pasa con las comillas dobles?
Respuestas:
Alternativamente, puede usar la CHAR
función:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
con comillas dobles justo antes o justo después del signo y no funcionó con el método de comillas dobles.
Tres comillas dobles: " " " x " " "
= "x"
Excel cambiará automáticamente a una comilla doble. p.ej:
=CONCATENATE("""x"""," hi")
= "x" hola
Yo uso una función para esto (si el libro 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 "Microsoft Outlook Programming". Entonces tu fórmula sería:
="Maurice "&Quote("Rocket")&" Richard"
Esto es similar a lo que publicó Dave DuPlantis .
En el caso de que necesite hacer esto con JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
¿Funcionará para macros? Entonces .Formula = "=THEFORMULAFUNCTION("STUFF")"
sería así: ¿Funcionará para macros?.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
Devolver una cadena vacía o de longitud cero (p ""
. Ej. ) Para hacer que una celda aparezca en blanco es una práctica común en una fórmula de hoja de trabajo, pero recrear esa opción al insertar la fórmula a través de la propiedad Range.Formula o Range.FormulaR1C1 en VBA es difícil de manejar debido a que necesidad de duplicar los caracteres de comillas dobles dentro de una cadena entre comillas.
La función TEXTO nativa de la hoja de trabajo 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
En mi opinión, usar TEXT(,)
en lugar de ""
limpia incluso una fórmula simple como la anterior. 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 un BUSCADOR para evitar devolver un cero a la celda cuando una búsqueda da como resultado un espacio en blanco o devuelve una cadena vacía cuando no coincide 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(,))"
Al TEXT(,)
reemplazar el antiguo ""
método de entregar una cadena vacía, puede dejar de usar un ábaco para determinar si tiene el número correcto de caracteres de comillas en una cadena de fórmula.
Función VBA
1) .Formula = "=" "THEFORMULAFUNCTION" "& (CHAR (34) &" "STUFF" "& 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:
THEFORMULAFUNCTION "STUFF"
Resultado Excel / Fórmula
1) = "THEFORMULAFUNCTION" & (CHAR (34) & "STUFF" & CHAR (34))
2) LA FUNCIÓN DE FÓRMULA "MATERIAL"
="Maurice "&"""TheRocker"""&" Richard"
Hay otra forma, aunque más para "¿Cómo puedo construir la siguiente cadena en una fórmula de Excel:" Maurice "The Rocket" Richard "" que "Cómo crear cadenas que contienen comillas dobles en las fórmulas de Excel?", Que es simplemente usar dos comillas simples:
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. En mi opinión, escapar como lo menciona @YonahW gana 'manos abajo', pero dos comillas simples no son más que escribir dos dobles y la diferencia es razonablemente evidente en VBA sin teclas adicionales, mientras que, potencialmente, no se nota en una hoja de cálculo.
""
Quizás sea solo porque tengo Mac Excel 2011