Skip to content

FILTER, SORT, QUERY

ฟังก์ชันวิเคราะห์ข้อมูลแบบ Dynamic

Section titled “ฟังก์ชันวิเคราะห์ข้อมูลแบบ Dynamic”

ต่างจากการใช้เมนู Data > Filter ที่เปลี่ยนมุมมองของตารางเดิม — ฟังก์ชัน FILTER(), SORT(), QUERY() สร้างผลลัพธ์ใหม่ที่อัปเดตอัตโนมัติเมื่อข้อมูลต้นทางเปลี่ยน

FILTER() — กรองข้อมูลด้วยเงื่อนไข

Section titled “FILTER() — กรองข้อมูลด้วยเงื่อนไข”
=FILTER(range, condition1, [condition2, ...])

ตัวอย่างข้อมูล

Section titled “ตัวอย่างข้อมูล”

สมมติมีข้อมูลขายสินค้าใน A1:D100:

ProductCategoryPriceQty
Widget AElectronics50010
Gadget BElectronics12005
Book CStationery15050
=FILTER(A2:D100, C2:C100 > 200)
→ แสดงเฉพาะแถวที่ Price > 200
=FILTER(A2:D100, B2:B100 = "Electronics")
→ แสดงเฉพาะ Electronics
=FILTER(A2:D100, B2:B100 = "Electronics", C2:C100 > 300)
→ Electronics ที่ราคา > 300 (AND condition)
=FILTER(A2:D100, (B2:B100 = "Electronics") + (B2:B100 = "Stationery"))
→ Electronics หรือ Stationery (OR condition ใช้ +)

SORT() — เรียงข้อมูล

Section titled “SORT() — เรียงข้อมูล”
=SORT(range, sort_column, is_ascending)
=SORT(A2:D100, 3, FALSE)
→ เรียงตาม Column 3 (Price) จากมากไปน้อย
=SORT(A2:D100, 2, TRUE, 3, FALSE)
→ เรียงตาม Category (A-Z) แล้วตาม Price (มาก→น้อย)

UNIQUE() — ลบรายการซ้ำ

Section titled “UNIQUE() — ลบรายการซ้ำ”
=UNIQUE(B2:B100)
→ แสดง Category ที่ไม่ซ้ำกัน
=SORT(UNIQUE(B2:B100))
→ แสดง Category ไม่ซ้ำ เรียง A-Z

QUERY() เป็นฟังก์ชันที่ทรงพลังที่สุดใน Google Sheets — ใช้ภาษาคล้าย SQL เลือก กรอง เรียง และสรุปข้อมูลในสูตรเดียว

=QUERY(data, query_string, [headers])
=QUERY(A1:D100, "SELECT A, B WHERE C > 100")
→ เลือกเฉพาะ Column A, B ที่ C > 100
=QUERY(A1:D100, "SELECT B, SUM(C) GROUP BY B")
→ ยอดรวม Price ตาม Category
=QUERY(A1:D100, "SELECT B, AVG(C) GROUP BY B ORDER BY AVG(C) DESC")
→ ราคาเฉลี่ยตาม Category เรียงจากมากไปน้อย
=QUERY(A1:D100, "SELECT A, C WHERE B = 'Electronics' ORDER BY C DESC LIMIT 5")
→ Top 5 สินค้า Electronics ราคาสูงสุด
=QUERY(A1:D100, "SELECT B, COUNT(A) GROUP BY B LABEL COUNT(A) 'จำนวน'")
→ นับจำนวนสินค้าแต่ละ Category พร้อมตั้งชื่อหัวคอลัมน์
=QUERY(A1:D100, "SELECT * WHERE B = '"&F1&"'")
→ กรองตาม Category ที่ผู้ใช้พิมพ์ใน F1
=QUERY(A1:D100, "SELECT * WHERE C > "&G1)
→ กรองตาม Price ที่ผู้ใช้ใส่ใน G1
ฟังก์ชันใช้ทำอะไรเทียบกับ SQL
FILTER()กรองแถวตามเงื่อนไขWHERE
SORT()เรียงลำดับORDER BY
UNIQUE()ลบรายการซ้ำDISTINCT
QUERY()ทำได้ทุกอย่างข้างบน + GROUP BYSELECT …