Thep Excel

CHOOSECOLSเลือกและจัดเรียงคอลัมน์จากตาราง

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

fx
=CHOOSECOLS(array, col_num1, [col_num2], …)

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

อัปเดต 1 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
array Range/Array ตารางหรือช่วงข้อมูลต้นฉบับที่ต้องการดึงคอลัมน์
col_num1 Number ลำดับคอลัมน์ที่ต้องการเลือก (จำนวนเต็ม) ถ้าใส่เลขลบจะนับจากคอลัมน์ขวาสุด
[col_num2]ไม่บังคับ Number ลำดับคอลัมน์ถัดไปที่ต้องการเลือก (ใส่ได้หลายตัว)

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

Additional Notes

ฟังก์ชัน CHOOSECOLS ใน Excel ช่วยให้คุณเลือกดึงเฉพาะคอลัมน์ที่ต้องการจากตารางหรือช่วงข้อมูล โดยระบุลำดับคอลัมน์ที่ต้องการได้ทั้งแบบนับจากซ้ายไปขวา (เลขบวก) หรือนับจากขวามาซ้าย (เลขลบ)

งานจริงที่ใช้บ่อยที่สุดคือทำรายงานสรุปจากตารางข้อมูลดิบที่มีคอลัมน์เยอะเกินความจำเป็น เช่น ตารางขายมี 10 คอลัมน์แต่รายงานผู้บริหารต้องการแค่ชื่อสินค้ากับยอดขาย หรือทำรายงาน HR ที่ต้องตัดคอลัมน์ข้อมูลอ่อนไหว (เลขบัตรประชาชน เงินเดือนที่ไม่เกี่ยวข้อง) ออกก่อนแชร์ไฟล์ให้ทีมอื่น แทนที่จะต้องลบคอลัมน์ในต้นฉบับหรือ copy-paste ทีละคอลัมน์

จุดที่ต่างจาก INDEX แบบเก่าคือ CHOOSECOLS เป็น Dynamic Array ที่ Spill อัตโนมัติและรับหลายคอลัมน์ในสูตรเดียวโดยไม่ต้องพึ่ง Array Constant ที่อ่านยาก แต่ก็มาพร้อมข้อจำกัดคือใช้ได้เฉพาะ Excel 365 และ 2021 ขึ้นไปเท่านั้น

How it works

จัดเตรียมข้อมูลสำหรับกราฟ

กราฟใน Excel มักต้องการข้อมูลที่อยู่ติดกัน ใช้ CHOOSECOLS ดึงคอลัมน์ 'เดือน' และ 'ยอดขาย' ที่อาจอยู่ห่างกันในตารางต้นฉบับ มาวางชิดกันเพื่อสร้างกราฟได้ง่าย

สร้างรายงานย่อ (Summary View)

จากตาราง Database ใหญ่ที่มี 50 คอลัมน์ ใช้ CHOOSECOLS เลือกแสดงเฉพาะ 5 คอลัมน์สำคัญที่ผู้บริหารต้องดูใน Dashboard

Examples

เลือกคอลัมน์ชื่อและยอดขาย (1 และ 3)CHOOSECOLS(SalesTable, 1, 3)

สมมติว่า SalesTable มี 5 คอลัมน์ (ID, Name, Sales, Cost, Profit) สูตรนี้จะดึงเฉพาะคอลัมน์ที่ 1 (Name) และ 3 (Sales) มาแสดงต่อกันเป็นตารางใหม่ 2 คอลัมน์ โดยไม่แตะข้อมูลต้นฉบับเลย

fx
=CHOOSECOLS(SalesTable, 1, 3)

ผลลัพธ์ตารางที่มีเฉพาะชื่อและยอดขาย
สลับลำดับคอลัมน์ทำรายงานที่ต้องการเรียงต่างจากต้นฉบับCHOOSECOLS(Data, 3, 2, 1)

ดึงข้อมูลจากตาราง Data โดยเอาคอลัมน์ที่ 3 ขึ้นก่อน ตามด้วยคอลัมน์ที่ 2 และ 1 ใช้เมื่อทีมบัญชีอยากเห็นยอดเงินขึ้นก่อนชื่อลูกค้า ทั้งที่ต้นฉบับเรียงชื่อไว้ก่อน

fx
=CHOOSECOLS(Data, 3, 2, 1)

ผลลัพธ์ตารางที่เรียงคอลัมน์ใหม่
เลือก 2 คอลัมน์สุดท้ายโดยไม่ต้องรู้ว่าตารางมีกี่คอลัมน์CHOOSECOLS(Report, -2, -1)

ใช้เลขลบเพื่อนับจากขวา โดย -1 คือคอลัมน์ขวาสุด และ -2 คือคอลัมน์ถัดมาทางซ้าย สูตรนี้จึงดึง 2 คอลัมน์สุดท้ายของตาราง Report เสมอ แม้ภายหลังจะมีคนแทรกคอลัมน์ใหม่เพิ่มเข้ามาตรงกลางตาราง สูตรก็ยังดึงคอลัมน์ท้ายสุดถูกต้องโดยไม่ต้องแก้เลข

fx
=CHOOSECOLS(Report, -2, -1)

