Thep Excel

VSTACKฟังก์ชันรวมข้อมูลแนวตั้ง

VSTACK เป็นฟังก์ชัน Dynamic Array ที่ใช้รวมข้อมูลจากหลายช่วงเข้าด้วยกันโดยนำมาเรียงต่อกันในแนวตั้ง (ต่อท้ายลงไปด้านล่าง) หากช่วงข้อมูลที่นำมารวมมีจำนวนคอลัมน์ไม่เท่ากัน VSTACK จะเติมค่า #N/A ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ

fx
=VSTACK(array1, [array2], …)

ความนิยม7/10
ความยาก5/10
ประโยชน์8/10

อัปเดต 1 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
array1 Range ช่วงข้อมูลหรืออาร์เรย์แรกที่ต้องการนำมาตั้งต้น
[array2]ไม่บังคับ Range ช่วงข้อมูลอื่นๆ ที่ต้องการนำมาต่อท้าย (สูงสุด 253 ช่วง)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

ฟังก์ชัน VSTACK ใช้สำหรับนำช่วงข้อมูล (Ranges) หรืออาร์เรย์ (Arrays) หลายๆ ชุดมาต่อกันในแนวตั้ง (Vertical Stack) เพื่อรวมเป็นตารางเดียว ช่วยให้การรวบรวมข้อมูลจากหลายแหล่งทำได้ง่ายและเป็นระเบียบโดยไม่ต้อง Copy-Paste

How it works

รวมข้อมูลจากหลาย Sheet

รวมตารางยอดขายจาก Sheet มกราคม, กุมภาพันธ์, มีนาคม มาไว้ในตารางเดียว

เพิ่ม Header ให้ข้อมูล

ใช้ VSTACK รวม Header (Array Constant) เข้ากับข้อมูลดิบ

สร้าง Union Query

รวมข้อมูลจากหลายตารางแบบ SQL UNION แล้ว FILTER/SORT

Examples

ตัวอย่างที่ 1: รวม 2 ตารางVSTACK({1,"A";2,"B"}, {3,"C";4,"D"})

รวม 2 Array (2×2) ต่อกันในแนวตั้ง ได้ Array 4×2

fx
=VSTACK({1,"A";2,"B"}, {3,"C";4,"D"})

ผลลัพธ์{1,"A";2,"B";3,"C";4,"D"}
ตัวอย่างที่ 2: เพิ่ม HeaderVSTACK({"Name","Score"}, A2:B10)

สร้าง Header ด้วย Array Constant แล้วต่อข้อมูลจาก A2:B10 ด้านล่าง

fx
=VSTACK({"Name","Score"}, A2:B10)

ผลลัพธ์ตารางพร้อม Header
ตัวอย่างที่ 3: รวมจากหลาย SheetVSTACK(Jan!A2:C10, Feb!A2:C10, Mar!A2:C10)

รวมข้อมูลยอดขาย 3 เดือนจาก 3 Sheet เป็นตารางเดียว

fx
=VSTACK(Jan!A2:C10, Feb!A2:C10, Mar!A2:C10)

ผลลัพธ์ข้อมูล 3 เดือนรวมกัน
ตัวอย่างที่ 4: กรณีคอลัมน์ไม่เท่ากันVSTACK({1,2,3}, {4,5})

Array แรกมี 3 คอลัมน์ Array ที่ 2 มี 2 คอลัมน์ VSTACK เติม #N/A ให้อัตโนมัติ

fx
=VSTACK({1,2,3}, {4,5})

