วิธีสร้างสตริงที่มีเครื่องหมายคำพูดคู่ในสูตร Excel


312

ฉันจะสร้างสตริงต่อไปนี้ในสูตร Excel ได้อย่างไร:

มอริซ "จรวด" ริชาร์ด

หากฉันใช้เครื่องหมายคำพูดเดี่ยวมันเป็นเรื่องเล็กน้อย = "Maurice 'The Rocket' Richard"แต่ถ้าพูดถึงคู่

คำตอบ:



159

หรือคุณสามารถใช้CHARฟังก์ชั่น:

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

5
มันใช้งานได้อย่างสม่ำเสมอมากกว่าสำหรับฉัน""บางทีอาจเป็นเพราะฉันมี Mac Excel 2011
Ivan

5
@Ivanoats: ไม่มันไม่ใช่สิ่งที่ Mac (ใช้ Windows ที่นี่) - มันทำงานได้อย่างต่อเนื่องมากกว่า; ในกรณีของฉันการเชื่อมต่อการใช้&กับเครื่องหมายคำพูดคู่ก่อนหรือหลังเครื่องหมายและไม่ทำงานโดยใช้วิธีการอ้างสองครั้ง
Amos M. Carpenter

ทำงานได้อย่างต่อเนื่องมากขึ้นสำหรับฉันเนื่องจากฉันมักจะต้องใส่เครื่องหมายอัญประกาศล้อมรอบสตริงที่ซับซ้อนซึ่งสร้างขึ้นจากเขตข้อมูลที่ต่อกันหลายช่องด้วยเครื่องหมายวรรคตอนแบบกระจาย ในกรณีล่าสุดของฉันที่จะเกิดขึ้นกับสิ่งนี้: "NameOfLocation, ที่อยู่ถนน, เมือง, รัฐ Zip"
jamesnotjim

21

เครื่องหมายคำพูดคู่ที่สาม: " " " x " " "= "x"Excel จะเปลี่ยนเป็นเครื่องหมายคำพูดคู่หนึ่งโดยอัตโนมัติ เช่น:

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

= "x" สวัสดี


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

มาจากหนังสือของ Sue Mosher "Microsoft Outlook Programming" จากนั้นสูตรของคุณจะเป็น:

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

ซึ่งคล้ายกับสิ่งที่Dave DuPlantisโพสต์


6

ในกรณีที่คุณต้องทำด้วย JSON:

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

1
ขอบคุณ! ทั้งหมดนี้ช่วยฉันได้! ฉันพยายามจัดรูปแบบอาร์เรย์ JSON อย่างถูกต้องในเซลล์ของฉัน
Brian C

1
ขอบคุณสิ่งที่ฉันต้องการ :)
JimiSweden


1

จะใช้งานได้กับมาโครที่ใช้งาน.Formula = "=THEFORMULAFUNCTION("STUFF")" ดังนั้นจะเป็นเช่นนี้: ใช้งานได้กับมาโครที่ใช้.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"


1
ไม่ทราบว่าไวยากรณ์นี้มีเฉพาะใน VBA หรือไม่ ให้มันลอง.
Allain Lalonde

ดูเหมือนว่าใช่: bytes.com/topic/access/insights/…
Allain Lalonde

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) .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"



0

มีอีกวิธีหนึ่งคือ "ฉันจะสร้างสตริงต่อไปนี้ในสูตร Excel ได้อย่างไร:" มอริซ "จรวด" ริชาร์ด "" มากกว่า "วิธีสร้างสตริงที่มีเครื่องหมายคำพูดคู่ในสูตร Excel" ซึ่งใช้เพียง สองคำพูดเดียว:

ตัวอย่าง SO216616

ทางด้านซ้าย Calibri ถูกดึงออกมาจากแผ่นงาน Excel และทางด้านขวามี snip จากหน้าต่าง VBA ในมุมมองของฉันหลบหนีตามที่ระบุไว้โดย @YonahW ชนะ 'hands down' แต่คำพูดเดียวสองคำไม่พิมพ์มากกว่าสองเท่าและความแตกต่างที่เห็นได้ชัดใน VBA โดยไม่มีการกดแป้นเพิ่มเติมในขณะที่อาจไม่สังเกตเห็นได้ในกระดาษคำนวณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.