คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

VSTACK

Dynamic ArrayระดับกลางExcel 2024+ไม่มีใน Excel 2016–2021

อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด

VSTACK คืออะไร

ต่อหลายช่วงหรือหลายตารางจากบนลงล่างเป็นตารางเดียว ผลลัพธ์ spill ออกมาและอัปเดตเองเมื่อข้อมูลต้นทางเปลี่ยน

ใช้เมื่อไหร่

  • รวมรายงานจากหลายสาขาหรือหลายเดือนที่ใช้แบบฟอร์มเดียวกัน
  • ใส่หัวตารางหรือแถวรวมให้ผลลัพธ์ของสูตรอื่น
  • รวมข้อมูลหลายช่วงแล้วเรียงหรือกรองต่อในสูตรเดียว

รูปแบบสูตร

=VSTACK(array1, [array2], …)

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
array1จำเป็นช่วงหรือ array แรก วางไว้บนสุด
[array2], …ไม่บังคับช่วงหรือ array ถัดไป วางต่อลงมาตามลำดับที่ใส่

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

VSTACK ต่อ A5:C8 (บางนา) กับ E5:G7 (ศรีราชา) จากบนลงล่าง ได้ 7 แถว 3 คอลัมน์

I5
=ROWS(VSTACK(A5:C8,E5:G7))
ช่วงที่นำมาต่อกัน array1 = A5:C8 (4 แถว × 3 คอลัมน์) · array2 = E5:G7 (3 แถว × 3 คอลัมน์)
แถวABCDEFGH
4สาขาพนักงานขายยอดขาย (บาท)สาขาพนักงานขายยอดขาย (บาท)
5บางนาศิริพร ใจงาม142,900ศรีราชาวิไลวรรณ รักดี138,600
6บางนาธนวัฒน์ แก้วใส118,250ศรีราชาณัฐพล มั่นคง98,350
7บางนาอัญชลี วงศ์ดี135,400ศรีราชากัลยา พูลผล112,600
8บางนาปกรณ์ สุขใจ96,700
9ผลลัพธ์จากสูตรในช่อง A11 · spill ลงมาเอง
10สาขาพนักงานขายยอดขาย (บาท)
11บางนาศิริพร ใจงาม142,900
12บางนาธนวัฒน์ แก้วใส118,250
13บางนาอัญชลี วงศ์ดี135,400
14บางนาปกรณ์ สุขใจ96,700
15ศรีราชาวิไลวรรณ รักดี138,600
16ศรีราชาณัฐพล มั่นคง98,350
17ศรีราชากัลยา พูลผล112,600
18
19
20
A5:C8
E5:G7
ช่องกรอกและผลลัพธ์
จำนวนแถวของผลลัพธ์ I5
สูตรที่ A11 (ผลลัพธ์ spill)
ขั้นตอนการคำนวณ (4)
ผลลัพธ์ในกรอบเส้นประมาจากสูตรเดียวในช่องสีเขียวมะนาว คลิกช่องไหนในผลลัพธ์ก็ได้เพื่อดูสูตร · แก้ข้อมูลด้านบนแล้วผลลัพธ์จะขยายหรือหดเอง · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 รวมสองสาขา” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร: แถวของ A5:C8 มาก่อน (4 แถว) ตามด้วย E5:G7 (3 แถว) ลำดับของ argument คือลำดับในผลลัพธ์
  • VSTACK ต่อตามตำแหน่งคอลัมน์ ไม่ได้ดูชื่อหัวตาราง ทั้งสองตารางจึงต้องเรียงคอลัมน์เหมือนกัน
  • ตารางอยู่คนละชีตก็รวมได้ เช่น =VSTACK('บางนา'!A2:C5,'ศรีราชา'!A2:C4)

ตัวอย่างทั้งหมด 4 แบบ

  1. 1รวมตารางสองสาขาเป็นตารางเดียว · VSTACK ต่อ A5:C8 (บางนา) กับ E5:G7 (ศรีราชา) จากบนลงล่าง ได้ 7 แถว 3 คอลัมน์
  2. 2ใส่หัวตารางในสูตรด้วย array constant · {"สาขา","พนักงานขาย","ยอดขาย (บาท)"} คือหัวตาราง 1 แถว 3 คอลัมน์ VSTACK วางไว้บนสุด ผลลัพธ์จึงมีหัวตารางติดไปด้วย
  3. 3รวมตารางที่คอลัมน์ไม่เท่ากัน แทน #N/A ด้วย IFNA · บางนาส่ง 3 คอลัมน์ แต่ศรีราชาส่งมา 2 คอลัมน์ VSTACK เติม #N/A ในคอลัมน์ที่ขาด แล้ว IFNA เปลี่ยนเป็นค่าใน I4
  4. 4รวมสองสาขาแล้วจัดอันดับยอดขาย · SORT(VSTACK(…),3,-1) เรียงคอลัมน์ที่ 3 (ยอดขาย) ของตารางที่รวมแล้ว จากมากไปน้อย

ข้อผิดพลาดที่พบบ่อย

