
มีข้อมูลหลายร้อยแถวใน Google Sheets แล้วต้องการกรองเฉพาะบางแถว เรียงลำดับ หรือสรุปยอด แต่ไม่อยากใช้ Filter ด้วยมือหรือเขียนสูตร IF ซ้อนกันยาวๆ?
สูตร QUERY คือคำตอบ มันให้คุณเขียนคำสั่งคล้าย SQL เพื่อจัดการข้อมูลได้โดยตรงในเซลล์ ไม่ต้องรู้เรื่องโปรแกรมมิ่งก็ใช้ได้
QUERY คืออะไร
QUERY เป็นสูตรเฉพาะของ Google Sheets ที่ใช้ภาษาคิวรีคล้าย SQL ในการกรอง เรียง และสรุปข้อมูลจากตาราง ผลลัพธ์จะแสดงเป็นตารางใหม่ในตำแหน่งที่ใส่สูตร โดยไม่กระทบข้อมูลต้นฉบับ
โครงสร้างสูตร
=QUERY(ข้อมูล, คำสั่ง, [จำนวนหัวตาราง])
- ข้อมูล — ช่วงข้อมูลที่ต้องการค้นหา เช่น
A1:E100 - คำสั่ง — ประโยคคำสั่งในรูปแบบ Google Query Language ใส่ในเครื่องหมายคำพูด
- จำนวนหัวตาราง — ปกติใส่
1ถ้าแถวแรกของข้อมูลเป็น header
คำสั่งพื้นฐานที่ต้องรู้
SELECT — เลือกคอลัมน์
ใน QUERY คอลัมน์จะเรียกด้วยตัวอักษร A, B, C ตามลำดับของคอลัมน์ในช่วงข้อมูลที่เลือก
=QUERY(A1:D100, "SELECT A, B, C", 1)
ดึงเฉพาะคอลัมน์ A, B, C จากข้อมูลทั้งหมด
WHERE — กรองตามเงื่อนไข
=QUERY(A1:D100, "SELECT A, B, C WHERE C = 'กรุงเทพ'", 1)
กรองเฉพาะแถวที่คอลัมน์ C มีค่าเป็น “กรุงเทพ”
กรองตัวเลข
=QUERY(A1:D100, "SELECT A, B, D WHERE D > 10000", 1)
กรองเฉพาะแถวที่คอลัมน์ D มีค่ามากกว่า 10000
ORDER BY — เรียงลำดับ
=QUERY(A1:D100, "SELECT A, B, D ORDER BY D DESC", 1)
เรียงข้อมูลจากมากไปน้อยตามคอลัมน์ D ใช้ ASC สำหรับน้อยไปมาก
WHERE + AND / OR — หลายเงื่อนไข
=QUERY(A1:D100, "SELECT A, B, C, D WHERE C = 'กรุงเทพ' AND D > 5000", 1)
กรองแถวที่คอลัมน์ C เป็น “กรุงเทพ” และคอลัมน์ D มากกว่า 5000 พร้อมกัน
GROUP BY + SUM — สรุปยอดตามกลุ่ม
=QUERY(A1:D100, "SELECT C, SUM(D) GROUP BY C", 1)
สรุปยอดรวมคอลัมน์ D โดยจัดกลุ่มตามคอลัมน์ C เช่น รวมยอดขายแยกตามจังหวัด
LIMIT — จำกัดจำนวนแถว
=QUERY(A1:D100, "SELECT A, B, D ORDER BY D DESC LIMIT 10", 1)
แสดงเฉพาะ 10 แถวแรก เหมาะสำหรับดู Top 10
ตัวอย่างใช้งานจริง
สมมติมีข้อมูลยอดขายพนักงาน คอลัมน์ A คือชื่อพนักงาน B คือแผนก C คือเดือน D คือยอดขาย
ดูยอดขายของแผนกการตลาดเดือนมิถุนายน เรียงจากมากไปน้อย
=QUERY(A1:D200, "SELECT A, D WHERE B = 'การตลาด' AND C = 'มิถุนายน' ORDER BY D DESC", 1)
สรุปยอดขายรวมแยกตามแผนก
=QUERY(A1:D200, "SELECT B, SUM(D) GROUP BY B ORDER BY SUM(D) DESC", 1)
ข้อควรระวัง
- ข้อความต้องใช้เครื่องหมาย ‘ ‘ ครอบ ไม่ใช่ ” ” เช่น
WHERE B = 'การตลาด' - ตัวพิมพ์เล็กและใหญ่ในคำสั่งไม่สำคัญ — SELECT, select, Select ใช้ได้หมด
- ตัวเลขในคอลัมน์ต้องเป็นตัวเลขจริงๆ ถ้าเก็บเป็น text สูตรคำนวณจะผิดพลาด
- ถ้าช่วงข้อมูลมีขนาดใหญ่ ให้กำหนดให้ครอบคลุมพอดี อย่าใช้คอลัมน์ทั้งหมด เช่น A:D เพราะจะช้า
QUERY ต่างจาก Filter ธรรมดายังไง
- QUERY สร้างตารางผลลัพธ์ใหม่แยกจากข้อมูลต้นฉบับ ไม่ได้ซ่อนแถว
- ดึงได้หลายเงื่อนไขพร้อมกัน เรียงลำดับ และสรุปยอดในคำสั่งเดียว
- ผลลัพธ์อัปเดตอัตโนมัติเมื่อข้อมูลต้นฉบับเปลี่ยน
- สามารถดึงข้อมูลจากชีตอื่นได้โดยระบุชื่อชีตในช่วงข้อมูล
สรุป
QUERY เป็นหนึ่งในสูตรที่ทรงพลังที่สุดใน Google Sheets และเป็นสูตรที่ Excel ไม่มีเทียบเท่า ถ้าทำงานกับข้อมูลเยอะๆ และต้องกรองหรือสรุปยอดบ่อย ลงทุนเรียนรู้ QUERY สักครั้งจะช่วยประหยัดเวลาไปได้มากในระยะยาว เริ่มจาก SELECT และ WHERE ก่อน แล้วค่อยเพิ่ม GROUP BY เมื่อคุ้นเคยขึ้น





