Note: The other languages of the website are Google-translated. Back to English

วิธีแยกคำแรก / สุดท้าย / ที่ n จากสตริงข้อความใน Excel

คุณเคยประสบปัญหาที่ต้องแยกคำบางคำออกจากสตริงข้อความในแผ่นงานหรือไม่? ตัวอย่างเช่นคุณมีช่วงของสตริงข้อความต่อไปนี้ที่จำเป็นเพื่อให้ได้คำแรก / สุดท้ายหรือที่ n จากคำเหล่านี้ฉันสามารถพูดถึงวิธีที่มีประสิทธิภาพบางอย่างเพื่อให้คุณแก้ไข


แยกคำแรกหรือนามสกุลจากสตริงข้อความด้วยสูตร

หากคุณต้องการแยกคำแรกออกจากรายการสตริงข้อความสูตรต่อไปนี้สามารถช่วยคุณได้

หากต้องการแยกคำแรกโปรดป้อนสูตรด้านล่างลงในเซลล์ว่างจากนั้นลากที่จับการป้อนอัตโนมัติของเซลล์นี้ไปยังช่วงตามที่คุณต้องการ

= IF (ISERR (FIND ("", A2)), "", LEFT (A2, FIND ("", A2) -1))

หากต้องการแยกคำสุดท้ายจากแต่ละเซลล์โปรดใช้สูตรนี้:

