Як створити рядки, що містять подвійні лапки у формулах 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.