- คำสั่ง QUERY ช่วยให้คุณสามารถกรอง จัดเรียง และสรุปข้อมูลได้โดยไม่ต้องแก้ไขช่วงข้อมูลเดิม
- ส่วนหัวและชนิดข้อมูลมีผลต่อผลลัพธ์ โดยเฉพาะอย่างยิ่งเมื่อมีค่าข้อมูลบางส่วนหายไป
- อาร์เรย์แบบผสมใช้ตัวระบุตำแหน่ง ซึ่งต้องตรวจสอบใหม่หากโครงสร้างมีการเปลี่ยนแปลง
- ควรตรวจสอบหาข้อผิดพลาดก่อนที่จะซ่อนข้อผิดพลาดเหล่านั้น เพื่อไม่ให้เกิดความสับสนระหว่างสูตรที่ไม่ถูกต้องกับคำสั่งค้นหาที่ไม่มีผลลัพธ์ที่ตรงกัน
La ฟังก์ชัน QUERY ของ Google Sheets permite seleccionar columnas, filtrar registros, ordenar resultados y calcular resúmenes mediante una fórmula. Resulta útil cuando necesitas generar un informe que dependa de los datos de otra tabla sin modificar el contenido original.
Su consulta utiliza el lenguaje de Google Visualization, con una sintaxis parecida a SQL. Para empezar no necesitas conocer todo ese lenguaje: puedes construir una consulta sencilla y añadir condiciones o agrupaciones a medida que las necesites.
ไวยากรณ์คำสั่ง QUERY ใน Google Sheets และตัวอย่างแรก

โครงสร้างของฟังก์ชันมีอาร์กิวเมนต์สามตัว:
=QUERY(datos; consulta; encabezados)
- ข้อมูล: ช่วงหรือเมทริกซ์ที่คุณต้องการค้นหา
- การปรึกษาหารือ: คำสั่งที่อยู่ในเครื่องหมายอัญประกาศหรือการอ้างอิงถึงเซลล์ที่มีคำสั่งเหล่านั้นอยู่
- หัวข้อ: จำนวนแถวเริ่มต้นในช่วงข้อมูลที่เป็นหัวเรื่อง ใช้ 1 หากมีแถวหัวเรื่อง และ 0 หากไม่มี หากคุณละเว้นหรือป้อน -1 โปรแกรม Sheets จะพยายามเดา
ในตัวอย่างต่อไปนี้ เราจะใช้ตารางที่มีโครงสร้างดังนี้:
| A: วันที่ | บี: ลูกค้า | C: รัฐ | D: จำนวนเงิน | อี: ช่องทาง |
|---|---|---|---|---|
| 01/10/2026 | แอนน์ | เต็มแล้ว | 100 | เว็บ |
| 02/10/2026 | หลุยส์ | ต่างหู | 80 | เก็บ |
| 03/10/2026 | แอนน์ | เต็มแล้ว | 50 | เก็บ |
| 04/10/2026 | มาร์เทน | เต็มแล้ว | 200 | เว็บ |
| 05/10/2026 | หลุยส์ | ยกเลิก | 40 | เว็บ |
ส่วนหัวของตารางอยู่ในแถวที่ 1 และข้อมูลทั้งห้าส่วนจะอยู่ในแถวที่ 2 ถึง 6 หากต้องการแสดงผลตารางทั้งหมด ให้เขียนสูตรลงในพื้นที่ว่าง เช่น G1:
=QUERY(A1:E6;"select *";1)
ตัวอย่างที่ใช้ เครื่องหมายเซมิโคลอนคั่นระหว่างอาร์กิวเมนต์หากไฟล์ของคุณใช้เครื่องหมายจุลภาค โปรดปรับเครื่องหมายเหล่านั้น เครื่องหมายจุลภาคในข้อความแบบสอบถาม เช่น select B, Dสิ่งเหล่านี้ต้องได้รับการอนุรักษ์ไว้
เลือกคอลัมน์ กรอง และจัดเรียงผลลัพธ์

