TAKE ช่วยตัดข้อมูลบางส่วนออกมาใช้งาน โดยระบุจำนวนที่ต้องการ ถ้าใส่เลขบวกจะดึงจากจุดเริ่มต้น (บน/ซ้าย) ถ้าใส่เลขลบจะดึงจากจุดสิ้นสุด (ล่าง/ขวา) คล้ายกับคำสั่ง LIMIT หรือ TOP/BOTTOM ใน Database
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| array | Range/Array | ตารางหรือช่วงข้อมูลต้นฉบับ | |
| [rows]ไม่บังคับ | Number | All | จำนวนแถวที่ต้องการ (+ ดึงจากบน, – ดึงจากล่าง) ถ้าไม่ระบุจะดึงมาทุกแถว |
| [columns]ไม่บังคับ | Number | All | จำนวนคอลัมน์ที่ต้องการ (+ ดึงจากซ้าย, – ดึงจากขวา) ถ้าไม่ระบุจะดึงมาทุกคอลัมน์ |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน TAKE ใน Excel ใช้สำหรับดึงข้อมูลจำนวนแถวหรือคอลัมน์ที่ต้องการ จากจุดเริ่มต้น (หัว) หรือจุดสิ้นสุด (ท้าย) ของตาราง หรือจะดึงทั้งสองแกนพร้อมกันก็ได้
ใช้ TAKE คู่กับ SORT เพื่อดึง 10 อันดับแรกของสินค้าขายดี หรือพนักงานดีเด่น มาแสดงในหน้า Dashboard โดยอัตโนมัติ
ดึง Transaction ล่าสุด 20 รายการจากฐานข้อมูลที่บันทึกต่อท้ายไปเรื่อยๆ ด้วย =TAKE(Data, -20)
| A | B | C | D | |
|---|---|---|---|---|
| 1 | รหัสสินค้า | ชื่อสินค้า | สถานะ | ราคา |
| 2 | P001 | เมาส์ไร้สาย | ปิด | 590 |
| 3 | P002 | คีย์บอร์ด | เปิด | 1,290 |
| 4 | P003 | จอ 27 นิ้ว | ปิด | 8,900 |
| 5 | P004 | หูฟัง | เปิด | 2,450 |
| 6 | P005 | เว็บแคม | ปิด | 1,750 |
ทุกสูตรด้านล่างอ้างถึงตารางนี้ พิมพ์ตามได้เลย ผลลัพธ์จะตรงกับที่เขียนไว้
TAKE(A2:D6, 3) ดึงข้อมูล 3 แถวแรกจากตารางสินค้าทั้งหมด โดยเอามาทุกคอลัมน์เพราะไม่ได้ระบุอาร์กิวเมนต์ columns
ได้ P001 P002 P003 ตามลำดับที่อยู่ในตารางต้นฉบับ ไม่มีการเรียงลำดับใหม่ แค่ตัดมาเฉพาะ 3 แถวบนสุด
ถ้าจำนวนแถวในตารางมีน้อยกว่า 3 สูตรนี้จะคืนแค่เท่าที่มีโดยไม่ error
ใส่เลขติดลบ (-2) เพื่อดึงข้อมูลจากท้ายตารางขึ้นมาแทนที่จะเอาจากบน ได้ 2 แถวสุดท้ายคือ P004 กับ P005
เทคนิคนี้เหมาะกับตารางที่เรียงตามวันที่หรือลำดับเวลา เพราะแถวท้ายสุดมักเป็นรายการล่าสุด
จำง่ายๆ ว่าเลขบวกดึงจากบน เลขลบดึงจากล่าง ตัวเลขบอกจำนวนแถวเหมือนกันทั้งคู่
เว้นว่างอาร์กิวเมนต์ rows ไว้ (มีคอมม่าแต่ไม่ใส่ค่า) หมายถึงเอาทุกแถว แล้วระบุ columns=2 เพื่อเอาแค่ 2 คอลัมน์ซ้ายสุดคือรหัสสินค้ากับชื่อสินค้า
ผลลัพธ์เลยได้ทั้ง 5 แถว แต่ตัดคอลัมน์สถานะกับราคาออกไป เหลือแค่รหัสกับชื่อ
วิธีเว้นว่าง argument กลางแบบนี้ใช้ได้กับหลายฟังก์ชันอาร์เรย์ใน Excel ไม่ใช่แค่ TAKE
SORT เรียงทั้งตารางตามคอลัมน์ 4 (ราคา) จากมากไปน้อยก่อน ได้ P003 P004 P005 P002 P001 ตามลำดับ แล้ว TAKE ดึงมาแค่ 3 แถวบนสุด
ผลลัพธ์เลยได้ Top 3 สินค้าราคาแพงที่สุดในตาราง คือ P003 P004 และ P005
คู่ TAKE กับ SORT แบบนี้เป็นแพทเทิร์นมาตรฐานเวลาต้องการทำ Top N Analysis
ระบุทั้ง rows และ columns พร้อมกัน rows=-2 เอา 2 แถวสุดท้าย columns=2 เอา 2 คอลัมน์ซ้ายสุด
ผลลัพธ์เลยเหลือแค่รหัสสินค้ากับชื่อสินค้าของ P004 กับ P005 เท่านั้น ตัดทั้งแถวบนๆ และคอลัมน์ขวาๆ ออกไปพร้อมกัน
สะดวกมากเวลาต้องการหั่นข้อมูลทั้งสองมิติในสูตรเดียว ไม่ต้องเขียน TAKE ซ้อนกันสองชั้น
rows=-1 กับ columns=-1 หมายถึงดึงมาแค่แถวสุดท้ายและคอลัมน์สุดท้าย ซึ่งก็คือมุมขวาล่างของตารางพอดี
แถวสุดท้ายคือ P005 คอลัมน์สุดท้ายคือราคา ผลลัพธ์เลยได้ค่าเดียวคือ 1750
เทคนิคนี้ใช้ดึงค่าเดี่ยวจากมุมของตารางโดยไม่ต้องรู้ว่าตารางมีกี่แถวกี่คอลัมน์จริงๆ เพราะ -1 หมายถึงตัวสุดท้ายเสมอไม่ว่าตารางจะใหญ่แค่ไหน
ตรงข้ามกัน TAKE คือ "เอา" ส่วน DROP คือ "ทิ้ง" เช่น ถ้ามี 10 แถว TAKE(5) จะได้ 5 แถวแรก แต่ DROP(5) จะทิ้ง 5 แถวแรก เหลือ 5 แถวหลัง
คล้ายกันมากครับ TAKE(range, 10) ก็เหมือน SELECT * FROM table LIMIT 10
TAKE จะคืนค่าทั้งหมดที่มีโดยไม่ Error เช่น TAKE(A1:A50, 100) จะได้ 50 แถว
ได้ครับ ถ้าเว้นว่าง rows จะได้ทุกแถว ถ้าเว้นว่าง columns จะได้ทุกคอลัมน์ เช่น TAKE(Data, , 2) เอาทุกแถวแต่ 2 คอลัมน์
Excel 365 และ Excel 2021 ขึ้นไปเท่านั้น (Dynamic Array function)
ฟังก์ชันที่ผู้เขียนโยงไว้กับ TAKE จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CHOOSECOLS ใช้ดึงคอลัมน์ที่ต้องการจากตารางหรือ Array โดยระบุเลขลำดับคอลัมน์ สามารถดึงได้หลายคอลัมน์พร้อมกัน จัดลำดับใหม่ หรือทำซ้ำคอลัมน์เดิมได้ รองรับการนับคอลัมน์จากขวาสุดโดยใช้เลขลบ (เช่น -1 คือคอลัมน์ขวาสุด)
CHOOSEROWS ใช้ดึงแถวที่ต้องการจากตารางหรือ Array โดยระบุเลขลำดับแถว สามารถดึงได้หลายแถวพร้อมกัน จัดลำดับใหม่ หรือทำซ้ำแถวเดิมได้ รองรับการนับแถวจากล่างขึ้นบนโดยใช้เลขลบ (เช่น -1 คือแถวสุดท้าย)
DROP จะตัดข้อมูลออกตามจำนวนที่ระบุ ถ้าใส่เลขบวกจะตัดจากจุดเริ่มต้น (บน/ซ้าย) ทิ้งไป ถ้าใส่เลขลบจะตัดจากจุดสิ้นสุด (ล่าง/ขวา) ทิ้งไป ส่วนที่เหลือจะถูกนำมาแสดงผล
EXPAND ใช้ขยายขนาดของตารางข้อมูลให้ใหญ่ขึ้นตามจำนวนแถวหรือคอลัมน์ที่ระบุ หากตารางเดิมมีขนาดเล็กกว่า ส่วนที่เพิ่มขึ้นมาจะแสดงค่าเป็น #N/A (ค่าเริ่มต้น) หรือค่าที่เรากำหนดเองได้ (pad_with) มีประโยชน์มากในการปรับขนาดข้อมูลให้เท่ากันก่อนนำไปรวมด้วย VSTACK หรือ HSTACK
FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ
INDEX คืนค่าหรือ reference ของเซลล์จากตำแหน่งที่ระบุใน range หรือ array โดยอ้างอิงจากหมายเลขแถวและคอลัมน์ที่เราระบุ มักถูกใช้ร่วมกับ MATCH เพื่อสร้าง INDEX-MATCH pattern ที่ยืดหยุ่นกว่า VLOOKUP เยอะ เพราะสามารถดึงข้อมูลจากทิศทางไหนก็ได้ และไม่พังเมื่อมีการแทรกหรือลบคอลัมน์
SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่ต้องการ (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ต่างจาก SORTBY ที่ใช้คอลัมน์ภายนอกเป็นเกณฑ์
SORTBY เรียงลำดับข้อมูลตาม Array อื่นที่กำหนด รองรับหลายระดับการเรียง (multi-level) และสามารถกำหนดลำดับเอง (custom sort order) ด้วย XMATCH ต่างจาก SORT ที่เรียงตามคอลัมน์ภายในตัวเอง SORTBY ใช้คอลัมน์ภายนอกเป็นเกณฑ์ได้
UNIQUE เป็น Dynamic Array Function ที่คืนค่าที่ไม่ซ้ำจาก Array โดยสามารถตรวจซ้ำตามแถวหรือคอลัมน์ (by_col) และเลือกคืนเฉพาะค่าที่พบครั้งเดียว (exactly_once) ผลลัพธ์เป็น Spill Range ที่อัปเดตอัตโนมัติ ใช้ร่วมกับ SORT FILTER COUNTIF เพื่อสร้างรายงานไดนามิกและ dropdown ที่อัปเดตเอง
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่