ผลลัพธ์สองคอลัมน์ขวาสุด
กรองแถวก่อนแล้วค่อยเลือกเฉพาะบางคอลัมน์CHOOSECOLS(FILTER(Sales, Sales[Amount]>1000), 1, 3)

ใช้ FILTER กรองแถวที่มียอดขายมากกว่า 1000 ก่อน จากนั้นใช้ CHOOSECOLS เลือกแสดงผลเฉพาะคอลัมน์ที่ 1 (ชื่อ) และ 3 (ยอดขาย) ของผลลัพธ์ที่กรองได้ ตัดคอลัมน์ต้นทุนกับกำไรที่ไม่จำเป็นในรายงานสรุปนี้ออกไป

fx
=CHOOSECOLS(FILTER(Sales, Sales[Amount]>1000), 1, 3)

ผลลัพธ์ชื่อและยอดขายของรายการที่ > 1000
ตัดคอลัมน์ข้อมูลอ่อนไหวก่อนแชร์ไฟล์เงินเดือนCHOOSECOLS(EmpTable, 1, 2, 3)

สมมติ EmpTable มี 4 คอลัมน์ (ID, Name, Salary, เลขบัตรประชาชน) ก่อนส่งไฟล์ให้ทีมอื่นที่ไม่ควรเห็นเลขบัตรประชาชน ใช้ CHOOSECOLS ดึงมาแค่คอลัมน์ 1-3 ปลอดภัยกว่าการลบคอลัมน์ในต้นฉบับ เพราะต้นฉบับยังอยู่ครบ แค่ผลลัพธ์ที่ Spill ออกมาไม่มีคอลัมน์ที่ 4

fx
=CHOOSECOLS(EmpTable, 1, 2, 3)

ผลลัพธ์ตารางที่มีแค่รหัสพนักงาน ชื่อ และเงินเดือน

FAQs

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

จะขึ้น Error #VALUE! เช่น ตารางมี 5 คอลัมน์ แต่เลือกคอลัมน์ที่ 6 หรือเลือกคอลัมน์ที่ 0

ต่างจากฟังก์ชัน INDEX อย่างไร?+

CHOOSECOLS เขียนง่ายกว่าและรองรับการดึงหลายคอลัมน์พร้อมกันได้โดยตรง (ไม่ต้องใช้ Array Constant ซับซ้อนเหมือน INDEX) และเป็น Dynamic Array ที่ Spill อัตโนมัติ

ใช้กับ Excel 2016 หรือ Excel รุ่นเก่าได้ไหม?+

ไม่ได้ครับ ใช้ได้เฉพาะ Excel 365, Excel 2021 ขึ้นไป และ Excel for Web เท่านั้น ถ้าเปิดไฟล์ในเครื่องที่มี Excel รุ่นเก่ากว่านี้ สูตรจะขึ้น #NAME? ทันที

CHOOSECOLS กับ CHOOSEROWS ต่างกันอย่างไร ใช้คู่กันได้ไหม?+

CHOOSECOLS เลือกตามแนวคอลัมน์ ส่วน CHOOSEROWS เลือกตามแนวแถว ใช้คู่กันได้ปกติ เช่น =CHOOSECOLS(CHOOSEROWS(Data,1,2,3),1,3) เพื่อเลือกทั้งแถวและคอลัมน์ที่ต้องการพร้อมกันในสูตรเดียว

ใส่เลขลำดับคอลัมน์ซ้ำกันได้ไหม?+

ได้ครับ CHOOSECOLS ไม่ได้บังคับว่าต้องระบุแต่ละคอลัมน์แค่ครั้งเดียว เช่น =CHOOSECOLS(Data,1,1,2) จะแสดงคอลัมน์ 1 สองครั้งติดกัน แล้วตามด้วยคอลัมน์ 2 มีประโยชน์เวลาต้องการทำสำเนาคอลัมน์ไว้เทียบข้อมูลก่อน-หลังในรายงานเดียว

Resources & Related

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

ฟังก์ชันนี้CHOOSECOLSLookup and reference
Lookup and reference (10)
CHOOSEROWS

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

COLUMN

COLUMN ส่งคืนหมายเลขคอลัมน์ (Column Number) ของเซลล์หรือช่วงที่ระบุ ส่งคืนตัวเลขคอลัมน์ 1, 2, 3… (A=1, B=2 เป็นต้น) มีประโยชน์ในการระบุตำแหน่งคอลัมน์แบบไดนามิก

COLUMNS

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

DROP

DROP จะตัดข้อมูลออกตามจำนวนที่ระบุ ถ้าใส่เลขบวกจะตัดจากจุดเริ่มต้น (บน/ซ้าย) ทิ้งไป ถ้าใส่เลขลบจะตัดจากจุดสิ้นสุด (ล่าง/ขวา) ทิ้งไป ส่วนที่เหลือจะถูกนำมาแสดงผล

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 ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ

LOOKUP

LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มีเทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365

TAKE

TAKE ช่วยตัดข้อมูลบางส่วนออกมาใช้งาน โดยระบุจำนวนที่ต้องการ ถ้าใส่เลขบวกจะดึงจากจุดเริ่มต้น (บน/ซ้าย) ถ้าใส่เลขลบจะดึงจากจุดสิ้นสุด (ล่าง/ขวา) คล้ายกับคำสั่ง LIMIT หรือ TOP/BOTTOM ใน Database

VSTACK

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

Comments

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