Làm cách nào để tạo chuỗi chứa dấu ngoặc kép trong công thức Excel?


312

Làm cách nào tôi có thể xây dựng chuỗi sau trong công thức Excel:

Maurice "Tên lửa" Richard

Nếu tôi đang sử dụng dấu ngoặc đơn, thì đó là chuyện nhỏ = "Maurice 'The Rocket' Richard"nhưng còn dấu ngoặc kép thì sao?

Câu trả lời:


468

Bạn đã thử thoát với một trích dẫn kép?

= "Maurice ""The Rocket"" Richard"

159

Ngoài ra, bạn có thể sử dụng CHARchức năng:

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

5
Điều này hoạt động ổn định với tôi hơn ""Có lẽ chỉ vì tôi có Mac Excel 2011
Ivan

5
@Ivanoats: Không, nó không phải là một điều Mac (sử dụng Windows ở đây) - điều này không làm việc liên tục trở lên; trong trường hợp của tôi, ghép nối bằng cách sử dụng &một trích dẫn kép ngay trước hoặc ngay sau khi ký hiệu và không hoạt động bằng phương pháp trích dẫn kép.
Amos M. Carpenter

Hoạt động ổn định hơn đối với tôi, vì tôi thường cần phải bọc các dấu ngoặc kép xung quanh một chuỗi phức tạp được tạo thành từ nhiều trường được nối với các dấu chấm xen kẽ. Trong trường hợp gần đây nhất của tôi, để đưa ra một cái gì đó như thế này: "NameOfLocation, Địa chỉ đường phố, Thành phố, Zip Nhà nước"
jamesnotjim

21

Ba dấu ngoặc kép: " " " x " " "= "x"Excel sẽ tự động thay đổi thành một dấu ngoặc kép . ví dụ:

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

= "x" chào


1
Nếu điều này là đúng, thì hãy giải thích kết quả của = concatenate ("a" "" b "). Theo quan sát của bạn, kết quả sẽ là" b. Đây không phải là trường hợp. Trong thực tế, biểu thức này thậm chí sẽ không được Excel chấp nhận.
whaefelinger

1
bạn đã quên dấu phẩy
KiwiSteve 21/2/2016

1
Các trích dẫn bên ngoài trong ví dụ của bạn chỉ là bắt đầu và kết thúc chuỗi. "" tạo ra một ký tự trích dẫn, không phải "" ".
Ben I.

7

Tôi sử dụng một chức năng cho việc này (nếu sổ làm việc đã có VBA).

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

Đây là từ cuốn sách "Lập trình Microsoft Outlook" của Sue Mosher. Sau đó, công thức của bạn sẽ là:

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

Điều này tương tự với những gì Dave DuPlantis đã đăng.


6

Trong trường hợp bạn cần làm điều này với JSON:

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

1
Cảm ơn bạn! Điều này hoàn toàn giúp tôi! Tôi đã vật lộn để định dạng đúng một mảng JSON trong các ô của mình.
Brian C

1
Cảm ơn, chỉ những gì tôi cần :)
JimiSweden

4

Sử dụng mã chr (34):

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

Kết quả:

    Hi there, "joe"

1

điều này sẽ làm việc cho các macro sử dụng .Formula = "=THEFORMULAFUNCTION("STUFF")" vì vậy nó sẽ giống như: điều này sẽ hoạt động cho các macro sử dụng.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"


1
Không biết cú pháp cụ thể này có sẵn trong VBA không. Hãy thử một lần.
Allain Lalonde


1

Trả về một chuỗi rỗng hoặc có độ dài bằng không (ví dụ "") để làm cho một ô xuất hiện trống là một cách phổ biến trong công thức trang tính nhưng việc tạo lại tùy chọn đó khi chèn công thức thông qua thuộc tính Range.Formula hoặc Range.FormulaR1C1 trong VBA là không hiệu quả do sự cần thiết phải nhân đôi các ký tự trích dẫn kép trong một chuỗi trích dẫn.

Hàm văn bản gốc của bảng tính có thể tạo ra kết quả tương tự mà không cần sử dụng dấu ngoặc kép.

'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

Trước mắt tôi, sử dụng TEXT(,)thay thế cho việc ""làm sạch ngay cả một công thức đơn giản như công thức trên. Các lợi ích ngày càng có ý nghĩa khi được sử dụng trong các công thức phức tạp hơn như thực hành nối thêm chuỗi rỗng vào VLOOKUP để tránh trả về số 0 cho ô khi tra cứu dẫn đến trống hoặc trả về chuỗi trống khi không khớp với 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(,))"

Với việc TEXT(,)thay thế ""phương thức phân phối chuỗi trống cũ, bạn có thể ngừng sử dụng bàn tính để xác định xem bạn có đúng số lượng ký tự trích dẫn trong chuỗi công thức hay không.


1

Concatenate "như một tế bào ceparate:

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

D1 displays "text"

0

Chức năng VBA

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

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

Phương thức đầu tiên sử dụng vba để viết công thức trong một ô dẫn đến giá trị được tính:

 THEFORMULAFUNCTION "STUFF"

Phương thức thứ hai sử dụng vba để viết một chuỗi trong một ô dẫn đến giá trị:

 THEFORMULAFUNCTION "STUFF"

Kết quả / Công thức Excel

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

2) CÂU HỎI THƯỜNG GẶP "NHÂN VIÊN"



0

Có một cách khác, mặc dù nhiều hơn cho "Làm cách nào tôi có thể xây dựng chuỗi sau trong công thức Excel:" Maurice "The Rocket" Richard "" thay vì "Cách tạo chuỗi chứa dấu ngoặc kép trong công thức Excel?", Đơn giản là sử dụng hai trích dẫn đơn:

Ví dụ SO216616

Bên trái là Calibri bắn tỉa từ một bảng tính Excel và bên phải là một snip từ cửa sổ VBA. Theo quan điểm của tôi, thoát như được đề cập bởi @YonahW sẽ thắng 'hai tay' nhưng hai dấu ngoặc đơn không gõ nhiều hơn hai nhân đôi và sự khác biệt rõ ràng trong VBA mà không cần nhấn phím trong khi, có khả năng, không thể nhận thấy trong bảng tính.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.