ข้อกำหนด เลือก วิธีนี้ช่วยให้คุณเลือกคอลัมน์ได้ หากต้องการแสดงเฉพาะชื่อลูกค้าและจำนวนเงิน:
=QUERY(A1:E6;"select B, D";1)
กับ ที่ไหน คุณสามารถจำกัดการแสดงข้อมูลเฉพาะคำสั่งซื้อที่เสร็จสมบูรณ์ได้:
=QUERY(A1:E6;"select B, D where C = 'Completado'";1)
ตัวอย่างนี้แสดงผลลัพธ์การดำเนินการทั้งสองของอนาและมาร์ตา การเพิ่ม สั่งซื้อโดย คุณสามารถเรียงลำดับตามจำนวนจากมากไปน้อยได้:
=QUERY(A1:E6;"select B, D where C = 'Completado' order by D desc";1)
คุณสามารถรวมเงื่อนไขต่างๆ เข้าด้วยกันได้:
=QUERY(A1:E6;"select B, D where C = 'Completado' and D >= 100 order by D desc";1)
คำสั่งค้นหาสุดท้ายนี้จะคืนค่า Marta ที่ได้ 200 และ Ana ที่ได้ 100 ตัวเลขจะถูกเปรียบเทียบโดยไม่ต้องใส่เครื่องหมายคำพูด ส่วนค่าข้อความจะเขียนไว้ระหว่างเครื่องหมายคำพูดเดี่ยวในคำสั่งค้นหา
จัดกลุ่มจำนวนเงินด้วยคำสั่ง GROUP BY และแก้ไขส่วนหัว
เพื่อให้ได้ยอดรวมต่อลูกค้าแต่ละราย ให้รวมผลลัพธ์เข้าด้วยกัน จัดกลุ่มตาม กับ ผลรวม():
=QUERY(A1:E6;"select B, sum(D) group by B label sum(D) 'Importe total'";1)
El resultado muestra 150 para Ana, 120 para Luis y 200 para Marta. En este caso se incluyen todos los estados porque no hemos añadido un filtro.
Si solo quieres sumar pedidos completados:
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B order by sum(D) desc label sum(D) 'Ventas completadas'";1)
คุณสามารถใช้การรวมข้อมูลแบบอื่นได้ เช่น avg(), count(), min() y max()เมื่อคุณจัดกลุ่ม คอลัมน์ที่เลือกซึ่งไม่ได้ถูกรวมเข้าด้วยกันจะต้องเป็นส่วนหนึ่งของกลุ่มนั้น group by.
จำไว้ว่า count(D) นับค่าที่ไม่เป็นค่าว่างของ Dฟังก์ชันนี้ไม่ได้รวมยอดทั้งหมด หากต้องการนับจำนวนธุรกรรม โปรดเลือกคอลัมน์ที่เหมาะสม
ใช้คำสั่ง PIVOT, LIMIT และ OFFSET
ข้อกำหนด หมุน แปลงค่าของฟิลด์ให้เป็นคอลัมน์ ตัวอย่างเช่น คุณสามารถกระจายยอดขายที่เสร็จสมบูรณ์ของลูกค้าแต่ละรายระหว่างเว็บไซต์และร้านค้าได้:
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B pivot E";1)
เพื่อให้ได้เฉพาะสามจำนวนสูงสุด ให้ใช้ ขีดจำกัด หลังจากสั่งซื้อ:
=QUERY(A1:E6;"select B, D order by D desc limit 3";1)
กับ ออฟเซ็ต คุณสามารถละเว้นแถวจากผลลัพธ์ได้ คำสั่ง SQL นี้จะข้ามสองรายการแรกในการเรียงลำดับและส่งคืนสองรายการถัดไป:
=QUERY(A1:E6;"select B, D order by D desc limit 2 offset 2";1)
ข้อความต่างๆ ต้องเรียงลำดับให้ถูกต้อง: select, where, group by, pivot, order by, limit, offset, label y format.
กรองวันที่และทำงานกับข้อความ
หากคอลัมน์ A มีวันที่ที่ Google Sheets รู้จัก คุณสามารถเลือกรายการธุรกรรมในเดือนตุลาคมได้ดังนี้:
=QUERY(A1:E6;"select * where A >= date '2026-10-01' and A < date '2026-11-01'";1)
ช่องข้อมูลวันที่ในแบบสอบถามใช้รูปแบบดังนี้ ปี-เดือน-วัน, aunque las celdas muestren día/mes/año. Si el origen contiene texto que parece una fecha, tendrás que corregirlo antes.
Para trabajar con partes de las fechas existen year(), month() y day()โปรดทราบว่า ฟังก์ชัน month() เริ่มต้นที่ 0 สำหรับเดือนมกราคม และสิ้นสุดที่ 11 สำหรับเดือนธันวาคม. Al agrupar varios años, utiliza también el año para no mezclar meses equivalentes.
En los filtros de texto puedes emplear contains, starts with, ends with o matchesการเปรียบเทียบจะคำนึงถึงตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก คุณสามารถปรับรูปแบบข้อความให้เป็นมาตรฐานได้ด้วย lower() o upper().
รวมข้อมูลจากหลายชีตโดยใช้คอลัมน์ Col1 และ Col2