ผลลัพธ์{1,2,3;4,5,#N/A}
ตัวอย่างที่ 5: รวมแล้ว FILTERFILTER(VSTACK(A:C, E:G), (VSTACK(A:A, E:E)>0))

รวม 2 ตารางก่อน แล้ว FILTER เฉพาะแถวที่คอลัมน์แรก > 0

fx
=FILTER(VSTACK(A:C, E:G), (VSTACK(A:A, E:E)>0))

ผลลัพธ์ข้อมูลรวมที่ Filter แล้ว
ตัวอย่างที่ 6: รวมกับ UNIQUEUNIQUE(VSTACK(Products1, Products2))

รวมรายการสินค้าจาก 2 แหล่ง แล้ว UNIQUE ตัดรายการซ้ำออก

fx
=UNIQUE(VSTACK(Products1, Products2))

ผลลัพธ์รายการสินค้าไม่ซ้ำ

FAQs

คอลัมน์ไม่เท่ากันจะเป็นอย่างไร?+

VSTACK ยึดตามตารางที่มีคอลัมน์มากที่สุด และเติม #N/A ให้ตารางที่น้อยกว่า

VSTACK ต่างจาก HSTACK อย่างไร?+

VSTACK ต่อข้อมูลในแนวตั้ง (เพิ่มแถว) ส่วน HSTACK ต่อในแนวนอน (เพิ่มคอลัมน์)

รับได้สูงสุดกี่ Array?+

รับได้สูงสุด 254 arrays (array1 ถึง array254)

ใช้กับ Table ได้ไหม?+

ได้ เช่น VSTACK(Table1, Table2) แต่ต้องระวังจำนวนคอลัมน์ให้เท่ากัน

VSTACK รองรับ Excel เวอร์ชันไหน?+

Excel 365 และ Excel 2021 ขึ้นไปเท่านั้น (Dynamic Array function)

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ VSTACK จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้VSTACKLookup and reference
Lookup and reference (11)
CHOOSECOLS

CHOOSECOLS ใช้ดึงคอลัมน์ที่ต้องการจากตารางหรือ Array โดยระบุเลขลำดับคอลัมน์ สามารถดึงได้หลายคอลัมน์พร้อมกัน จัดลำดับใหม่ หรือทำซ้ำคอลัมน์เดิมได้ รองรับการนับคอลัมน์จากขวาสุดโดยใช้เลขลบ (เช่น -1 คือคอลัมน์ขวาสุด)

COLUMNS

นับจำนวนคอลัมน์ทั้งหมดในช่วงข้อมูลหรืออาร์เรย์ที่ระบุ ใช้บ่อยคู่กับ OFFSET หรือ VLOOKUP เพื่อทำสูตรแบบ dynamic ที่ปรับตามขนาดตารางเอง

EXPAND

EXPAND ใช้ขยายขนาดของตารางข้อมูลให้ใหญ่ขึ้นตามจำนวนแถวหรือคอลัมน์ที่ระบุ หากตารางเดิมมีขนาดเล็กกว่า ส่วนที่เพิ่มขึ้นมาจะแสดงค่าเป็น #N/A (ค่าเริ่มต้น) หรือค่าที่เรากำหนดเองได้ (pad_with) มีประโยชน์มากในการปรับขนาดข้อมูลให้เท่ากันก่อนนำไปรวมด้วย VSTACK หรือ HSTACK

FILTER

FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ

HSTACK

HSTACK เป็นฟังก์ชัน Dynamic Array ที่ใช้รวมข้อมูลจากหลายช่วงเข้าด้วยกันโดยนำมาเรียงต่อกันในแนวนอน (ต่อท้ายไปทางขวา) หากช่วงข้อมูลที่นำมารวมมีจำนวนแถวไม่เท่ากัน HSTACK จะเติมค่า #N/A ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ

ROWS

ส่งกลับจำนวนแถวในอาร์เรย์หรือการอ้างอิง ใช้สร้างสูตรแบบ dynamic ที่ขยายขนาดตามข้อมูลจริง ไม่ต้องมานับแถวเองทุกครั้งที่ข้อมูลเปลี่ยน

TOCOL

TOCOL ช่วย "ตบ" ข้อมูลจากตารางหลายมิติให้มาเรียงต่อกันเป็นคอลัมน์เดียว สามารถเลือกวิธีเรียงลำดับได้ว่าจะอ่านจากซ้ายไปขวา (ทีละแถว) หรือบนลงล่าง (ทีละคอลัมน์) และยังมี Option ให้กรองช่องว่างหรือ Error ทิ้งไปโดยอัตโนมัติ เหมาะสำหรับการเตรียมข้อมูล (Data Preparation)

TOROW

TOROW ช่วยแปลงข้อมูลจากตารางหลายมิติให้มาเรียงต่อกันเป็นแถวเดียว (แนวนอน) สามารถเลือกวิธีเรียงลำดับได้ว่าจะอ่านจากซ้ายไปขวา (ทีละแถว) หรือบนลงล่าง (ทีละคอลัมน์) และเลือกข้ามช่องว่างหรือ Error ได้เหมือน TOCOL

TRANSPOSE

สลับแกนของตารางข้อมูล เปลี่ยนแถวเป็นคอลัมน์และคอลัมน์เป็นแถว ช่วยจัดโครงสร้างข้อมูลให้เหมาะกับการวิเคราะห์และนำเสนอ

WRAPCOLS

WRAPCOLS ห่อ (wrap) ข้อมูล 1 มิติให้กลายเป็นตาราง 2 มิติ โดยเรียงข้อมูลจากบนลงล่างในแต่ละคอลัมน์ เมื่อครบ wrap_count แถวจะขึ้นคอลัมน์ใหม่ รองรับ padding เมื่อข้อมูลไม่พอดี ใช้คู่กับ WRAPROWS TOCOL TOROW เพื่อ reshape ข้อมูล

WRAPROWS

WRAPROWS ห่อ (wrap) ข้อมูล 1 มิติให้กลายเป็นตาราง 2 มิติ โดยเรียงข้อมูลจากซ้ายไปขวาในแต่ละแถว เมื่อครบ wrap_count คอลัมน์จะขึ้นแถวใหม่ รองรับ padding เมื่อข้อมูลไม่พอดี ใช้คู่กับ WRAPCOLS TOCOL TOROW เพื่อ reshape ข้อมูล

Logical (2)
BYCOL

BYCOL ส่งแต่ละคอลัมน์ทั้งคอลัมน์เข้า LAMBDA แล้ว return ผลลัพธ์เป็น Array แถวเดียว ต่างจาก MAP ที่ส่งทีละเซลล์ และ BYROW ที่ส่งทีละแถว ทำให้สามารถคำนวณ SUM, MAX, AVERAGE ของทุกคอลัมน์พร้อมกันในสูตรเดียว แทนที่จะต้องเขียนสูตรซ้ำหลายครั้ง ซึ่งช่วยลดโอกาสเกิดข้อผิดพลาดและทำให้แก้ไข logic ได้ง่ายกว่ามาก เหมาะสำหรับงาน dashboard summary, quality checking และการวิเคราตลัพธ์ทีละคอลัมน์แบบเป็นระบบ

BYROW

BYROW เป็น LAMBDA Helper Function ที่ประมวลผลข้อมูลทีละแถว โดยส่งแต่ละแถวทั้งหมด (เป็น array) เข้าไปใน LAMBDA แล้ว return ผลลัพธ์เป็นคอลัมน์เดียว ที่เจ๋งคือ BYROW รองรับทั้ง short-form syntax (=BYROW(array, SUM)) สำหรับการ aggregate ง่ายๆ และ custom LAMBDA สำหรับ logic ซับซ้อนที่ต้องตรวจสอบหลายคอลัมน์พร้อมกัน เช่น ตรวจว่านักเรียนผ่านทุกวิชา (MIN>=50) หรือรวมข้อความหลายคอลัมน์ด้วย TEXTJOIN ต่างจาก MAP ที่ทำงานทีละ cell และ BYCOL ที่ทำงานทีละคอลัมน์ BYROW ทำให้คุณเขียน logic ครั้งเดียว แล้วประมวลผลทุกแถวพร้อมกันทันที

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่