Як створити рядки, що містять подвійні лапки у формулах Excel?


312

Як я можу побудувати наступний рядок у формулі Excel:

Моріс "Ракета" Річарда

Якщо я використовую одинарні лапки, це тривіально = "Maurice 'The Rocket' Richard"але як щодо подвійних лапок?

Відповіді:


468

Ви намагалися втекти з подвійною цитатою?

= "Maurice ""The Rocket"" Richard"

159

Крім того, ви можете використовувати CHARфункцію:

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

5
Це працює для мене більш послідовно, ніж, ""можливо, це просто тому, що я маю Mac Excel 2011
Іван

5
@Ivanoats: Ні, це не Mac річ ( з використанням Windows , тут) - це робить роботу більш послідовно; у моєму випадку поєднання використання &з подвійною цитатою безпосередньо перед або безпосередньо після того, як амперсанд не працює, використовуючи метод подвійної подвійної цитати.
Амос М. Карпентер

Для мене це працює більш послідовно, оскільки мені часто потрібно обертати лапки навколо складної рядки, складеної з декількох з’єднаних полів з перерізними розділовими знаками. У моєму останньому випадку, щоб придумати щось подібне: "NameOfLocation, адреса вулиці, місто, штат Zip"
jamesnotjim

21

Три подвійні лапки: " " " x " " "= "x"Excel автоматично зміниться на одну подвійну цитату. наприклад:

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

= "х" привіт


1
Якщо це було б правдою, то уточнюйте, будь ласка, результат = concatenate ("a" "" b "). За вашим спостереженням, результат буде" b ". Це не так. Насправді цей вираз навіть не прийме Excel.
whaefelinger

1
ви забули кома
KiwiSteve

1
Зовнішні лапки у вашому прикладі лише починають і закінчують рядок. "" створює персонаж цитати, а не "" ".
Ben I.

7

Я використовую для цього функцію (якщо в робочій книжці вже є VBA).

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

Це з книги Сью Мошер "Програмування Microsoft Outlook". Тоді ваша формула буде:

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

Це схоже на те, що розмістив Дейв ДуПлантіс .


6

Якщо вам потрібно зробити це за допомогою JSON:

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

1
Дякую! Це мені повністю допомогло! Я намагався належним чином відформатувати масив JSON у своїх клітинках.
Брайан C

1
Дякую, саме те, що мені було потрібно :)
JimiSweden

4

Використовуйте chr (34) Код:

    Joe = "Hi there, " & Chr(34) & "Joe" & Chr(34)
    ActiveCell.Value = Joe

Результат:

    Hi there, "joe"

1

чи буде ця робота для використання макросів .Formula = "=THEFORMULAFUNCTION("STUFF")" так, як це було б: чи буде ця робота для використання макросів.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"


1
Не знаю, чи доступний саме цей синтаксис у VBA. Спробувати.
Аллайн Лалонде


1

Повернення порожнього або нульового рядка (наприклад, ""щоб зробити клітинку порожньою) є звичайною практикою у формулі робочого аркуша, але відтворення цієї опції при вставці формули через властивість Range.Formula або Range.FormulaR1C1 у VBA є непростим через необхідність подвоїти символи подвійної лапки в рядку, що цитується.

Власна функція TEXT робочого аркуша може дати той же результат без використання лапок.

'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

На мій погляд, використання TEXT(,)замість ""очищає навіть таку просту формулу, як описана вище. Переваги стають все більш значущими при використанні у складніших формулах, таких як практика додавання порожнього рядка до VLOOKUP, щоб уникнути повернення нуля до комірки, коли пошук приводить до порожнього чи повертає порожній рядок у невідповідності з 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(,))"

При TEXT(,)заміні старого ""способу доставки порожнього рядка, ви можете отримати , щоб припинити використання Абака , щоб визначити , чи є у вас правильне кількість лапок у формулі рядку.


1

Об'єднати "як ceparate клітини:

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

D1 displays "text"

0

Функція VBA

1) .ormula = "=" "THEFORMULAFUNCTION" "& ​​(CHAR (34) &" "STUFF" "& CHAR (34))"

2) .ormula = "THEFORMULAFUNCTION" "STUFF" ""

Перший метод використовує vba для запису формули в комірку, в результаті якої обчислюється значення:

 THEFORMULAFUNCTION "STUFF"

Другий метод використовує vba для запису рядка в комірку, що призводить до значення:

 THEFORMULAFUNCTION "STUFF"

Результат Excel / Формула

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

2) ІНФОРМАЦІЯ ФУНФУНКЦІЇ



0

Є ще один спосіб, хоча більше для "Як я можу побудувати наступний рядок у формулі Excel:" Моріс "Ракета" Річард "", ніж "Як створити рядки, що містять подвійні лапки у формулах Excel?", Який просто використовувати дві одиничні цитати:

Приклад SO216616

Зліва - калібр, який знімається з робочого листа Excel, а праворуч - знімок з вікна VBA. На мій погляд, втеча, як згадує @YonahW, виграє "руки вниз", але дві одиничні котирування не більше типізації, ніж два парні, і різниця очевидно очевидна в VBA без додаткових натискань клавіш, потенційно, не помітних у таблиці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.