วิธีลบแถวว่างใน Excel ด้วย VBA สูตร และ Power Query

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

บทช่วยสอนนี้จะสอนเคล็ดลับง่ายๆ สองสามข้อในการลบแถวว่างหลายแถวใน Excel อย่างปลอดภัยโดยไม่สูญเสียข้อมูลแม้แต่นิดเดียว .

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

    วิธีที่จะไม่ลบบรรทัดว่างใน Excel

    มีสองสามวิธี วิธีต่างๆ ในการลบบรรทัดว่างใน Excel แต่แหล่งข้อมูลออนไลน์จำนวนมากกลับยึดติดกับสิ่งที่อันตรายที่สุด นั่นคือ ค้นหา & เลือก > ไปที่แบบพิเศษ > ช่องว่าง .

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

    ภาพด้านล่างแสดงตารางต้นฉบับทางด้านซ้ายและ ตารางผลลัพธ์ทางด้านขวา และในตารางผลลัพธ์ แถวที่ไม่สมบูรณ์ทั้งหมดหายไป แม้แต่แถว 10 ที่ขาดเพียงวันที่ในคอลัมน์ D:

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

    เมื่อเพิ่ม Ultimate Suite ลงใน Ribbon ของคุณ นี่คือวิธีที่คุณสามารถ ลบแถวว่างทั้งหมด ในเวิร์กชีต:

    1. บนแท็บ Ablebits Tools ในกลุ่ม Transform ให้คลิก Delete Blanks > แถวว่าง :
    2. ส่วนเสริมจะแจ้งให้คุณทราบว่าแถวว่างทั้งหมดจะถูกลบออกจากเวิร์กชีตที่ใช้งานอยู่และขอให้ยืนยัน คลิกตกลง จากนั้นแถวว่างทั้งหมดจะถูกตัดออก

    ดังที่แสดงในภาพหน้าจอด้านล่าง เราได้ลบเฉพาะ บรรทัดว่างทั้งหมด ที่ไม่มีเซลล์เดียวที่มีข้อมูล:

    หากต้องการค้นหา สำหรับคุณลักษณะที่ยอดเยี่ยมอื่นๆ ที่รวมอยู่ใน Ultimate Suite for Excel ของเรา คุณสามารถดาวน์โหลดเวอร์ชันทดลองใช้ได้

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

    ด้านล่าง

    วิธีลบแถวว่างใน Excel ด้วย VBA

    Excel VBA สามารถแก้ไขได้หลายอย่าง รวมถึงแถวว่างหลายๆ แถวด้วย สิ่งที่ดีที่สุดเกี่ยวกับแนวทางนี้คือไม่ต้องใช้ทักษะการเขียนโปรแกรมใดๆ เพียงหยิบหนึ่งในโค้ดด้านล่างและเรียกใช้ใน Excel ของคุณ (คำแนะนำอยู่ที่นี่)

    มาโคร 1. ลบบรรทัดว่างในช่วงที่เลือก

    โค้ด VBA นี้จะลบช่องว่างทั้งหมดอย่างเงียบ ๆ แถวในช่วงที่เลือก โดยไม่แสดงข้อความหรือกล่องโต้ตอบใดๆ แก่ผู้ใช้

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

    Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Set SourceRange = Application การเลือก ถ้าไม่ (SourceRange ไม่มีอะไร) จากนั้น Application.ScreenUpdating = False สำหรับ I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 จากนั้น EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    เพื่อให้ผู้ใช้มีโอกาส เลือกช่วงเป้าหมายหลังจากเรียกใช้แมโคร ให้ใช้รหัสนี้:

    สาธารณะ Sub RemoveBlankLines() หรี่ SourceRange เป็นช่วง หรี่ทั้งแถวเป็นช่วงเมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ตั้งค่า SourceRange = Application.InputBox( _"เลือกช่วง:" , "ลบแถวว่าง" , _ Application.Selection.Address ประเภท :=8) ถ้าไม่ใช่ (SourceRange Is Nothing ) จากนั้น Application.ScreenUpdating = False สำหรับ I = SourceRange.Rows.Count To 1 Step - 1 ตั้งค่า EntireRow = SourceRange.Cells(I, 1).EntireRow ถ้า Application.WorksheetFunction.CountA(EntireRow) = 0 จากนั้น EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

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

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

    มาโคร 2. ลบแถวว่างทั้งหมดใน Excel

    หากต้องการลบ แถวว่างทั้งหมด บน แผ่นงานที่ใช้งานอยู่ ให้กำหนดแถวสุดท้ายของช่วงที่ใช้ (เช่น แถวที่มี เซลล์สุดท้ายที่มีข้อมูล) จากนั้นขึ้นไปด้านบนเพื่อลบบรรทัดที่ CountA คืนค่าศูนย์:

    Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = Activ eSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False สำหรับ RowIndex = LastRowIndex ถึง 1 ขั้นตอน -1 ถ้า Application.CountA(Rows(RowIndex)) = 0 จากนั้น Rows(RowIndex) ลบจุดสิ้นสุด ถ้า Next RowIndex Application.ScreenUpdating = True End Sub

    มาโคร 3. ลบแถวถ้าเซลล์ว่าง

    ด้วยมาโครนี้ คุณสามารถลบทั้งแถวได้หากเซลล์ในเซลล์ที่ระบุคอลัมน์ว่างเปล่า

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

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

    วิธีลบบรรทัดว่างใน Excel ด้วย VBA

    หากต้องการลบแถวว่างใน Excel โดยใช้มาโคร คุณจะต้อง สามารถแทรกรหัส VBA ลงในสมุดงานของคุณเองหรือเรียกใช้แมโครจากสมุดงานตัวอย่างของเรา

    เพิ่มแมโครในสมุดงานของคุณ

    ในการแทรกแมโครในสมุดงานของคุณ ให้ทำตามขั้นตอนเหล่านี้:

    1. เปิดแผ่นงานที่คุณต้องการลบแถวว่าง
    2. กด Alt + F11 เพื่อเปิด Visual Basic Editor
    3. ในบานหน้าต่างด้านซ้าย คลิกขวา ThisWorkbook แล้วคลิก แทรก > โมดูล .
    4. วางโค้ดในหน้าต่างโค้ด
    5. กด F5 เพื่อเรียกใช้แมโคร

    สำหรับคำแนะนำทีละขั้นตอนโดยละเอียด โปรดดูวิธีแทรกและใช้ VBA ใน Excel

    เรียกใช้แมโครจากสมุดงานตัวอย่างของเรา

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

    ลบแถวว่าง - ลบแถวว่างในช่วงที่เลือกในปัจจุบัน

    ลบเส้นว่าง - ลบแถวว่างและเลื่อนขึ้นในช่วงที่คุณเลือกหลังจากเรียกใช้มาโคร

    DeleteAllEmptyRows - ลบบรรทัดว่างทั้งหมดในแผ่นงานที่ใช้งานอยู่

    DeleteRowIfCellBlank - ลบแถวหากเซลล์ในคอลัมน์หนึ่งว่างเปล่า

    หากต้องการเรียกใช้แมโครใน Excel ให้ทำดังต่อไปนี้:

    1. เปิด ดาวน์โหลดสมุดงานและเปิดใช้งานมาโครหากได้รับแจ้ง
    2. เปิดสมุดงานของคุณเองและไปที่แผ่นงานที่สนใจ
    3. ในแผ่นงานของคุณ กด Alt + F8 เลือกมาโคร แล้วคลิก เรียกใช้ .

    สูตรเพื่อลบแถวว่างใน Excel

    ในกรณีที่คุณต้องการดูว่าคุณกำลังลบอะไร ให้ใช้สูตรต่อไปนี้เพื่อระบุบรรทัดว่าง:

    =IF(COUNTA(A2:D2)=0, "Blank", "Not blank")

    โดยที่ A2 เป็นเซลล์แรกและ D2 เป็นเซลล์ที่ใช้สุดท้ายของแถวข้อมูลแรก

    ป้อนสูตรนี้ a ใน E2 หรือคอลัมน์ว่างอื่นๆ ในแถวที่ 2 แล้วลากจุดจับเติมเพื่อคัดลอกสูตรลงมา

    ผลลัพธ์คือ คุณจะมี "ว่าง" ในแถวว่างและ "ไม่ว่าง" ในแถว ที่มีอย่างน้อยหนึ่งเซลล์ที่มีข้อมูล:

    ตรรกะของสูตรนั้นชัดเจน: คุณนับเซลล์ที่ไม่ว่างด้วยฟังก์ชัน COUNTA และใช้คำสั่ง IF เพื่อส่งกลับ "ว่าง" สำหรับการนับศูนย์ หรือ "ไม่ว่าง" มิฉะนั้น .

    ในความจริงแล้ว คุณสามารถทำได้อย่างดีโดยไม่ต้องใช้ IF:

    =COUNTA(A2:D2)=0

    ในกรณีนี้ สูตรจะส่งกลับ TRUE สำหรับบรรทัดว่าง และ FALSE สำหรับบรรทัดที่ไม่ว่าง

    ด้วย สูตรอยู่ในตำแหน่ง ทำตามขั้นตอนเหล่านี้เพื่อลบบรรทัดว่าง:

    1. เลือกเซลล์ใดก็ได้ในแถวส่วนหัวและคลิก เรียงลำดับ & ตัวกรอง > ตัวกรอง บนแท็บ หน้าแรก ใน รูปแบบ ซึ่งจะเพิ่มลูกศรแบบเลื่อนลงสำหรับการกรองลงในเซลล์ส่วนหัวทั้งหมด
    2. คลิกลูกศรในส่วนหัวของคอลัมน์สูตร ยกเลิกการเลือก (เลือกทั้งหมด) เลือก ว่าง แล้วคลิก ตกลง :
    3. เลือกแถวที่กรองทั้งหมด . ในการทำเช่นนี้ ให้คลิกที่เซลล์แรกของแถวแรกที่กรองแล้วกด Ctrl + Shift + End เพื่อขยายการเลือกไปยังเซลล์สุดท้ายของแถวที่กรองล่าสุด
    4. คลิกขวาที่ส่วนที่เลือก เลือก ลบแถว จากเมนูบริบท จากนั้นยืนยันว่าคุณต้องการลบทั้งแถว:
    5. ลบตัวกรองโดยกด Ctrl + Shift + L หรือคลิกแท็บ หน้าแรก > จัดเรียง & ตัวกรอง > ตัวกรอง .
    6. ลบคอลัมน์ที่มีสูตร เนื่องจากคุณไม่จำเป็นต้องใช้อีกต่อไป

    นั่นแหละ! ด้วยเหตุนี้ เราจึงมีตารางที่สะอาดโดยไม่มีบรรทัดว่าง แต่ข้อมูลทั้งหมดจะถูกรักษาไว้:

    เคล็ดลับ แทนที่จะลบบรรทัดว่าง คุณสามารถ คัดลอกแถวที่ไม่ว่าง ไปที่อื่น หากต้องการดำเนินการ ให้กรองแถว "ไม่ว่าง" เลือกแล้วกด Ctrl + C เพื่อคัดลอก จากนั้นเปลี่ยนไปใช้อีกแผ่นหนึ่ง เลือกเซลล์ซ้ายบนของช่วงปลายทางแล้วกด Ctrl + V เพื่อวาง

    วิธีลบบรรทัดว่างใน Excel ด้วย Power Query

    ใน Excel 2016 และ Excel 2019 มีอีกวิธีหนึ่งในการลบแถวว่าง โดยใช้คุณลักษณะ Power Query ใน Excel 2010 และ Excel 2013 สามารถดาวน์โหลดเป็น Add-in ได้

    หมายเหตุสำคัญ! วิธีนี้ใช้ได้กับข้อแม้ต่อไปนี้: Power Query แปลงข้อมูลต้นฉบับเป็นตาราง Excel และเปลี่ยนการจัดรูปแบบ เช่น สีเติม เส้นขอบ และรูปแบบตัวเลขบางรูปแบบ หากการจัดรูปแบบข้อมูลต้นฉบับมีความสำคัญต่อคุณ คุณควรเลือกวิธีอื่นในการลบแถวว่างใน Excel

    1. เลือกช่วงที่คุณต้องการลบบรรทัดว่าง<19
    2. ไปที่แท็บ ข้อมูล > รับ & แปลง กลุ่มแล้วคลิก จากตาราง/ช่วง ซึ่งจะโหลดตารางของคุณไปยังตัวแก้ไข Power Query
    3. บนแท็บ หน้าแรก ของตัวแก้ไข Power Query คลิก ลบแถว > ลบแถวว่าง
    4. คลิกปุ่ม ปิด & โหลด ซึ่งจะโหลดตารางผลลัพธ์ไปยังแผ่นงานใหม่ และปิดตัวแก้ไขแบบสอบถาม

    ผลจากการปรับเปลี่ยนเหล่านี้ ฉันได้ตารางต่อไปนี้โดยไม่มีบรรทัดว่าง แต่มีการเปลี่ยนแปลงที่น่ารังเกียจสองสามอย่าง - รูปแบบสกุลเงินหายไปและวันที่จะแสดงในรูปแบบเริ่มต้น แทนที่จะเป็นแบบกำหนดเอง:

    วิธีลบแถว ifเซลล์ในบางคอลัมน์ว่างเปล่า

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

    ตามตัวอย่าง ลองลบแถวทั้งหมดที่เซลล์ในคอลัมน์ A ว่างเปล่า :

    1. เลือกคอลัมน์หลัก คอลัมน์ A ในกรณีของเรา
    2. ในแท็บ หน้าแรก ให้คลิก ค้นหา & เลือก > ไปที่แบบพิเศษ หรือกด F5 แล้วคลิกปุ่ม พิเศษ…
    3. ในกล่องโต้ตอบ ไปที่แบบพิเศษ เลือก ช่องว่าง แล้วคลิก ตกลง การดำเนินการนี้จะเลือกเซลล์ว่างในช่วงที่ใช้ในคอลัมน์ A
    4. คลิกขวาที่เซลล์ที่เลือกแล้วเลือก ลบ... จากเมนูบริบท
    5. ในกล่องโต้ตอบ ลบ เลือก ทั้งแถว แล้วคลิก ตกลง

    เสร็จแล้ว! แถวที่ไม่มีค่าในคอลัมน์ A ไม่มีอีกต่อไป:

    ผลลัพธ์เดียวกันสามารถทำได้โดยการกรองช่องว่างในคอลัมน์หลัก

    วิธีลบบรรทัดพิเศษด้านล่างข้อมูล

    บางครั้ง แถวที่ดูว่างเปล่าจริงๆ อาจมีบางรูปแบบหรืออักขระที่ไม่สามารถพิมพ์ได้ หากต้องการตรวจสอบว่าเซลล์สุดท้ายที่มีข้อมูลเป็นเซลล์ที่ใช้ล่าสุดในเวิร์กชีตของคุณจริงๆ หรือไม่ ให้กด Ctrl + End หากการดำเนินการนี้นำคุณไปยังแถวว่างด้านล่างข้อมูลของคุณ ในแง่ของ Excel แถวนั้นจะไม่ว่าง หากต้องการลบแถวดังกล่าว ให้ทำต่อไปนี้:

    1. คลิกส่วนหัวของแถวว่างแถวแรกที่อยู่ใต้ข้อมูลของคุณเพื่อเลือก
    2. กด Ctrl + Shift + End การดำเนินการนี้จะเลือกบรรทัดทั้งหมดที่มีสิ่งใดก็ตาม รวมทั้งรูปแบบ ช่องว่าง และอักขระที่ไม่พิมพ์
    3. คลิกขวาที่ส่วนที่เลือก แล้วเลือก ลบ… > ทั้งแถว<9

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

    1. เลือกแถวด้านล่างแถวสุดท้ายที่มีข้อมูลโดยคลิกส่วนหัว
    2. กด Ctrl + Shift + ลูกศรลง เพื่อขยายการเลือกไปยังแถวสุดท้ายในแผ่นงาน .
    3. กด Ctrl + 9 เพื่อซ่อนแถวที่เลือก หรือคลิกขวาที่ส่วนที่เลือก แล้วคลิก ซ่อน

    หากต้องการ ยกเลิกการซ่อนแถว ให้กด Ctrl + A เพื่อเลือกทั้งแผ่น จากนั้นกด Ctrl + Shift + 9 เพื่อทำให้บรรทัดทั้งหมดมองเห็นได้อีกครั้ง

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

    วิธีที่เร็วที่สุดในการลบแถวว่างใน Excel

    เมื่ออ่านตัวอย่างก่อนหน้านี้ รู้สึกเหมือนเรากำลังใช้ค้อนขนาดใหญ่ทุบถั่ว? ที่นี่ ที่ Ablebits เราไม่ต้องการ

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