ฉันจะสร้างสตริงต่อไปนี้ในสูตร Excel ได้อย่างไร:
มอริซ "จรวด" ริชาร์ด
หากฉันใช้เครื่องหมายคำพูดเดี่ยวมันเป็นเรื่องเล็กน้อย = "Maurice 'The Rocket' Richard"
แต่ถ้าพูดถึงคู่
ฉันจะสร้างสตริงต่อไปนี้ในสูตร Excel ได้อย่างไร:
มอริซ "จรวด" ริชาร์ด
หากฉันใช้เครื่องหมายคำพูดเดี่ยวมันเป็นเรื่องเล็กน้อย = "Maurice 'The Rocket' Richard"
แต่ถ้าพูดถึงคู่
คำตอบ:
คุณลองหนีด้วยคำพูดสองครั้งหรือไม่?
= "Maurice ""The Rocket"" Richard"
หรือคุณสามารถใช้CHAR
ฟังก์ชั่น:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
กับเครื่องหมายคำพูดคู่ก่อนหรือหลังเครื่องหมายและไม่ทำงานโดยใช้วิธีการอ้างสองครั้ง
เครื่องหมายคำพูดคู่ที่สาม: " " " x " " "
= "x"
Excel จะเปลี่ยนเป็นเครื่องหมายคำพูดคู่หนึ่งโดยอัตโนมัติ เช่น:
=CONCATENATE("""x"""," hi")
= "x" สวัสดี
ฉันใช้ฟังก์ชันนี้ (ถ้าสมุดงานมี VBA อยู่แล้ว)
Function Quote(inputText As String) As String
Quote = Chr(34) & inputText & Chr(34)
End Function
มาจากหนังสือของ Sue Mosher "Microsoft Outlook Programming" จากนั้นสูตรของคุณจะเป็น:
="Maurice "&Quote("Rocket")&" Richard"
ซึ่งคล้ายกับสิ่งที่Dave DuPlantisโพสต์
ในกรณีที่คุณต้องทำด้วย JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
ใช้รหัส chr (34):
Joe = "Hi there, " & Chr(34) & "Joe" & Chr(34)
ActiveCell.Value = Joe
ผลลัพธ์:
Hi there, "joe"
จะใช้งานได้กับมาโครที่ใช้งาน.Formula = "=THEFORMULAFUNCTION("STUFF")"
ดังนั้นจะเป็นเช่นนี้: ใช้งานได้กับมาโครที่ใช้.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
การส่งคืนสตริงว่างหรือศูนย์ที่มีความยาว (เช่น""
) เพื่อให้เซลล์ปรากฏเป็นช่องว่างถือเป็นเรื่องธรรมดาในสูตรเวิร์กชีท แต่สร้างตัวเลือกนั้นซ้ำอีกครั้งเมื่อแทรกสูตรผ่าน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(,)
แทนที่""
วิธีเก่าในการส่งสตริงว่างคุณอาจหยุดใช้ลูกคิดเพื่อตรวจสอบว่าคุณมีจำนวนอักขระเครื่องหมายคำพูดที่ถูกต้องในสตริงสูตรหรือไม่
เรียงต่อกัน"
เป็นเซลล์ ceparate:
A | B | C | D
1 " | text | " | =CONCATENATE(A1; B1; C1);
D1 displays "text"
ฟังก์ชั่น VBA
1) .Formula = "=" "THEFORMULAFUNCTION" "& (CHAR (34) &" "STUFF" "& CHAR (34))"
2) .Formula = "THEFORMULAFUNCTION" "STUFF" ""
วิธีแรกใช้ vba เพื่อเขียนสูตรในเซลล์ซึ่งส่งผลให้ค่าที่คำนวณได้:
THEFORMULAFUNCTION "STUFF"
วิธีที่สองใช้ vba เพื่อเขียนสตริงในเซลล์ซึ่งส่งผลให้ค่า:
THEFORMULAFUNCTION "STUFF"
Excel ผลลัพธ์ / สูตร
1) = "THEFORMULAFUNCTION" & (CHAR (34) & "STUFF" & CHAR (34))
2) THEFORMULAFUNCTION "STUFF"
="Maurice "&"""TheRocker"""&" Richard"
มีอีกวิธีหนึ่งคือ "ฉันจะสร้างสตริงต่อไปนี้ในสูตร Excel ได้อย่างไร:" มอริซ "จรวด" ริชาร์ด "" มากกว่า "วิธีสร้างสตริงที่มีเครื่องหมายคำพูดคู่ในสูตร Excel" ซึ่งใช้เพียง สองคำพูดเดียว:
ทางด้านซ้าย Calibri ถูกดึงออกมาจากแผ่นงาน Excel และทางด้านขวามี snip จากหน้าต่าง VBA ในมุมมองของฉันหลบหนีตามที่ระบุไว้โดย @YonahW ชนะ 'hands down' แต่คำพูดเดียวสองคำไม่พิมพ์มากกว่าสองเท่าและความแตกต่างที่เห็นได้ชัดใน VBA โดยไม่มีการกดแป้นเพิ่มเติมในขณะที่อาจไม่สังเกตเห็นได้ในกระดาษคำนวณ
""
บางทีอาจเป็นเพราะฉันมี Mac Excel 2011