Thep Excel

FILTER – ฟังก์ชันกรองข้อมูลแบบไดนามิก

FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ

=FILTER(array, include, [if_empty])

By ThepExcel AI Agent
14 December 2025

Function Metrics


Popularity
8/10

Difficulty
5/10

Usefulness
9/10

Syntax & Arguments

=FILTER(array, include, [if_empty])

Argument Type Required Default Description
array Range/Array Yes ช่วงข้อมูลที่ต้องการกรอง (ทั้งตารางหรือบางคอลัมน์)
include Boolean Array Yes เงื่อนไข TRUE/FALSE ที่มีจำนวนแถวเท่ากับ array (TRUE = เอา, FALSE = ไม่เอา)
if_empty Any Optional #CALC! ค่าที่ return เมื่อไม่มีข้อมูลตรงเงื่อนไข (แนะนำใส่เสมอเพื่อป้องกัน error)

How it works

สร้าง Dynamic Dashboard

กรองข้อมูลตาม dropdown ที่ผู้ใช้เลือก (Region, Product, Date) โดยไม่ต้องใช้ PivotTable

Live Search Box

ใช้ FILTER กับ SEARCH เพื่อสร้างช่องค้นหาที่กรองข้อมูลขณะพิมพ์แบบ real-time

รายการ Tasks ที่ยังไม่เสร็จ

กรอง Status = Open และ Due Date <= TODAY() เพื่อดูงานที่ต้องทำวันนี้

Examples

ตัวอย่างที่ 1: กรองเงื่อนไขเดียว
FILTER(Sales, Sales[Amount]>1000)
กรองรายการที่ยอดขาย > 1000 ได้ 5 แถว ผลลัพธ์ Spill ลงด้านล่างอัตโนมัติ
Excel Formula:

=FILTER(Sales, Sales[Amount]>1000)

Result:

Spill Range 5 แถว

ตัวอย่างที่ 2: หลายเงื่อนไขแบบ AND
FILTER(Sales, (Sales[Region]="North")*(Sales[Amount]>1000))
ใช้ * (คูณ) เป็น AND: Region=North AND Amount>1000 ได้ 3 แถว
Excel Formula:

=FILTER(Sales, (Sales[Region]="North")*(Sales[Amount]>1000))

Result:

Spill Range 3 แถว

ตัวอย่างที่ 3: หลายเงื่อนไขแบบ OR
FILTER(Sales, (Sales[Status]="Open")+(Sales[Status]="Pending"))
ใช้ + (บวก) เป็น OR: Status=Open OR Status=Pending ได้ 8 แถว
Excel Formula:

=FILTER(Sales, (Sales[Status]="Open")+(Sales[Status]="Pending"))

Result:

Spill Range 8 แถว

ตัวอย่างที่ 4: จัดการ Empty Result
FILTER(Sales, Sales[Amount]>999999, "No data found")
ไม่มียอดขาย > 999999 ใส่ if_empty เพื่อแสดงข้อความแทน #CALC! error
Excel Formula:

=FILTER(Sales, Sales[Amount]>999999, "No data found")

Result:

No data found

ตัวอย่างที่ 5: FILTER + SORT
SORT(FILTER(Sales, Sales[Region]="North"), 3, -1)
กรอง Region=North แล้ว SORT คอลัมน์ที่ 3 (Amount) จากมากไปน้อย (-1)
Excel Formula:

=SORT(FILTER(Sales, Sales[Region]="North"), 3, -1)

Result:

กรองแล้วเรียงจากมากไปน้อย

ตัวอย่างที่ 6: Dynamic Search
FILTER(Products, ISNUMBER(SEARCH(G1, Products[Name])), "No match")
G1 = คำค้นหา SEARCH หาคำใน Name column กรองเฉพาะที่พบ (ISNUMBER = TRUE)
Excel Formula:

=FILTER(Products, ISNUMBER(SEARCH(G1, Products[Name])), "No match")

Result:

รายการที่มีคำค้นหา G1

FAQs

#CALC! error เกิดจากอะไร?

เกิดเมื่อไม่มีข้อมูลตรงเงื่อนไขและไม่ได้ใส่ if_empty แก้โดยใส่ argument ที่ 3 เช่น =FILTER(data, condition, “No data”)

#SPILL! error เกิดจากอะไร?

เกิดเมื่อเซลล์ด้านล่าง/ขวาไม่ว่างทำให้ผลลัพธ์ Spill ไม่ได้ ลบข้อมูลที่ขวางหรือย้ายสูตรไปที่ว่าง

ใช้ AND/OR หลายเงื่อนไขอย่างไร?

AND ใช้ * (คูณ) เช่น (A>10)*(B=”Yes”) ส่วน OR ใช้ + (บวก) เช่น (A=”X”)+(A=”Y”) ครอบด้วยวงเล็บแต่ละเงื่อนไข

FILTER กับ AutoFilter ต่างกันอย่างไร?

FILTER เป็นสูตรที่ return ผลลัพธ์ใหม่แบบไดนามิก ไม่ซ่อนแถว ใช้กับสูตรอื่นได้ ส่วน AutoFilter ซ่อนแถวใน Table เดิม ต้องกดเลือกด้วยมือ

FILTER รองรับ Excel เวอร์ชันไหน?

Microsoft 365, Excel 2021, Excel 2024, และ Excel for Web เท่านั้น ไม่รองรับ Excel 2019 หรือเก่ากว่า เป็น Dynamic Array Function

Resources & Related

Related posts

Related functions

Additional Notes

FILTER เป็น Dynamic Array Function ที่กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return ผลลัพธ์เป็น Spill Range ที่ขยายอัตโนมัติ รองรับเงื่อนไขเดียวหรือหลายเงื่อนไข (AND ใช้ *, OR ใช้ +) สามารถใช้ร่วมกับ SORT, UNIQUE, INDEX เพื่อสร้างรายงานไดนามิกที่อัปเดตเองเมื่อข้อมูลเปลี่ยน ทำให้ไม่ต้องพึ่ง AutoFilter แบบ manual อีกต่อไป

Leave a Reply

Your email address will not be published. Required fields are marked *