CHOOSECOLS ใช้ดึงคอลัมน์ที่ต้องการจากตารางหรือ Array โดยระบุเลขลำดับคอลัมน์ สามารถดึงได้หลายคอลัมน์พร้อมกัน จัดลำดับใหม่ หรือทำซ้ำคอลัมน์เดิมได้ รองรับการนับคอลัมน์จากขวาสุดโดยใช้เลขลบ (เช่น -1 คือคอลัมน์ขวาสุด)
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| array | Range/Array | ตารางหรือช่วงข้อมูลต้นฉบับที่ต้องการดึงคอลัมน์ | |
| col_num1 | Number | ลำดับคอลัมน์ที่ต้องการเลือก (จำนวนเต็ม) ถ้าใส่เลขลบจะนับจากคอลัมน์ขวาสุด | |
| [col_num2]ไม่บังคับ | Number | – | ลำดับคอลัมน์ถัดไปที่ต้องการเลือก (ใส่ได้หลายตัว) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน CHOOSECOLS ใน Excel ช่วยให้คุณเลือกดึงเฉพาะคอลัมน์ที่ต้องการจากตารางหรือช่วงข้อมูล โดยระบุลำดับคอลัมน์ที่ต้องการได้ทั้งแบบนับจากซ้ายไปขวา (เลขบวก) หรือนับจากขวามาซ้าย (เลขลบ)
งานจริงที่ใช้บ่อยที่สุดคือทำรายงานสรุปจากตารางข้อมูลดิบที่มีคอลัมน์เยอะเกินความจำเป็น เช่น ตารางขายมี 10 คอลัมน์แต่รายงานผู้บริหารต้องการแค่ชื่อสินค้ากับยอดขาย หรือทำรายงาน HR ที่ต้องตัดคอลัมน์ข้อมูลอ่อนไหว (เลขบัตรประชาชน เงินเดือนที่ไม่เกี่ยวข้อง) ออกก่อนแชร์ไฟล์ให้ทีมอื่น แทนที่จะต้องลบคอลัมน์ในต้นฉบับหรือ copy-paste ทีละคอลัมน์
จุดที่ต่างจาก INDEX แบบเก่าคือ CHOOSECOLS เป็น Dynamic Array ที่ Spill อัตโนมัติและรับหลายคอลัมน์ในสูตรเดียวโดยไม่ต้องพึ่ง Array Constant ที่อ่านยาก แต่ก็มาพร้อมข้อจำกัดคือใช้ได้เฉพาะ Excel 365 และ 2021 ขึ้นไปเท่านั้น
กราฟใน Excel มักต้องการข้อมูลที่อยู่ติดกัน ใช้ CHOOSECOLS ดึงคอลัมน์ 'เดือน' และ 'ยอดขาย' ที่อาจอยู่ห่างกันในตารางต้นฉบับ มาวางชิดกันเพื่อสร้างกราฟได้ง่าย
จากตาราง Database ใหญ่ที่มี 50 คอลัมน์ ใช้ CHOOSECOLS เลือกแสดงเฉพาะ 5 คอลัมน์สำคัญที่ผู้บริหารต้องดูใน Dashboard
สมมติว่า SalesTable มี 5 คอลัมน์ (ID, Name, Sales, Cost, Profit) สูตรนี้จะดึงเฉพาะคอลัมน์ที่ 1 (Name) และ 3 (Sales) มาแสดงต่อกันเป็นตารางใหม่ 2 คอลัมน์ โดยไม่แตะข้อมูลต้นฉบับเลย
ดึงข้อมูลจากตาราง Data โดยเอาคอลัมน์ที่ 3 ขึ้นก่อน ตามด้วยคอลัมน์ที่ 2 และ 1 ใช้เมื่อทีมบัญชีอยากเห็นยอดเงินขึ้นก่อนชื่อลูกค้า ทั้งที่ต้นฉบับเรียงชื่อไว้ก่อน
ใช้เลขลบเพื่อนับจากขวา โดย -1 คือคอลัมน์ขวาสุด และ -2 คือคอลัมน์ถัดมาทางซ้าย สูตรนี้จึงดึง 2 คอลัมน์สุดท้ายของตาราง Report เสมอ แม้ภายหลังจะมีคนแทรกคอลัมน์ใหม่เพิ่มเข้ามาตรงกลางตาราง สูตรก็ยังดึงคอลัมน์ท้ายสุดถูกต้องโดยไม่ต้องแก้เลข
ใช้ FILTER กรองแถวที่มียอดขายมากกว่า 1000 ก่อน จากนั้นใช้ CHOOSECOLS เลือกแสดงผลเฉพาะคอลัมน์ที่ 1 (ชื่อ) และ 3 (ยอดขาย) ของผลลัพธ์ที่กรองได้ ตัดคอลัมน์ต้นทุนกับกำไรที่ไม่จำเป็นในรายงานสรุปนี้ออกไป
สมมติ EmpTable มี 4 คอลัมน์ (ID, Name, Salary, เลขบัตรประชาชน) ก่อนส่งไฟล์ให้ทีมอื่นที่ไม่ควรเห็นเลขบัตรประชาชน ใช้ CHOOSECOLS ดึงมาแค่คอลัมน์ 1-3 ปลอดภัยกว่าการลบคอลัมน์ในต้นฉบับ เพราะต้นฉบับยังอยู่ครบ แค่ผลลัพธ์ที่ Spill ออกมาไม่มีคอลัมน์ที่ 4
จะขึ้น Error #VALUE! เช่น ตารางมี 5 คอลัมน์ แต่เลือกคอลัมน์ที่ 6 หรือเลือกคอลัมน์ที่ 0
CHOOSECOLS เขียนง่ายกว่าและรองรับการดึงหลายคอลัมน์พร้อมกันได้โดยตรง (ไม่ต้องใช้ Array Constant ซับซ้อนเหมือน INDEX) และเป็น Dynamic Array ที่ Spill อัตโนมัติ
ไม่ได้ครับ ใช้ได้เฉพาะ Excel 365, Excel 2021 ขึ้นไป และ Excel for Web เท่านั้น ถ้าเปิดไฟล์ในเครื่องที่มี Excel รุ่นเก่ากว่านี้ สูตรจะขึ้น #NAME? ทันที
CHOOSECOLS เลือกตามแนวคอลัมน์ ส่วน CHOOSEROWS เลือกตามแนวแถว ใช้คู่กันได้ปกติ เช่น =CHOOSECOLS(CHOOSEROWS(Data,1,2,3),1,3) เพื่อเลือกทั้งแถวและคอลัมน์ที่ต้องการพร้อมกันในสูตรเดียว
ได้ครับ CHOOSECOLS ไม่ได้บังคับว่าต้องระบุแต่ละคอลัมน์แค่ครั้งเดียว เช่น =CHOOSECOLS(Data,1,1,2) จะแสดงคอลัมน์ 1 สองครั้งติดกัน แล้วตามด้วยคอลัมน์ 2 มีประโยชน์เวลาต้องการทำสำเนาคอลัมน์ไว้เทียบข้อมูลก่อน-หลังในรายงานเดียว
ฟังก์ชันที่ผู้เขียนโยงไว้กับ CHOOSECOLS จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CHOOSEROWS ใช้ดึงแถวที่ต้องการจากตารางหรือ Array โดยระบุเลขลำดับแถว สามารถดึงได้หลายแถวพร้อมกัน จัดลำดับใหม่ หรือทำซ้ำแถวเดิมได้ รองรับการนับแถวจากล่างขึ้นบนโดยใช้เลขลบ (เช่น -1 คือแถวสุดท้าย)
COLUMN ส่งคืนหมายเลขคอลัมน์ (Column Number) ของเซลล์หรือช่วงที่ระบุ ส่งคืนตัวเลขคอลัมน์ 1, 2, 3… (A=1, B=2 เป็นต้น) มีประโยชน์ในการระบุตำแหน่งคอลัมน์แบบไดนามิก
นับจำนวนคอลัมน์ทั้งหมดในช่วงข้อมูลหรืออาร์เรย์ที่ระบุ ใช้บ่อยคู่กับ OFFSET หรือ VLOOKUP เพื่อทำสูตรแบบ dynamic ที่ปรับตามขนาดตารางเอง
DROP จะตัดข้อมูลออกตามจำนวนที่ระบุ ถ้าใส่เลขบวกจะตัดจากจุดเริ่มต้น (บน/ซ้าย) ทิ้งไป ถ้าใส่เลขลบจะตัดจากจุดสิ้นสุด (ล่าง/ขวา) ทิ้งไป ส่วนที่เหลือจะถูกนำมาแสดงผล
EXPAND ใช้ขยายขนาดของตารางข้อมูลให้ใหญ่ขึ้นตามจำนวนแถวหรือคอลัมน์ที่ระบุ หากตารางเดิมมีขนาดเล็กกว่า ส่วนที่เพิ่มขึ้นมาจะแสดงค่าเป็น #N/A (ค่าเริ่มต้น) หรือค่าที่เรากำหนดเองได้ (pad_with) มีประโยชน์มากในการปรับขนาดข้อมูลให้เท่ากันก่อนนำไปรวมด้วย VSTACK หรือ HSTACK
FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ
HSTACK เป็นฟังก์ชัน Dynamic Array ที่ใช้รวมข้อมูลจากหลายช่วงเข้าด้วยกันโดยนำมาเรียงต่อกันในแนวนอน (ต่อท้ายไปทางขวา) หากช่วงข้อมูลที่นำมารวมมีจำนวนแถวไม่เท่ากัน HSTACK จะเติมค่า #N/A ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ
LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มีเทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365
TAKE ช่วยตัดข้อมูลบางส่วนออกมาใช้งาน โดยระบุจำนวนที่ต้องการ ถ้าใส่เลขบวกจะดึงจากจุดเริ่มต้น (บน/ซ้าย) ถ้าใส่เลขลบจะดึงจากจุดสิ้นสุด (ล่าง/ขวา) คล้ายกับคำสั่ง LIMIT หรือ TOP/BOTTOM ใน Database
VSTACK เป็นฟังก์ชัน Dynamic Array ที่ใช้รวมข้อมูลจากหลายช่วงเข้าด้วยกันโดยนำมาเรียงต่อกันในแนวตั้ง (ต่อท้ายลงไปด้านล่าง) หากช่วงข้อมูลที่นำมารวมมีจำนวนคอลัมน์ไม่เท่ากัน VSTACK จะเติมค่า #N/A ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่