ไปยังเนื้อหาหลัก

จะแยกอักษรตัวแรกของแต่ละคำออกจากเซลล์ได้อย่างไร?

ผู้เขียน: Xiaoyang แก้ไขล่าสุด: 2024-03-14

ลองนึกภาพคุณมีรายชื่อประเทศในแผ่นงานของคุณ และคุณต้องการแยกอักษรตัวแรกของแต่ละคำในชื่อเหล่านี้ Excel ไม่มีคุณลักษณะโดยตรงสำหรับการแยกตัวอักษรเริ่มต้นของแต่ละคำในเซลล์ อย่างไรก็ตาม ฉันจะแนะนำวิธีการปฏิบัติบางประการเพื่อให้งานนี้สำเร็จลุล่วงได้อย่างมีประสิทธิภาพ ทำให้กระบวนการตรงไปตรงมาและมีประสิทธิภาพ


แยกอักษรตัวแรกของแต่ละคำออกจากเซลล์ด้วยสูตร

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

1. โปรดคัดลอกสูตรต่อไปนี้ลงในเซลล์ว่างที่คุณต้องการรับผลลัพธ์แล้วกด Ctrl + Shift + Enter คีย์เข้าด้วยกันเพื่อให้ได้ผลลัพธ์แรก

=CONCAT(LEFT(FILTERXML("<a><b>"&SUBSTITUTE(A2," ","</b><b>")&"</b></a>","//b"),1))

2. ต่อไป ให้ดึงสูตรลงเพื่อเติมเซลล์อื่นๆ การดำเนินการนี้จะแยกอักษรตัวแรกของแต่ละคำในแต่ละเซลล์พร้อมกันโดยอัตโนมัติ ดูภาพหน้าจอ:

คำอธิบายของสูตรนี้:
  • ทดแทน(A2," , " "): ฟังก์ชันนี้จะแทนที่แต่ละช่องว่างในข้อความในเซลล์ A2 ด้วย . วิธีนี้จะแยกแต่ละคำในข้อความอย่างมีประสิทธิภาพด้วยแท็ก XML เหล่านี้ ตัวอย่างเช่น ถ้า A2 มีคำว่า "Hello World" ส่วนนี้ของสูตรจะเปลี่ยนเป็น "Hello World"
  • " "&...&" ": ส่วนนี้จะล้อมผลลัพธ์ของฟังก์ชัน SUBSTITUTE โดยขึ้นต้นและ สิ้นสุด จากตัวอย่างนี้ สตริงจะกลายเป็น Hello World ซึ่งสร้างโครงสร้าง XML ที่ถูกต้อง โดยแต่ละคำจะอยู่ภายใน แท็ก
  • FILTERXML(...,"//b"): FILTERXML ใช้เพื่อแยกวิเคราะห์สตริง XML ที่สร้างขึ้นในขั้นตอนก่อนหน้า แบบสอบถาม XPath //b เลือกองค์ประกอบทั้งหมดภายใน แท็ก กล่าวคือ แต่ละคำในสตริงต้นฉบับ จากตัวอย่างของเรา FILTERXML จะส่งกลับอาร์เรย์ที่มีสององค์ประกอบ: "Hello" และ "World"
  • ซ้าย(...,1): จากนั้นฟังก์ชัน LEFT จะถูกนำไปใช้กับแต่ละองค์ประกอบของอาร์เรย์ที่ส่งคืนโดย FILTERXML โดยแยกอักษรตัวแรกของแต่ละคำ ในตัวอย่าง สิ่งนี้จะส่งผลให้เป็น "H" และ "W"
  • คอนแคต(...): สุดท้ายนี้ ฟังก์ชัน CONCAT จะเชื่อมองค์ประกอบทั้งหมดของอาร์เรย์เข้าด้วยกันเป็นสตริงเดียว สำหรับตัวอย่าง "Hello World" ของเรา มันจะเชื่อม "H" และ "W" เข้าด้วยกันเพื่อสร้าง "HW"

แยกอักษรตัวแรกของแต่ละคำออกจากเซลล์ด้วย Kutools AI Aide

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

หมายเหตุ: หากต้องการใช้สิ่งนี้ Kutools AI ผู้ช่วย of Kutools สำหรับ Excelโปรด ดาวน์โหลดและติดตั้ง Kutools สำหรับ Excel ก่อน

หลังจากติดตั้ง Kutools for Excel แล้วโปรดคลิก Kutools AI > เอไอ ผู้ช่วย เพื่อเปิด Kutools AI ผู้ช่วย บานหน้าต่าง:

  1. เลือกรายการข้อมูล จากนั้นพิมพ์ความต้องการของคุณลงในกล่องแชท แล้วคลิก ส่ง หรือกด เข้าสู่ กุญแจสำคัญในการส่งคำถาม
  2. หลังจากวิเคราะห์แล้วคลิก ดำเนินงาน ปุ่มเพื่อเรียกใช้ Kutools AI Aide จะประมวลผลคำขอของคุณโดยใช้ AI และส่งคืนผลลัพธ์โดยตรงใน Excel


แยกอักษรตัวแรกของแต่ละคำออกจากเซลล์ด้วยฟังก์ชันที่ผู้ใช้กำหนด

การแยกอักษรตัวแรกของแต่ละคำออกจากเซลล์เป็นงานที่สามารถปรับให้เหมาะสมได้อย่างมากโดยใช้ User Defined Function (UDF) ใน Excel ส่วนนี้จะสำรวจวิธีการสร้างและใช้ UDF เพื่อดำเนินงานนี้อย่างมีประสิทธิภาพ

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

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

Function GetFirstLetters(rng As Range) As String
'Updateby Extendoffice
    Dim arr
    Dim I As Long
    arr = VBA.Split(rng, " ")
    If IsArray(arr) Then
        For I = LBound(arr) To UBound(arr)
            GetFirstLetters = GetFirstLetters & Left(arr(I), 1)
        Next I
    Else
        GetFirstLetters = Left(arr, 1)
    End If
End Function

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


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

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

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (18)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hello, If the the nth Word is enclosed in a (), it is returning the ( since it comes before the First Letter.

Example:
Word Word (Word)

How to return WWW instead of WW( ?
This comment was minimized by the moderator on the site
Hello, Sharmane
Maybe the following code can help you:
Function GetFirstLetters(rng As Range) As String
    Dim arr() As String
    Dim i As Long
    
    arr = VBA.Split(rng.Value, " ")
    
    For i = LBound(arr) To UBound(arr)
        If Left(arr(i), 1) <> "(" And Right(arr(i), 1) <> ")" Then
            GetFirstLetters = GetFirstLetters & Left(arr(i), 1)
        ElseIf Left(arr(i), 1) = "(" And Right(arr(i), 1) = ")" Then
            GetFirstLetters = GetFirstLetters & Mid(arr(i), 2, 1)
        End If
    Next i
End Function


Please have a try, thank you!
This comment was minimized by the moderator on the site
Another suggestion if using Microsoft 365: =TEXTJOIN("",,LEFT(TEXTSPLIT(D9," "),1)) where the source string is in B9.
Wrap in UPPER function to enforce uppercase: =UPPER(TEXTJOIN("",,LEFT(TEXTSPLIT(D9," "),1)))
@Pradeep Gyawali -> add space: =UPPER(TEXTJOIN(" ",,LEFT(TEXTSPLIT(D9," "),1)))
This comment was minimized by the moderator on the site
Wondering how to add this into the existing formula I have that works to bring the value over from a cell in another sheet? I only want to bring over the first character in each cell. Here's the formula

=IF(LOOKUP(2,1/(OriginalSubmission!D:D<>""),ROW(OriginalSubmission!D:D))=ROW(OriginalSubmission!D4),"",INDIRECT("OriginalSubmission!D5:"&"D"&(LOOKUP(2,1/(OriginalSubmission!D:D<>""),ROW(OriginalSubmission!D:D)))))
This comment was minimized by the moderator on the site
Hello, SARAH
Do you mean extracting each first character in cells from another worksheet? If so, you just need to copy and paste the code in this article, and then apply this formula into another sheet.
=GetFirstLetters(OriginalSubmission!D4)


Note: OriginalSubmission is the sheet name that you want to extract charatcers from.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
How to create space between the letters?

South Korea= S K
This comment was minimized by the moderator on the site
Hi, Gyawali
If you want to add space for each character, please apply the following VBA code:
Function GetFirstLetters(Rng As Range) As String
'Updateby Extendoffice
    Dim xStr
    Dim arr
    Dim I As Long
    xStr = " "
    arr = VBA.Split(Rng, " ")
    If IsArray(arr) Then
        For I = LBound(arr) To UBound(arr)
            GetFirstLetters = GetFirstLetters & Left(arr(I), 1) & xStr
        Next I
    Else
        GetFirstLetters = Left(arr, 1) & xStr
    End If
End Function


After insert the code, and then apply this formula: =GetFirstLetters(A2) to get the result you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Why is this giving me the first 2 letters in each word?
This comment was minimized by the moderator on the site
This is awesome. Such a time saver
This comment was minimized by the moderator on the site
This code is good for upto five words, where D20 is the cell with data.



=IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",
$D$20)+1)+1)+1)+1,1)),IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)),
IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)),
IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)),
IF(ISERR(LEFT($D$20,1)),"",LEFT($D$20,1)),LEFT($D$20,1)
&MID($D$20,SEARCH(" ",$D$20)+1,1)),LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)),
LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)),LEFT($D$20,1)
&MID($D$20,SEARCH(" ",$D$20)+1,1)&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)
+1)+1)+1,1))
This comment was minimized by the moderator on the site
Подскажите пожалуйста, можно ли модифицировать код чтобы забиралась не первые а Заглавные буквы?
This comment was minimized by the moderator on the site
i think it has one bug, it's automatically removed from module when sheet is closed, need to again every time when open sheet same process to be required, please advice how to save this formula in excel permanently.
This comment was minimized by the moderator on the site
Pls save excel as Excel Macro-Enablel work book.
This comment was minimized by the moderator on the site
Please include this part: If you create a function called DISCOUNT in a workbook called Personal.xlsb and you call that function from another workbook, you must type =personal.xlsb!discount(), not simply =discount(). https://support.office.com/en-us/article/Create-Custom-Functions-in-Excel-2007-2f06c10b-3622-40d6-a1b2-b6748ae8231f
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations