หน้าแรก บทความ Microsoft
Microsoft

SUBTOTAL ใน Excel รวมยอดเฉพาะแถวที่กรองไว้ ไม่นับแถวที่ซ่อน

เผยแพร่ 29 ส.ค. 69

เวลากรองข้อมูลด้วย AutoFilter แล้วอยากได้ยอดรวมเฉพาะแถวที่มองเห็น สูตร SUM ธรรมดาจะรวมทุกแถวรวมถึงแถวที่ถูกซ่อนไว้ด้วย สูตร SUBTOTAL แก้ปัญหานี้ได้ มันคำนวณเฉพาะแถวที่แสดงอยู่ และยังฉลาดพอที่จะไม่นับผลลัพธ์ SUBTOTAL ตัวอื่นซ้ำ

รูปแบบของสูตร SUBTOTAL

=SUBTOTAL(หมายเลขฟังก์ชัน, ช่วงข้อมูล)

หมายเลข เทียบเท่า หมายเลข (ซ่อนแถวเองก็ไม่นับ)
1 AVERAGE 101
2 COUNT (นับตัวเลข) 102
3 COUNTA (นับที่ไม่ว่าง) 103
4 MAX 104
5 MIN 105
9 SUM 109

ชุด 1–11 กับชุด 101–111 ต่างกันตรงที่ ชุด 101–111 จะไม่นับแถวที่เราสั่งซ่อนเอง (คลิกขวา → Hide) ด้วย ส่วนแถวที่ถูกซ่อนเพราะตัวกรอง ทั้งสองชุดไม่นับเหมือนกัน

ตัวอย่างที่ 1: ยอดรวมที่วิ่งตามตัวกรอง

C9fx=SUBTOTAL(9,C2:C7)
A B C
1 วันที่ หมวด ยอด
2 1 ส.ค. อาหาร 250
4 3 ส.ค. อาหาร 180
7 6 ส.ค. อาหาร 320
9 รวมเฉพาะที่กรอง (หมวดอาหาร) 750

เมื่อกรองเหลือเฉพาะหมวด “อาหาร” (แถว 3, 5, 6 ถูกซ่อน) SUBTOTAL รวมเฉพาะ 250 + 180 + 320 = 750 ถ้าเปลี่ยนตัวกรอง ตัวเลขนี้อัปเดตตามทันที ต่างจาก =SUM(C2:C7) ที่จะรวมทุกแถวเสมอ

ตัวอย่างที่ 2: 9 กับ 109 เมื่อซ่อนแถวเอง

สถานการณ์ =SUBTOTAL(9,…) =SUBTOTAL(109,…)
แถวถูกซ่อนโดยตัวกรอง ไม่นับ ไม่นับ
แถวถูกซ่อนโดยคลิกขวา Hide ยังนับอยู่ ไม่นับ

ถ้าทำรายงานที่ผู้ใช้อาจซ่อนแถวเองเพื่อดูเฉพาะบางส่วน แนะนำใช้ชุด 101–111

ตัวอย่างที่ 3: ลำดับที่ของแถวที่มองเห็น

A2fx=SUBTOTAL(3,$B$2:B2)
A B
1 ลำดับ รายการ
2 1 ปากกา
4 2 สมุด
5 3 ยางลบ

ช่วงอ้างอิงล็อกหัวไว้ที่ $B$2 แล้วปลายขยับตามแถว ทำให้ได้เลขลำดับที่นับเฉพาะแถวที่ยังโชว์อยู่ ถ้ากรองข้อมูลออกไป เลขลำดับก็ยังเรียง 1, 2, 3 ต่อเนื่องไม่ขาด

SUBTOTAL กับ AGGREGATE ต่างกันอย่างไร

AGGREGATE ทำได้ทุกอย่างที่ SUBTOTAL ทำ และเพิ่มความสามารถข้าม Error กับเลือกฟังก์ชันได้มากกว่า (เช่น LARGE, SMALL, PERCENTILE) แต่ SUBTOTAL ใช้ง่ายและเป็นตัวที่ Excel ใส่ให้อัตโนมัติเมื่อกดเมนู Data → Subtotal หรือใช้ Total Row ของ ตาราง (Table)

ข้อควรรู้

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line