วิธีลบอักขระพิเศษ / ไม่ต้องการใน Excel

  • แบ่งปันสิ่งนี้
Michael Brown

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

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

    ลบอักขระพิเศษออกจากเซลล์ Excel

    หากต้องการลบอักขระเฉพาะออกจากเซลล์ ให้แทนที่ด้วยสตริงว่างโดยใช้ฟังก์ชัน SUBSTITUTE ในรูปแบบที่ง่ายที่สุด:

    SUBSTITUTE( cell, char, "")

    ตัวอย่างเช่น หากต้องการลบเครื่องหมายคำถามออกจาก A2 สูตรใน B2 คือ:

    =SUBSTITUTE(A2, "?", "")

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

    ตัวอย่างเช่น ต่อไปนี้เป็นวิธีกำจัดเครื่องหมายคำถามที่กลับด้าน:

    =SUBSTITUTE(A2, "¿", "")

    แต่หากอักขระที่ไม่ต้องการ มองไม่เห็น หรือคัดลอกไม่ถูกต้อง คุณจะใส่อักขระนั้นลงในสูตรได้อย่างไร เพียงค้นหาหมายเลขรหัสโดยใช้ฟังก์ชัน CODE

    ในกรณีของเรา อักขระที่ไม่ต้องการ ("¿") จะอยู่ท้ายสุดในเซลล์ A2 ดังนั้นเราจึงใช้การรวมกันของฟังก์ชัน CODE และ RIGHT เพื่อดึงค่ารหัสเฉพาะ ซึ่งก็คือ 191:

    =CODE(RIGHT(A2))

    เมื่อคุณได้รับรหัสของอักขระแล้ว ให้แสดง CHAR ที่สอดคล้องกัน ฟังก์ชันตามสูตรทั่วไปด้านบน สำหรับชุดข้อมูลของเรา สูตรจะเป็นดังนี้:

    =SUBSTITUTE(A2, CHAR(191),"")

    หมายเหตุ ฟังก์ชัน SUBSTITUTE เป็น ตรงตามตัวพิมพ์ใหญ่-เล็ก ซึ่งหมายความว่าฟังก์ชันจะถือว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นอักขระที่แตกต่างกัน โปรดระลึกไว้เสมอว่าตัวอักษรที่คุณไม่ต้องการคือตัวอักษร

    ลบอักขระหลายตัวออกจากสตริง

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

    SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")

    ตัวอย่างเช่น หากต้องการลบเครื่องหมายอัศเจรีย์และเครื่องหมายคำถามตามปกติ รวมถึงเครื่องหมายกลับหัวออกจากสตริงข้อความใน A2 ให้ใช้สูตรนี้:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")

    สามารถทำได้โดยใช้ฟังก์ชัน CHAR โดยที่ 161 เป็นรหัสอักขระสำหรับ "¡" และ 191 เป็นรหัสอักขระสำหรับ "¿":

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")

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

    ลบอักขระที่ไม่ต้องการทั้งหมดในคราวเดียว

    โซลูชันนี้ใช้งานได้เฉพาะใน Excel สำหรับ Microsoft 365

    อย่างที่คุณทราบ Excel 365 มีฟังก์ชันพิเศษที่ช่วยให้คุณสามารถสร้างฟังก์ชันของคุณเองได้ รวมถึงฟังก์ชันที่คำนวณแบบวนซ้ำ ฟังก์ชันใหม่นี้มีชื่อว่า LAMBDA และคุณสามารถดูรายละเอียดทั้งหมดเกี่ยวกับฟังก์ชันนี้ได้ในบทช่วยสอนตามลิงก์ด้านบน ด้านล่าง ฉันจะอธิบายแนวคิดด้วยตัวอย่างที่ใช้งานได้จริงสองสามตัวอย่าง

    ฟังก์ชัน LAMBDA แบบกำหนดเองเพื่อ ลบอักขระที่ไม่ต้องการ มีดังนี้:

    =LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))

    เพื่อให้สามารถใช้ฟังก์ชันนี้ในเวิร์กชีตได้ คุณต้องตั้งชื่อก่อน ในการทำเช่นนี้ ให้กด Ctrl + F3 เพื่อเปิด Name Manager จากนั้นกำหนด New Name ด้วยวิธีนี้:

    1. ใน Name กล่อง ป้อนชื่อของฟังก์ชัน: RemoveChars .
    2. กำหนดขอบเขตเป็น Workbook .
    3. ใน Refers to วางสูตรด้านบน
    4. หรือป้อนคำอธิบายของพารามิเตอร์ในช่อง ความคิดเห็น พารามิเตอร์จะแสดงขึ้นเมื่อคุณพิมพ์สูตรในเซลล์
    5. คลิก ตกลง เพื่อบันทึกฟังก์ชันใหม่ของคุณ

    สำหรับคำแนะนำโดยละเอียด โปรดดูที่ วิธีตั้งชื่อฟังก์ชัน LAMBDA ที่กำหนดเอง

    เมื่อฟังก์ชันได้รับชื่อแล้ว คุณสามารถอ้างอิงถึงฟังก์ชันนั้นได้เหมือนกับสูตรทั่วไป

    จากมุมมองของผู้ใช้ ไวยากรณ์ของฟังก์ชันที่กำหนดเองของเรานั้นง่ายพอๆthis:

    RemoveChars(string, chars)

    Where:

    • String - เป็นสตริงดั้งเดิมหรือการอ้างอิงไปยังเซลล์/ช่วงที่มีสตริง ( s).
    • ตัวอักษร - อักขระที่จะลบ สามารถแสดงด้วยสตริงข้อความหรือการอ้างอิงเซลล์

    เพื่อความสะดวก เราป้อนอักขระที่ไม่ต้องการในบางเซลล์ เช่น D2 ในการลบอักขระเหล่านั้นออกจาก A2 สูตรคือ:

    =RemoveChars(A2, $D$2)

    เพื่อให้สูตรทำงานได้อย่างถูกต้อง โปรดสังเกตสิ่งต่อไปนี้:

    • ใน D2 อักขระจะแสดงโดยไม่มีการเว้นวรรค เว้นแต่คุณต้องการกำจัดการเว้นวรรคด้วย
    • ที่อยู่ของเซลล์ที่มีอักขระพิเศษจะถูกล็อคด้วยเครื่องหมาย $ ($D$2) เพื่อป้องกันไม่ให้การอ้างอิงเปลี่ยนแปลงเมื่อจัดการกับ สูตรไปยังเซลล์ด้านล่าง

    จากนั้นเราก็ลากสูตรลงมาและลบอักขระทั้งหมดที่อยู่ใน D2 ออกจากเซลล์ A2 ถึง A6:

    <3

    หากต้องการล้างหลายเซลล์ด้วยสูตรเดียว ให้ระบุช่วง A2:A6 สำหรับอาร์กิวเมนต์ที่ 1:

    =RemoveChars(A2:A6, D2)

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

    การลบชุดอักขระที่กำหนดไว้ล่วงหน้า

    หากต้องการลบชุดอักขระที่กำหนดไว้ล่วงหน้าของ คุณสามารถสร้างอักขระจากหลาย ๆ เซลล์ได้LAMBDA อื่นที่เรียกใช้ฟังก์ชันหลัก RemoveChars และระบุอักขระที่ไม่ต้องการในพารามิเตอร์ตัวที่ 2 ตัวอย่างเช่น:

    หากต้องการลบ อักขระพิเศษ เราได้สร้างฟังก์ชันที่กำหนดเองชื่อ RemoveSpecialChars :

    =LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))

    ถึง ลบตัวเลข ออกจากสตริงข้อความ เราได้สร้างอีกหนึ่งฟังก์ชันชื่อ RemoveNumbers :

    =LAMBDA(string, RemoveChars(string, "0123456789"))

    ทั้งสองฟังก์ชันข้างต้นนั้นง่ายมาก เพื่อใช้เนื่องจากต้องการเพียงหนึ่งอาร์กิวเมนต์ - สตริงต้นฉบับ

    หากต้องการกำจัด อักขระพิเศษ จาก A2 สูตรคือ:

    =RemoveSpecialChars(A2)

    หากต้องการลบเฉพาะ อักขระที่เป็นตัวเลข:

    =RemoveNumbers(A2)

    ฟังก์ชันนี้ทำงานอย่างไร:

    โดยพื้นฐานแล้ว ฟังก์ชัน RemoveChars จะวนซ้ำตามรายการของ ตัวอักษร และลบทีละอักขระ ก่อนการเรียกซ้ำแต่ละครั้ง ฟังก์ชัน IF จะตรวจสอบอักขระที่เหลืออยู่ ถ้าสตริง chars ไม่ว่างเปล่า (chars"") ฟังก์ชันจะเรียกตัวเอง ทันทีที่อักขระตัวสุดท้ายได้รับการประมวลผล สูตรจะส่งกลับ สตริง เป็นรูปแบบปัจจุบันและออก

    สำหรับรายละเอียดของสูตร โปรดดู LAMBDA แบบเรียกซ้ำเพื่อลบอักขระที่ไม่ต้องการ

    ลบอักขระพิเศษด้วย VBA

    ฟังก์ชันทำงานใน Excel ทุกรุ่น

    หากไม่มีฟังก์ชัน LAMBDA ใน Excel ก็ไม่มีอะไรมาขัดขวางคุณ จากการสร้างฟังก์ชันที่คล้ายกันกับ VBA ผู้ใช้กำหนดฟังก์ชัน (UDF) สามารถเขียนได้สองวิธี

    ฟังก์ชันกำหนดเองเพื่อลบอักขระพิเศษ recursive :

    โค้ดนี้จำลองตรรกะของฟังก์ชัน LAMBDA ที่กล่าวถึงข้างต้น

    ฟังก์ชัน RemoveUnwantedChars(str As String , chars As String ) ถ้า ( "" chars) จากนั้น str = แทนที่(str, ซ้าย(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) อื่น RemoveUnwantedChars = str End If End Function

    ฟังก์ชันกำหนดเองเพื่อลบอักขระพิเศษ ไม่เรียกซ้ำ :

    ที่นี่ เราจะหมุนเวียนอักขระที่ไม่ต้องการจาก 1 ถึง Len(chars) และแทนที่สิ่งที่พบในสตริงเดิมด้วยอะไร ฟังก์ชัน MID ดึงอักขระที่ไม่ต้องการทีละตัวและส่งต่อไปยังฟังก์ชันแทนที่

    ฟังก์ชัน RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, ดัชนี, 1), "" ) ถัดไป RemoveUnwantedChars = str สิ้นสุดฟังก์ชัน

    แทรกหนึ่งในรหัสข้างต้นในสมุดงานของคุณตามที่อธิบายไว้ในวิธีแทรกรหัส VBA ใน Excel และฟังก์ชันที่กำหนดเองของคุณพร้อมใช้งานแล้ว

    เพื่อไม่ให้สับสนระหว่างฟังก์ชันใหม่ที่กำหนดโดยผู้ใช้กับฟังก์ชันที่กำหนดโดยแลมบ์ดา เราจึงตั้งชื่อให้แตกต่างออกไป:

    RemoveUnwantedChars(string, chars)

    สมมติว่าสตริงเดิมอยู่ใน A2 และอักขระที่ไม่ต้องการใน D2 เราสามารถกำจัดพวกมันได้โดยใช้สูตรนี้:

    = RemoveUnwantedChars(A2, $D$2)

    กำหนดฟังก์ชันด้วยฮาร์ดโค้ดอักขระ

    หากคุณไม่ต้องการกังวลเกี่ยวกับการจัดหาอักขระพิเศษสำหรับแต่ละสูตร คุณสามารถระบุได้โดยตรงในรหัส:

    Function RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As ตัวอักษรยาว = "?¿!¡*%#$(){}[]^&/\~+-" สำหรับดัชนี = 1 ถึง Len(ตัวอักษร) str = แทนที่(str, กลาง(ตัวอักษร, ดัชนี, 1) , "" ) Next RemoveSpecialChars = str End Function

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

    chars = "?¿!¡*%#$(){}[]^&/\~+-"

    ฟังก์ชันที่กำหนดเองนี้มีชื่อว่า RemoveSpecialChars และต้องการเพียงหนึ่งตัว อาร์กิวเมนต์ - สตริงดั้งเดิม:

    RemoveSpecialChars(สตริง)

    หากต้องการตัดอักขระพิเศษออกจากชุดข้อมูล สูตรคือ:

    =RemoveSpecialChars(A2)

    ลบอักขระที่ไม่สามารถพิมพ์ได้ใน Excel

    Microsoft Excel มีฟังก์ชันพิเศษในการลบอักขระที่ไม่สามารถพิมพ์ได้ - ฟังก์ชัน CLEAN ในทางเทคนิค จะตัดอักขระ 32 ตัวแรกในชุด ASCII 7 บิต (รหัส 0 ถึง 31) ออก

    ตัวอย่างเช่น หากต้องการลบ อักขระที่ไม่สามารถพิมพ์ได้ จาก A2 นี่คือสูตรที่จะใช้ :

    =CLEAN(A2)

    การดำเนินการนี้จะกำจัดอักขระที่ไม่พิมพ์ แต่ช่องว่างก่อน/หลังข้อความและระหว่างคำจะยังคงอยู่

    ถึง กำจัด ช่องว่างเพิ่มเติม ล้อมสูตร CLEAN ในฟังก์ชัน TRIM:

    =TRIM(CLEAN(A2))

    ตอนนี้ นำหน้าและช่องว่างต่อท้ายจะถูกลบออก ในขณะที่ช่องว่างระหว่างช่องว่างจะถูกลดเหลืออักขระเว้นวรรคตัวเดียว:

    หากคุณต้องการลบ ช่องว่างทั้งหมด ภายใน สตริง จากนั้นแทนที่อักขระช่องว่างเพิ่มเติม (รหัสหมายเลข 32) ด้วยสตริงว่าง:

    =TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))

    ช่องว่างบางส่วนหรืออักขระที่มองไม่เห็นอื่นๆ ยังคงอยู่ใน แผ่นงานของคุณ? ซึ่งหมายความว่าอักขระเหล่านั้นมีค่าต่างกันในชุดอักขระ Unicode

    ตัวอย่างเช่น รหัสอักขระของ ช่องว่างที่ไม่แบ่ง ( ) คือ 160 และคุณสามารถลบออกโดยใช้สูตรนี้:

    =SUBSTITUTE(A2, CHAR(160)," ")

    ในการลบ อักขระที่ไม่พิมพ์เฉพาะ คุณต้องหาค่ารหัสก่อน คำแนะนำโดยละเอียดและตัวอย่างสูตรอยู่ที่นี่: วิธีลบอักขระเฉพาะที่ไม่มีการพิมพ์

    ลบอักขระพิเศษด้วย Ultimate Suite

    รองรับ Excel สำหรับ Microsoft 365, Excel 2019 - 2010

    ในตัวอย่างสุดท้ายนี้ ผมขอแสดงวิธีที่ง่ายที่สุดในการลบอักขระพิเศษใน Excel เมื่อติดตั้ง Ultimate Suite แล้ว นี่คือสิ่งที่คุณต้องทำ:

    1. ในแท็บ Ablebits Data ในกลุ่ม Text คลิก ลบ > ลบอักขระ .

  • ในบานหน้าต่างของ Add-in เลือกช่วงแหล่งที่มา เลือก ลบ ชุดอักขระ และเลือกตัวเลือกที่ต้องการจากรายการดร็อปดาวน์ ( สัญลักษณ์และเครื่องหมายวรรคตอน ในนี้ตัวอย่าง).
  • กดปุ่ม ลบ ปุ่ม
  • ในอีกสักครู่ คุณจะได้ผลลัพธ์ที่สมบูรณ์แบบ:

    หากมีสิ่งผิดพลาด ไม่ต้องกังวล สำเนาสำรองของเวิร์กชีตของคุณจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อเลือกช่อง สำรองเวิร์กชีตนี้ ตามค่าเริ่มต้น

    อยากลองใช้เครื่องมือ Remove ของเราไหม ลิงก์ไปยังรุ่นทดลองใช้อยู่ด้านล่าง ขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    ดาวน์โหลดได้

    ลบอักขระพิเศษ - ตัวอย่าง (ไฟล์ .xlsm)

    Ultimate Suite - ทดลองใช้ รุ่น (ไฟล์ .exe)

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