Thep Excel

TAKEดึงข้อมูลบางส่วนจากหัวหรือท้ายตาราง

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

fx
=TAKE(array, [rows], [columns])

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

อัปเดต 1 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
array Range/Array ตารางหรือช่วงข้อมูลต้นฉบับ
[rows]ไม่บังคับ Number All จำนวนแถวที่ต้องการ (+ ดึงจากบน, – ดึงจากล่าง) ถ้าไม่ระบุจะดึงมาทุกแถว
[columns]ไม่บังคับ Number All จำนวนคอลัมน์ที่ต้องการ (+ ดึงจากซ้าย, – ดึงจากขวา) ถ้าไม่ระบุจะดึงมาทุกคอลัมน์

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

ฟังก์ชัน TAKE ใน Excel ใช้สำหรับดึงข้อมูลจำนวนแถวหรือคอลัมน์ที่ต้องการ จากจุดเริ่มต้น (หัว) หรือจุดสิ้นสุด (ท้าย) ของตาราง หรือจะดึงทั้งสองแกนพร้อมกันก็ได้

How it works

Dashboard แสดง Top 10

ใช้ TAKE คู่กับ SORT เพื่อดึง 10 อันดับแรกของสินค้าขายดี หรือพนักงานดีเด่น มาแสดงในหน้า Dashboard โดยอัตโนมัติ

ดูรายการล่าสุด (Recent Activity)

ดึง Transaction ล่าสุด 20 รายการจากฐานข้อมูลที่บันทึกต่อท้ายไปเรื่อยๆ ด้วย =TAKE(Data, -20)

Examples

ตารางสินค้าProductTableA1:D6
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

ทุกสูตรด้านล่างอ้างถึงตารางนี้ พิมพ์ตามได้เลย ผลลัพธ์จะตรงกับที่เขียนไว้

ตัวอย่างที่ 1: ดึง 3 แถวแรก (Top 3)TAKE(A2:D6, 3)

TAKE(A2:D6, 3) ดึงข้อมูล 3 แถวแรกจากตารางสินค้าทั้งหมด โดยเอามาทุกคอลัมน์เพราะไม่ได้ระบุอาร์กิวเมนต์ columns

ได้ P001 P002 P003 ตามลำดับที่อยู่ในตารางต้นฉบับ ไม่มีการเรียงลำดับใหม่ แค่ตัดมาเฉพาะ 3 แถวบนสุด

ถ้าจำนวนแถวในตารางมีน้อยกว่า 3 สูตรนี้จะคืนแค่เท่าที่มีโดยไม่ error

fx
=TAKE(A2:D6, 3)

ผลลัพธ์P001 | เมาส์ไร้สาย | ปิด | 590 | P002 | คีย์บอร์ด | เปิด | 1290 | P003 | จอ 27 นิ้ว | ปิด | 8900
ตัวอย่างที่ 2: ดึง 2 แถวสุดท้าย (Last 2)TAKE(A2:D6, -2)

ใส่เลขติดลบ (-2) เพื่อดึงข้อมูลจากท้ายตารางขึ้นมาแทนที่จะเอาจากบน ได้ 2 แถวสุดท้ายคือ P004 กับ P005

เทคนิคนี้เหมาะกับตารางที่เรียงตามวันที่หรือลำดับเวลา เพราะแถวท้ายสุดมักเป็นรายการล่าสุด

จำง่ายๆ ว่าเลขบวกดึงจากบน เลขลบดึงจากล่าง ตัวเลขบอกจำนวนแถวเหมือนกันทั้งคู่

fx
=TAKE(A2:D6, -2)

ผลลัพธ์P004 | หูฟัง | เปิด | 2450 | P005 | เว็บแคม | ปิด | 1750
ตัวอย่างที่ 3: ดึงเฉพาะ 2 คอลัมน์แรกTAKE(A2:D6, , 2)

เว้นว่างอาร์กิวเมนต์ rows ไว้ (มีคอมม่าแต่ไม่ใส่ค่า) หมายถึงเอาทุกแถว แล้วระบุ columns=2 เพื่อเอาแค่ 2 คอลัมน์ซ้ายสุดคือรหัสสินค้ากับชื่อสินค้า

ผลลัพธ์เลยได้ทั้ง 5 แถว แต่ตัดคอลัมน์สถานะกับราคาออกไป เหลือแค่รหัสกับชื่อ

วิธีเว้นว่าง argument กลางแบบนี้ใช้ได้กับหลายฟังก์ชันอาร์เรย์ใน Excel ไม่ใช่แค่ TAKE

fx
=TAKE(A2:D6, , 2)

ผลลัพธ์P001 | เมาส์ไร้สาย | P002 | คีย์บอร์ด | P003 | จอ 27 นิ้ว | P004 | หูฟัง | P005 | เว็บแคม
ตัวอย่างที่ 4: Top 3 ราคาสูงสุดTAKE(SORT(A2:D6, 4, -1), 3)

SORT เรียงทั้งตารางตามคอลัมน์ 4 (ราคา) จากมากไปน้อยก่อน ได้ P003 P004 P005 P002 P001 ตามลำดับ แล้ว TAKE ดึงมาแค่ 3 แถวบนสุด

ผลลัพธ์เลยได้ Top 3 สินค้าราคาแพงที่สุดในตาราง คือ P003 P004 และ P005

คู่ TAKE กับ SORT แบบนี้เป็นแพทเทิร์นมาตรฐานเวลาต้องการทำ Top N Analysis

fx
=TAKE(SORT(A2:D6, 4, -1), 3)

ผลลัพธ์P003 | จอ 27 นิ้ว | ปิด | 8900 | P004 | หูฟัง | เปิด | 2450 | P005 | เว็บแคม | ปิด | 1750
ตัวอย่างที่ 5: ดึงทั้งแถวและคอลัมน์TAKE(A2:D6, -2, 2)

ระบุทั้ง rows และ columns พร้อมกัน rows=-2 เอา 2 แถวสุดท้าย columns=2 เอา 2 คอลัมน์ซ้ายสุด

ผลลัพธ์เลยเหลือแค่รหัสสินค้ากับชื่อสินค้าของ P004 กับ P005 เท่านั้น ตัดทั้งแถวบนๆ และคอลัมน์ขวาๆ ออกไปพร้อมกัน

สะดวกมากเวลาต้องการหั่นข้อมูลทั้งสองมิติในสูตรเดียว ไม่ต้องเขียน TAKE ซ้อนกันสองชั้น

fx
=TAKE(A2:D6, -2, 2)

ผลลัพธ์P004 | หูฟัง | P005 | เว็บแคม
ตัวอย่างที่ 6: ดึงค่าเดียวจากมุมขวาล่างTAKE(A2:D6, -1, -1)

rows=-1 กับ columns=-1 หมายถึงดึงมาแค่แถวสุดท้ายและคอลัมน์สุดท้าย ซึ่งก็คือมุมขวาล่างของตารางพอดี

แถวสุดท้ายคือ P005 คอลัมน์สุดท้ายคือราคา ผลลัพธ์เลยได้ค่าเดียวคือ 1750

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

fx
=TAKE(A2:D6, -1, -1)

ผลลัพธ์1750

FAQs

TAKE ต่างจาก DROP อย่างไร?+

ตรงข้ามกัน TAKE คือ "เอา" ส่วน DROP คือ "ทิ้ง" เช่น ถ้ามี 10 แถว TAKE(5) จะได้ 5 แถวแรก แต่ DROP(5) จะทิ้ง 5 แถวแรก เหลือ 5 แถวหลัง

TAKE เหมือน LIMIT ใน SQL ไหม?+

คล้ายกันมากครับ TAKE(range, 10) ก็เหมือน SELECT * FROM table LIMIT 10

ถ้าขอมากกว่าที่มีจะเกิดอะไร?+

TAKE จะคืนค่าทั้งหมดที่มีโดยไม่ Error เช่น TAKE(A1:A50, 100) จะได้ 50 แถว

เว้นว่าง rows หรือ columns ได้ไหม?+

ได้ครับ ถ้าเว้นว่าง rows จะได้ทุกแถว ถ้าเว้นว่าง columns จะได้ทุกคอลัมน์ เช่น TAKE(Data, , 2) เอาทุกแถวแต่ 2 คอลัมน์

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

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

Resources & Related

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

ฟังก์ชันนี้TAKELookup and reference
Lookup and reference (9)
CHOOSECOLS

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

CHOOSEROWS

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

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 เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ

INDEX

INDEX คืนค่าหรือ reference ของเซลล์จากตำแหน่งที่ระบุใน range หรือ array โดยอ้างอิงจากหมายเลขแถวและคอลัมน์ที่เราระบุ มักถูกใช้ร่วมกับ MATCH เพื่อสร้าง INDEX-MATCH pattern ที่ยืดหยุ่นกว่า VLOOKUP เยอะ เพราะสามารถดึงข้อมูลจากทิศทางไหนก็ได้ และไม่พังเมื่อมีการแทรกหรือลบคอลัมน์

SORT

SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่ต้องการ (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ต่างจาก SORTBY ที่ใช้คอลัมน์ภายนอกเป็นเกณฑ์

SORTBY

SORTBY เรียงลำดับข้อมูลตาม Array อื่นที่กำหนด รองรับหลายระดับการเรียง (multi-level) และสามารถกำหนดลำดับเอง (custom sort order) ด้วย XMATCH ต่างจาก SORT ที่เรียงตามคอลัมน์ภายในตัวเอง SORTBY ใช้คอลัมน์ภายนอกเป็นเกณฑ์ได้

UNIQUE

UNIQUE เป็น Dynamic Array Function ที่คืนค่าที่ไม่ซ้ำจาก Array โดยสามารถตรวจซ้ำตามแถวหรือคอลัมน์ (by_col) และเลือกคืนเฉพาะค่าที่พบครั้งเดียว (exactly_once) ผลลัพธ์เป็น Spill Range ที่อัปเดตอัตโนมัติ ใช้ร่วมกับ SORT FILTER COUNTIF เพื่อสร้างรายงานไดนามิกและ dropdown ที่อัปเดตเอง

Comments

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