Google SpreadSheet Query: ฉันสามารถลบส่วนหัวของคอลัมน์ได้หรือไม่


102

ฉันกำลังทำแบบสอบถามนี้ที่สเปรดชีต Google ของฉัน:

=QUERY(H4:L35;"select sum(L) where H='First Week'"; -1)

แต่จะส่งกลับตารางเล็ก ๆ ที่มี "sum" เป็นส่วนหัวและผลลัพธ์อยู่ด้านล่าง สิ่งที่ฉันต้องการคือผลลัพธ์เท่านั้น! ฉันจะลบส่วนหัวได้อย่างไร ให้ฉัน?


สิ่งนี้ดูเหมือนตรงไปตรงมามากขึ้น: stackoverflow.com/a/41797729/5316231
user19581

คำตอบ:


195

ลองสิ่งนี้:

=QUERY(H4:L35,"select sum(L) where H='First Week' label sum(L) ''")

หวังว่าจะช่วยได้!


3
ฉันเพิ่งทดสอบสิ่งนี้ในแผ่นงานของฉันและมันจะลบส่วนหัวออกจากผลลัพธ์ที่ส่งคืน ควรทำเครื่องหมายว่าเป็นคำตอบที่ถูกต้อง :)
FooBar

1
นี่เป็นสิ่งที่ดีและได้ผล แต่มีใครสามารถอธิบายได้ว่าทำไมต้องใช้เครื่องหมายอัญประกาศเดี่ยวสองอันในตอนท้าย? สิ่งนั้นทำจากมุมมองทางไวยากรณ์?
y-i_guy

2
ใบเสนอราคาเดียวแทนที่ส่วนหัว sum ด้วยพื้นที่ว่าง หวังว่าจะอธิบายคำถามของคุณ !!
KRR

2
ขอบคุณสำหรับคำตอบ! ฉันต้องทำแบบเดียวกันกับคอลัมน์มากกว่าหนึ่งคอลัมน์ แต่ไม่สามารถทำได้! ฉันคาดว่าจะได้ผล: = QUERY (H4: L35, "select sum (L), sum (H) โดยที่ H = 'First Week' label sum (L) '' label sum (H) ''")
Emilio Nicolás

12
LABEL B 'Label1', C 'Label2'สำหรับหลายคอลัมน์
sojim2

31

=QUERY(QUERY(A1:D, "SELECT *", 1), "SELECT * OFFSET 1", 0)

ข้อความค้นหาภายนอก: "SELECT * OFFSET 1"ไม่รวมแถวแรก (ส่วนหัว)

แบบสอบถามภายในระบุส่วนหัวหนึ่งแถวอย่างชัดเจน (ผ่านอาร์กิวเมนต์ที่สามที่ให้มาQUERY) ในขณะที่แบบสอบถามภายนอกไม่ระบุ


3
คำอธิบายเล็กน้อย?
J Fabian Meier

เหตุใดสิ่งที่สองจึงQUERYจำเป็น? พารามิเตอร์ "0" ไม่ทิ้งส่วนหัวคุณจึงสามารถใช้ในส่วนแรกQUERYได้ดังนี้ QUERY('Form responses 3'!$A$2:$P$1017, "SELECT max(E),max(C), max(D) WHERE B='" & B14 & "' GROUP BY B LIMIT 1 ", 0)
Steven M. Mortimer

3
ฉันเชื่อว่าOFFSET 1ในแบบสอบถามที่สองจะทิ้งแถวแรกของชุดข้อมูลที่ส่งคืนไม่ใช่ส่วนหัวในแถวแรก
Steven M. Mortimer

2
คำตอบนี้อาจมีรายละเอียดมากกว่า แต่ก็มีประสิทธิภาพมากกว่าและสามารถใช้ได้โดยไม่จำเป็นต้องทำซ้ำสตริงการรวมคอลัมน์ สามารถใช้ได้ด้วยpivotซึ่งใช้ไม่ได้กับคำตอบอื่น ๆ ที่นี่
7yl4r

1
เว้นแต่ว่าฉันเข้าใจผิดการดำเนินการนี้ไม่สามารถแก้ปัญหาเฉพาะที่ผู้โพสต์ต้นฉบับนำเสนอได้นั่นคือการลบส่วนหัวที่สร้างโดย QUERY โดยอัตโนมัติเมื่อใช้ฟังก์ชันการรวมเช่น SUM เมื่อใช้ SUM (หรือฟังก์ชันการรวมอื่น ๆ ) QUERY จะสร้างแถวส่วนหัวโดยอัตโนมัติเพื่อระบุการรวมที่ดำเนินการเช่น "sum" จะทำเช่นนี้แม้ว่าคุณจะตั้งค่าส่วนหัวเป็น 0 และแม้ว่าคุณจะใช้คำสั่ง OFFSET 1 ก็ตาม สูตรต่อไปนี้ยังคงส่งกลับส่วนหัว = QUERY (Sheet1! A: B, "SELECT A, SUM (B) GROUP BY A OFFSET 1", 0) คำตอบที่ยอมรับจะช่วยแก้ปัญหานี้ได้
Dave Meindl

0

ฉันมี QUERY ซึ่งส่งคืน 3 อันดับแรกฉันไม่สามารถใช้งานได้เมื่อส่งคืนหลายแถว ฉันลงเอยด้วยการซ่อนแถวด้วยสูตรและตอนนี้มีเพียงคำตอบเท่านั้นที่แสดง


0
=INDEX(QUERY(H4:L35;"select sum(L) where H='First Week'"; -1),2,1)

สิ่งนี้จะแยกวิเคราะห์อาร์เรย์ที่ส่งคืนและเลือกระเบียนที่ 2 ที่ส่งคืนในคอลัมน์แรก

คุณยังสามารถทำได้ด้วยฟังก์ชันตัวกรองซึ่งใช้การประมวลผลน้อย

=SUM(FILTER(L4:L35, H4:H35 = "First Week"))

-1

แทนที่จะใช้การติดป้ายชื่อคอลัมน์เป็นช่องว่าง''คุณสามารถละเว้นส่วนหัวทั้งหมดดังนี้:

=QUERY(H4:L35,"select sum(L) where H='First Week'", 0)


คำตอบที่ได้รับการยอมรับดูเหมือนจะถูกต้องในทางเทคนิคมากกว่าซึ่งเป็นวิธีที่ง่ายที่สุดในการแก้ไขปัญหาและจดจำได้ง่ายขึ้น ควรจะรักคำตอบนี้มากขึ้นเว้นแต่ฉันจะพลาดอะไรบางอย่าง
Ewen

16
คำตอบนี้ไม่ได้ลบ "sum" เป็น "header row" จะบอกคำสั่งเคียวรีว่าไม่มีแถวส่วนหัวที่จะต้องพิจารณาในข้อมูลที่กำลังสืบค้น แต่ไม่ได้หยุดแบบสอบถามจากการเพิ่ม "ส่วนหัวที่ไม่ได้ตั้งใจ" ลงในตารางผลลัพธ์
Jimmy

-3

ดูรูปแบบที่นี่

ตัวอย่าง:

=QUERY(B4:C38,
   "SELECT C, sum(B) where C!='' group by C label C 'Member', sum(B) 'Sum'"
)

2
ตัวอย่างที่ให้มาจะไม่ส่งคืนผลลัพธ์ที่ไม่มีส่วนหัว
Rubén
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.