Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

ฟังก์ชัน FILTER ใน Microsoft Excel เป็นฟังก์ชันสำคัญที่สุดที่ต้องเชี่ยวชาญ ไม่มีมัน จะหาข้อมูลที่ต้องการยากมาก นี่คือ Crash course ใช้ FILTER ใน Excel

ควรทราบ: FILTER ไม่ใช่วิธีเดียวกรองข้อมูล มี Auto Filter และ Advanced Filter ทำได้เหมือนกัน แต่มีข้อแตกต่างสำคัญ จะอภิปรายในบทความ

ฟังก์ชัน FILTER คืออะไร?

Functions/Excel Formulas เป็นหัวใจของ Excel: หาค่าเฉลี่ยข้อมูลมาก สร้างกราฟ Bell curve ฯลฯ แต่ละฟังก์ชันมี Syntax ตรวจสอบได้พิมพ์ชื่อฟังก์ชันใน Excel

Excel FILTER function "กรอง" ค่าของ Range ที่ระบุ ตามเงื่อนไข Range และ Conditions ใส่พร้อมฟังก์ชัน → ปรับแต่งได้ยืดหยุ่น

พารามิเตอร์ถูกต้อง → ดึงข้อมูลที่ต้องการพอดี ไม่ต้องเลื่อนหา Manual Output อยู่ใน Cell → Chain ฟังก์ชันอื่น คำนวณ/สร้างกราฟต่อได้

ทำไม FILTER ดีกว่า Advanced Filter?

มือใหม่ Excel ชอบ Built-in Data filtering tools แทนการเรียน Syntax Auto Filter ง่าย: Exclude columns, ตั้ง Criteria จาก Menu Advanced Filter: ใช้ Multiple criteria สำหรับ Complex filtering

ทำไมต้องใช้ FILTER function?

ข้อได้เปรียบหลัก: Functions เป็น Dynamic (ไดนามิก) Auto/Advanced Filter ให้ผลลัพธ์ครั้งเดียว (One-off) ไม่เปลี่ยนเมื่อ Source data เปลี่ยน FILTER function → อัปเดตผลลัพธ์อัตโนมัติ เมื่อข้อมูลเปลี่ยน

Syntax ของ FILTER Function

Syntax ง่าย:

=FILTER(array, include, [if_empty])

  • Array: ช่วงสี่เหลี่ยมของ Spreadsheet ระบุ Top-left cell ถึง Bottom-right cell เช่น A3:E10 (คอลัมน์ A-E, แถว 3-10)
  • Include: เงื่อนไข หรือ Boolean array ใส่เป็น Expression ประเมินค่า Range (มักเป็นคอลัมน์) คืน TRUE/FALSE เช่น A3:A10="Pass" คืน TRUE ถ้า Cell match string
  • [if_empty]: ค่าที่คืนเมื่อไม่มีแถว Match เงื่อนไข เช่น "No Records Found"

Related: ต้องการดูว่า Sample data ตรง Dataset ใหญ่แค่ไหน? อ่านคู่มือคำนวณ Standard Error ใน Excel

รู้ Syntax แล้ว ลองใช้ FILTER จริง

Sample data: Array A2:F11 คะแนน Biology 10 คน พร้อม Normal distribution

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

เขียนฟังก์ชันกรองจากคะแนนสอบ (คอลัมน์ D) คืนเฉพาะคะแนน < 30 Syntax:

=FILTER(A2:F11, D2:D11<30, "No Matches Found")

ผลลัพธ์เป็น Subset ของ Array ใช้ฟังก์ชันใน Cell ที่มีพื้นที่ด้านล่างพอ เราจะทำใต้ตารางเดิม:

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

ได้ผลลัพธ์ที่คาดหวัง: รายการคะแนน < 30 แสดงในรูปแบบตารางเดียวกัน

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

ไม่จำกัดเงื่อนไขเดียว ใช้ AND operator (*) Chain Multiple expressions เป็นพารามิเตอร์เดียว → Complex filter

ลองกรองคะแนนระหว่าง 30-70 Syntax และผลลัพธ์:

=FILTER(A2:F11, (D2:D11>30)*(D2:D11<70), "No Matches Found")

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

Non-exclusive criteria: ใช้ OR operator (+) Match ถ้าเงื่อนไขไหนตัวไหน TRUE

หา Outliers: คะแนน < 15 หรือ > 70

=FILTER(A2:F11, (D2:D11<30)+(D2:D11>70), "No Records Found")

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

แทนค่าเดียว/สตริง ตอนไม่เจอ ให้ระบุค่าทุกคอลัมน์ → Output format คงที่

ลองเงื่อนไขเท็จ ดู Default format:

=FILTER(A2:F11, D2:D11>90, "No Matches Found")

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

ผลลัพธ์แค่ String เดียว ไม่สอดคล้อง Format ที่คาดหวัง ปัญหา ถ้าเอา Result ไปคำนวณต่อ
ลองใส่ Default values ทุกคอลัมน์ ใส่ค่าคั่นคอมม่า ใน Curly braces:

=FILTER(A2:F11, D2:D11>90, {"No Record", "No Record", "No Record", 0})

เชี่ยวชาญฟังก์ชัน FILTER ของ Excel: คู่มือด่วนกรองข้อมูลแบบไดนามิก

ผลลัพธ์สวยงาม สอดคล้อง Format Spreadsheet

FILTER Function คุ้มค่าหรือไม่?

แม้ใช้ Excel แค่จัดเก็บบันทึก ไม่อยากคำนวณซับซ้อน FILTER ยังคงเป็นฟังก์ชันน้อยๆ ที่ควรเรียน เพราะ Workbook ใหญ่ → หาข้อมูล Manual เจ็บปวด Auto/Advanced Filter ใช้งานได้ แต่ Function สะดวกกว่า Long-run: ผลลัพธ์อัปเดตเอง + Chain ฟังก์ชันอื่นได้