#N/A ในบางช่องสาเหตุ: ตารางมีจำนวนคอลัมน์ไม่เท่ากัน Excel เติม #N/A ในคอลัมน์ที่ขาดแก้: ครอบด้วย IFNA เช่น =IFNA(VSTACK(A5:C8,E5:F7),"-")
มีแถว 0 ต่อท้ายสาเหตุ: เลือกช่วงเกินมาถึงแถวว่าง ช่องว่างถูกแสดงเป็น 0แก้: เลือกเฉพาะแถวที่มีข้อมูล หรือเก็บข้อมูลเป็น Table (Ctrl + T)
ข้อมูลเหลื่อมคอลัมน์สาเหตุ: สองตารางเรียงคอลัมน์ไม่เหมือนกัน VSTACK ต่อตามตำแหน่ง ไม่ได้ดูชื่อหัวตารางแก้: จัดลำดับคอลัมน์ของทุกตารางให้ตรงกันก่อนรวม
#NAME?สาเหตุ: เปิดใน Excel 2016, 2019 หรือ 2021แก้: ใช้สูตรในชีต Excel 2016-2021 หรือคัดลอกข้อมูลมาวางต่อกัน

เคล็ดลับจากห้องเรียน

เก็บข้อมูลแต่ละสาขาเป็น Table (Ctrl + T) แล้วอ้างชื่อ Table ใน VSTACK แถวที่เพิ่มในแต่ละสาขาจะถูกรวมเอง
VSTACK กับ SORT, FILTER หรือ UNIQUE ซ้อนกันได้ เช่น รวมทุกสาขาก่อนแล้วค่อยกรองหรือเรียง
ต่อข้อมูลไปทางขวาใช้ HSTACK ซึ่งทำงานแบบเดียวกันแต่วางต่อกันตามแนวนอน

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
VSTACK

ใช้ Excel 2016, 2019 หรือ 2021 ให้ใช้สูตรเหล่านี้แทน ได้ผลเท่ากับตัวอย่างที่ระบุ และมีในชีต “Excel 2016-2021” ของไฟล์ฝึก ต่างจาก VSTACK ตรงที่ผลลัพธ์ไม่ spill เอง ต้องลากสูตรลงให้พอกับจำนวนรายการ (ไม่ต้องกด Ctrl + Shift + Enter)

แทนตัวอย่างสูตรทางเลือก
ตัวอย่าง 1 รวมสองสาขา=IFERROR(INDEX(A$5:A$8,ROWS(H$5:H5)),INDEX(E$5:E$7,ROWS(H$5:H5)-ROWS($A$5:$A$8))) ลากไปทางขวา 3 คอลัมน์และลงล่าง 7 แถว

เลือกวิธีให้ถูกงาน

วิธีใช้เมื่อตัวอย่าง
VSTACKต่อตารางจากบนลงล่างด้วยสูตร อัปเดตเองเมื่อต้นทางเปลี่ยน (2024 ขึ้นไป)=VSTACK(A5:C8,E5:G7)
HSTACKต่อตารางไปทางขวา เช่น วางคอลัมน์คู่กัน=HSTACK(B5:B8,C5:C8)
Power Query (Append)รวมหลายชีตหรือหลายไฟล์เป็นประจำ จับคู่คอลัมน์ตามชื่อหัวตารางHome > Append Queries
คัดลอกวางต่อกันรวมครั้งเดียว ไม่ต้องอัปเดตCtrl + C แล้ว Ctrl + V

ใน Power BI ใช้อะไร

ต่อตารางที่มีคอลัมน์เท่ากันในสูตร งานรวมไฟล์นิยมทำใน Power Query (Append)

ไฟล์ฝึก VSTACK

9Expert-VSTACK-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 30 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 รวมสองสาขา2 ใส่หัวตาราง3 คอลัมน์ไม่เท่ากัน4 รวมแล้วจัดอันดับแบบฝึกหัดเฉลยสรุปย่อExcel 2016-2021

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1รวมยอดขายของสองสาขาเป็นคอลัมน์เดียว
  2. ข้อ 2นับจำนวนพนักงานขายของทั้งสองสาขา
  3. ข้อ 3ใส่คำว่า พนักงานขาย เป็นหัวรายการ แล้วต่อด้วยรายชื่อสาขาบางนา
  4. ข้อ 4ยอดขายสาขาศรีราชา แล้วต่อท้ายด้วยยอดรวมของสาขา
  5. ข้อ 5รายชื่อพนักงานทั้งสองสาขา เรียงตามยอดขายจากมากไปน้อย

วิดีโอประกอบ

คลิปเรื่อง VSTACK จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

แบบทดสอบ 3 ข้อ

1. A5:C8 มี 4 แถว E5:G7 มี 3 แถว =VSTACK(A5:C8,E5:G7) ได้กี่แถว

2. ช่วงหนึ่งมี 3 คอลัมน์ อีกช่วงมี 2 คอลัมน์ VSTACK ได้ผลอย่างไร

3. {"สาขา","พนักงานขาย","ยอดขาย"} ใน VSTACK คืออะไร

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม