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?
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:
Ngoài ra, bạn có thể sử dụng CHAR
chức năng:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
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.
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
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.
Trong trường hợp bạn cần làm điều này với JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
đ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))"
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.
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"
="Maurice "&"""TheRocker"""&" Richard"
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:
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.
""
Có lẽ chỉ vì tôi có Mac Excel 2011