ในการเรียงลำดับข้อมูลจากสองแท็บในไฟล์เดียวกัน คุณสามารถสร้างอาร์เรย์โดยใช้เครื่องหมายวงเล็บปีกกาได้ สมมติว่าทั้งสองแท็บมีห้าคอลัมน์และหนึ่งแถวส่วนหัวเหมือนกัน:
=QUERY({Ventas1!A1:E100;Ventas2!A2:E100};"select Col2, Col4 where Col2 is not null";1)
La primera referencia incluye los encabezados; la segunda empieza en la fila 2 para no repetirlos. Los rangos deben tener el mismo número de columnas y una estructura compatible.
En esta matriz, Col1 แทนคอลัมน์แรก และ Col2 แทนคอลัมน์ที่สอง. Son posiciones dentro del conjunto consultado, no nombres de campos. Si reorganizas el contenido de las columnas, revisa la consulta para que siga seleccionando la información correcta.
El punto y coma dentro de las llaves apila los rangos verticalmente. Esta operación no relaciona registros por un identificador ni equivale a realizar un JOIN entre tablas.
ข้อผิดพลาดทั่วไปของคำสั่ง QUERY และวิธีค้นหาข้อผิดพลาดเหล่านั้น
- ค่าที่หายไป: คอลัมน์ที่มีชนิดข้อมูลผสมกันอาจสูญเสียค่าของชนิดข้อมูลส่วนน้อย ซึ่งคำสั่ง QUERY จะตีความว่าเป็นค่าว่าง (null)
- เกิดข้อผิดพลาดในการวิเคราะห์คำสั่งค้นหา: ตรวจสอบเครื่องหมายอัญประกาศตรง ตัวระบุ ฟังก์ชัน และลำดับของข้อความ
- ไม่พบข้อมูลใหม่: ตรวจสอบให้แน่ใจว่าข้อมูลเหล่านั้นอยู่ในช่วงที่ต้องการค้นหา การอ้างอิงถึงแถวที่ 100 จะไม่รวมแถวที่ 101
- เมทริกซ์นี้ไม่สามารถขยายได้: เว้นช่องว่างในบริเวณที่ควรแสดงผลลัพธ์ไว้ และตรวจสอบว่ามีเซลล์ใดที่ถูกรวมกันอยู่หรือไม่
- ข้อมูลแต่ละแถวจะถูกตีความว่าเป็นหัวเรื่อง: ตรวจสอบอาร์กิวเมนต์ส่วนหัว
อย่าห่อสูตรไว้ใน IF.ERROR หรือ IFERROR mientras estés buscando el fallo: podrías ocultar un problema de sintaxis y confundirlo con la ausencia de coincidencias.
Cuando la consulta ya funcione, si quieres tratar específicamente un error #N/Aคุณสามารถใช้ SI.ND:
=SI.ND(QUERY(A1:E6;"select B, D where C = 'Devuelto'";1);"Sin coincidencias")
หากไฟล์นั้นยังคงใช้ชื่อฟังก์ชันเป็นภาษาอังกฤษ ให้ใช้ IFNA. Esta función trata los errores de ese tipo; no demuestra por sí misma cuál ha sido su causa.
Para trabajar con seguridad, empieza con una selección sencilla y añade cada condición por separado. QUERY recalcula su resultado cuando cambian los datos de los que depende, pero ฟังก์ชันนี้จะไม่แก้ไขจุดเริ่มต้นหรือขยายช่วงที่ปิดโดยอัตโนมัติ.
ฉันเป็นผู้ชื่นชอบเทคโนโลยีที่เปลี่ยนความสนใจ "เกินบรรยาย" ของเขาให้กลายเป็นอาชีพ ฉันใช้เวลามากกว่า 10 ปีในชีวิตไปกับเทคโนโลยีล้ำสมัยและปรับแต่งโปรแกรมทุกประเภทด้วยความอยากรู้อยากเห็น ตอนนี้ฉันมีความเชี่ยวชาญในด้านเทคโนโลยีคอมพิวเตอร์และวิดีโอเกม เนื่องจากเป็นเวลากว่า 5 ปีแล้วที่ฉันเขียนให้กับเว็บไซต์ต่างๆ เกี่ยวกับเทคโนโลยีและวิดีโอเกม โดยสร้างบทความที่พยายามให้ข้อมูลที่คุณต้องการในภาษาที่ทุกคนเข้าใจได้
หากคุณมีคำถามใดๆ ความรู้ของฉันมีตั้งแต่ทุกอย่างที่เกี่ยวข้องกับระบบปฏิบัติการ Windows รวมถึง Android สำหรับโทรศัพท์มือถือ และความมุ่งมั่นของฉันคือคุณ ฉันยินดีสละเวลาสักครู่เสมอและช่วยคุณแก้ไขคำถามใดๆ ที่คุณอาจมีในโลกอินเทอร์เน็ตนี้