= IF (ISERR (FIND ("", A2)), "", ขวา (A2, LEN (A2) - ค้นหา ("*", SUBSTITUTE (A2, "", "*", LEN (A2) -LEN ( SUBSTITUTE (A2, "", ")))))

ตอนนี้คุณจะเห็นคำแรกหรือคำสุดท้ายถูกดึงออกมาจากแต่ละเซลล์

หมายเหตุ: ในสูตรข้างต้น A2 ระบุเซลล์ที่คุณจะดึงคำแรกหรือคำสุดท้ายออกมา

ยากที่จะจำสูตรที่ซับซ้อนยาว ๆ ? เครื่องมือที่น่าทึ่งช่วยให้คุณแยกคำที่ n wด้วยการคลิกหลายครั้งเท่านั้น!

สูตรยาวข้างต้นสามารถแยกได้เฉพาะคำแรกและคำสุดท้าย แต่จะไม่มีประโยชน์ในการแยกคำที่ n ที่ระบุคำที่สองคำที่หกเป็นต้นถึงแม้คุณจะสามารถหาสูตรเพื่อแก้ปัญหาได้ แต่สูตรก็ต้อง ซับซ้อนเกินไปที่จะจดจำและนำไปใช้ ที่นี่ขอแนะนำให้แยกคำที่ n ในคุณสมบัติเซลล์ของ Kutools for Excel และจะช่วยให้คุณแยกคำที่ n ให้ง่ายที่สุด!


Kutools สำหรับ Excel - รวมเครื่องมือที่มีประโยชน์มากกว่า 300 รายการสำหรับ Excel ทดลองใช้ฟรีคุณลักษณะเต็มรูปแบบ 30วันไม่ต้องใช้บัตรเครดิต! Get It Now

แยกคำที่ n จากสตริงข้อความด้วย User Defined Function

หากคุณต้องการแยกคำที่สองสามหรือ n ใด ๆ ออกจากสตริงข้อความคุณสามารถสร้างฟังก์ชันที่ผู้ใช้กำหนดขึ้นเพื่อจัดการกับมัน

1. กด ALT + F11 คีย์เพื่อเปิด หน้าต่าง Microsoft Visual Basic for Applications.

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ โมดูล หน้าต่าง

Function FindWord(Source As String, Position As Integer)
'Update 20131202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

3. จากนั้นบันทึกรหัสในตัวอย่างนี้ฉันจะได้รับคำที่สามจากสตริงดังนั้นให้พิมพ์สูตรนี้ = คำค้นหา (A2,3) ลงในเซลล์ว่าง B2 จากนั้นลากจุดจับเติมอัตโนมัติของเซลล์นี้ไปยังช่วงตามที่คุณต้องการ ดูภาพหน้าจอ:

หมายเหตุ ในสูตรข้างต้น A2 คือเซลล์ที่คุณต้องการแยกคำจากตัวเลข 3 ระบุคำที่สามในสตริงที่คุณจะแยกและคุณสามารถเปลี่ยนได้ตามต้องการ


แยกแต่ละคำออกจากสตริงข้อความและแสดงรายการในแนวนอนหรือแนวตั้ง

วิธีนี้จะแนะนำ Kutools for Excel's แยกเซลล์ ยูทิลิตี้ในการแยกแต่ละคำออกจากเซลล์สตริงข้อความจากนั้นแสดงรายการคำที่แยกออกมาในแนวนอนหรือแนวตั้งตามความต้องการของคุณ

Kutools สำหรับ Excel - รวมเครื่องมือที่มีประโยชน์มากกว่า 300 รายการสำหรับ Excel ทดลองใช้ฟรีคุณลักษณะเต็มรูปแบบ 30วันไม่ต้องใช้บัตรเครดิต! ทดลองใช้ฟรีทันที!

1. เลือกเซลล์สตริงข้อความที่คุณจะแยกคำของพวกเขาแล้วคลิก Kutools > ผสานและแยก > แยกเซลล์.

2. ในกล่องโต้ตอบการแยกเซลล์เปิดให้ระบุประเภทการแบ่งในไฟล์ ชนิดภาพเขียน ตรวจสอบ ช่องว่าง ตัวเลือกใน ระบุตัวคั่น ส่วนและคลิกปุ่ม Ok ปุ่ม. ดูภาพหน้าจอ:

3. ตอนนี้ระบุช่วงปลายทางที่คุณจะส่งออกคำที่แยกออกมาแล้วคลิกไฟล์ OK ปุ่ม

หากคุณตรวจสอบไฟล์ แยกเป็นคอลัมน์ ตัวเลือกในกล่องโต้ตอบ Split Cells ด้านบนทุกคำจะถูกแยกออกจากสตริงข้อความทั้งหมดและแสดงรายการในแนวตั้ง

หากคุณตรวจสอบไฟล์ แบ่งเป็นแถว ตัวเลือกในกล่องโต้ตอบ Split Cells ด้านบนทุกคำจะถูกดึงออกมาจากสตริงข้อความทั้งหมดและแสดงรายการในแนวนอน


แยกคำที่ n จากสตริงข้อความใน Excel ด้วยเครื่องมือที่น่าทึ่ง

หากคุณติดตั้ง Kutools สำหรับ Excel คุณสามารถใช้ตัวช่วยสูตร> แยกคำที่ n ในคุณสมบัติเซลล์เพื่อแยกคำที่ n ออกจากเซลล์ที่ระบุอย่างรวดเร็ว

Kutools สำหรับ Excel - รวมเครื่องมือที่มีประโยชน์มากกว่า 300 รายการสำหรับ Excel ทดลองใช้ฟรีคุณลักษณะเต็มรูปแบบ 30วันไม่ต้องใช้บัตรเครดิต! ทดลองใช้ฟรีทันที!

1. เลือกเซลล์ที่คุณจะใส่คำที่แยกแล้วคลิก Kutools > ตัวช่วยสูตร > ตัวช่วยสูตร เพื่อเปิดใช้งานคุณสมบัตินี้

2. ในกล่องโต้ตอบ Formulas Helper โปรดทำดังนี้:
(1) เลือก ข้อความ จาก ประเภทสูตร รายการแบบหล่นลง
(2) คลิกเพื่อไฮไลต์ แยกคำที่ n ในเซลล์ ใน เลือกสูตร กล่องรายการ;
(3) ใน เซลล์ กล่องระบุเซลล์ที่คุณจะแยกคำออกมา
(4) ใน Nth ระบุหมายเลข

3. คลิก Ok ปุ่ม. หากจำเป็นโปรดลากที่จับการป้อนอัตโนมัติของเซลล์สูตรและคัดลอกสูตรไปยังเซลล์อื่น


สาธิต: แยกแต่ละคำออกจากสตริงข้อความและแสดงรายการในแนวนอนหรือแนวตั้ง


Kutools สำหรับ Excel มีเครื่องมือที่มีประโยชน์มากกว่า 300 รายการสำหรับ Excel ทดลองใช้ฟรีโดยไม่มีข้อจำกัดใน 30 วัน ดาวน์โหลดและทดลองใช้ฟรีทันที!

บทความที่เกี่ยวข้อง:


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (38)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัส vba นั้นยอดเยี่ยมมาก ขอบคุณมาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฟังก์ชั่นที่ผู้ใช้กำหนดนี้ยอดเยี่ยมมาก! ขอบคุณตันสำหรับการแบ่งปัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก! ทำงานได้ดี! :-)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้มีประโยชน์อย่างยิ่ง ฉันสงสัยว่าจะมีใครรู้จักรายการที่ดาวน์โหลดได้ หรือรายการฟังก์ชันทำมือที่เป็นประโยชน์ที่คัดลอกและวางได้ เช่น "FindWord" ที่ฉันสามารถใช้ได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันแค่สงสัยว่าฉันสามารถแทรกอะไรอีกในสูตร Visual Basic ที่สามารถแยกและจุลภาคหรือขีดกลางหลังข้อมูลได้ทันที .. สำหรับเช่น Fortin-
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี นี่มันเยี่ยมมาก มันทำงานได้ดีมากและลดความเครียดของเราช่วยประหยัดเวลาได้มากในการดำเนินการนี้ ขอบคุณทุกท่านที่ทำงานนี้และแบ่งปัน...
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งที่ดี. วิธีนี้ได้ผลดีมาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี สิ่งนี้ช่วยประหยัดเวลาได้มากจริงๆ ขอบคุณที่แบ่งปัน ใครก็ได้แนะนำวิธีที่เราสามารถแยกคำด้วย vba ในทางกลับกัน เช่น คำสุดท้ายคือ 1 วินาทีจากขวาไปซ้ายคือ 2 เป็นต้น นี้จะได้รับการชื่นชมมาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้ทำงานไม่ถูกต้องในสตริงต้นทางที่ประกอบด้วยคำที่ไม่ใช่คำ (เช่น ชื่อผู้ขายตามด้วยหมายเลขชิ้นส่วน)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เราจะเปลี่ยนแบบอักษรสำหรับคำที่ n ในเซลล์ได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ชื่นชมมาก. มันช่วยฉันได้มาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ขอบคุณสำหรับรหัสของคุณ เป็นแรงบันดาลใจให้ฉันขยายออกไปเล็กน้อย ในบรรทัดถัดไป คุณสามารถเลือก: คำสุดท้าย (0), หนึ่งแต่สุดท้าย (-1), วินาทีจากสุดท้าย (-2) ฯลฯ โดยไม่คำนึงถึงจำนวนคำ ฟังก์ชัน FindWord(แหล่งที่มาเป็นสตริง ตำแหน่งเป็นจำนวนเต็ม) 'อัปเดต 20150504 Dim arr() เป็นสตริง arr = VBA.Split(แหล่งที่มา " ") xCount = UBound(arr) เลือก Case Position Case -xCount To 0 FindWord = arr(xCount + ตำแหน่ง) กรณีที่ 1 ถึง (xCount + 1) FindWord = arr (ตำแหน่ง - 1) กรณีอื่น FindWord = "" End Select End Function
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี เมื่อวานนี้เป็นเพียงส่วนเสริมของรหัส เพิ่มบรรทัดพิเศษเพื่อปรับช่องว่างที่ซ้ำซ้อนในสตริงต้นทาง: arr = VBA.Split(WorksheetFunction.Trim(Source), " ") ขอแสดงความนับถือ Allart
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณอลัน มันเยี่ยมมาก ขอบคุณ! :)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก!!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี .. ขอบคุณสำหรับรหัสของคุณ ฉันมีประโยครายการ และหนึ่งในนั้นมีเพียง 1 คำ และรหัสของคุณใช้ไม่ได้หากมีเพียง 1 คำ..
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันไม่สามารถให้รหัสสำหรับคำแรกทำงานได้ ถ้ารายการของฉันมีคำเดียวในเซลล์ เช่น คำแรก ---> วินาทีแรก ---> [null] คำสุดท้าย ---> last
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ลองสิ่งนี้ (ดูคำตอบของฉันด้านบน): Function FindWord(Source As String, Position As Integer) ' gets 1st, 2nd, last(0), second to last(-2) etc, word from a string ' Update 20150505 Dim arr( ) เป็นสตริง arr = VBA.Split(WorksheetFunction.Trim(Source), " ") xCount = UBound(arr) เลือก Case Position Case -xCount To 0 FindWord = arr(Position + xCount) กรณีที่ 1 ถึง xCount + 1 FindWord = arr (ตำแหน่ง - 1) กรณีอื่น FindWord = "" สิ้นสุด Select
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี geeks ฉันมีเซลล์แบบนี้: 1 ABCD; 2 DEDF; 1 DED#3d; 4 FDWDS; 1 ED และฉันต้องการแยกตัวอักษรหลังจาก 1 ฉันต้องการผลลัพธ์ดังนี้: ABCD;DED#3d;ED
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมี 64 บิต Excel 2013 และไม่มี Morefunc addin จากโค้ดด้านบนนี้ ฉันได้มาแทนที่ฟังก์ชัน WMID ของ Morefunc นี้แล้ว ฉันจะขอบคุณถ้าใครก็ตามที่เชี่ยวชาญมากกว่าฉันสามารถจัดการได้ ฟังก์ชัน WMid1(แหล่งที่มาเป็นสตริง, ตำแหน่งที่เลือกได้เป็นจำนวนเต็ม, จำนวนคำที่เลือกได้เป็นจำนวนเต็ม, ตัวคั่นเสริมเป็นสตริง) Dim arr() เป็นสตริง Dim xCount เป็นจำนวนเต็ม Dim wCount เป็นจำนวนเต็ม Dim wFirst เป็นจำนวนเต็ม Dim wLast เป็นจำนวนเต็ม ถ้าตำแหน่ง = 0 จากนั้นให้วางตำแหน่ง = 1 ถ้า WordCount = 0 จากนั้น WordCount = 1 ถ้า Separator = "" จากนั้น Separator = " " arr = VBA.Split(Trim(Source), Separator) xCount = UBound(arr) + 1 ถ้า Position < 1 จากนั้น wFirst = Application สูงสุด (xCount + Position - WordCount + 1, 0) wLast = xCount + Position Else wFirst = Position - 1 wLast = Application.Min(xCount - 1, Position + WordCount - 2) End If If xCount < 2 Or Abs(Position) > xCount แล้ว WMid1 = "" Else WMid1 = arr(wFirst) For wCount = wFirst + 1 To wLast WMid1 = WMid1 & Separator & arr(wCount) Next End ถ้า WMid1 = Trim (WMid1) End Function
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL