คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

TAKE

Dynamic ArrayระดับกลางExcel 2024+ไม่มีใน Excel 2016–2021

อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างคำนวณด้วย LibreOffice และตรงกับตัวคำนวณของหน้าเว็บ

TAKE คืออะไร

ดึงจำนวนแถวหรือคอลัมน์ที่ต้องการจากต้นหรือท้ายของตาราง ใช้ทำ Top 3 หรือดูรายการล่าสุด

ใช้เมื่อไหร่

  • ทำรายงาน Top 3 หรือ Top 10 ที่อัปเดตเองเมื่อยอดเปลี่ยน
  • ดูรายการล่าสุด 3–5 รายการจากตารางที่เรียงตามวันที่
  • ตัดผลลัพธ์ของ SORT หรือ FILTER ให้เหลือเฉพาะแถวหรือคอลัมน์ที่ต้องการ

รูปแบบสูตร

=TAKE(array, rows, [columns])

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
arrayจำเป็นช่วงหรือ array ที่ต้องการดึงแถวหรือคอลัมน์
rowsจำเป็นจำนวนแถว ค่าบวกนับจากบน ค่าติดลบนับจากท้าย (เว้นว่างได้เมื่อใส่ columns)
[columns]ไม่บังคับจำนวนคอลัมน์ ค่าบวกนับจากซ้าย ค่าติดลบนับจากขวา ถ้าไม่ใส่ได้ทุกคอลัมน์

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

SORT เรียงทั้งตารางตามยอดสุทธิจากมากไปน้อยก่อน แล้ว TAKE เอาเฉพาะจำนวนแถวแรกตาม I4

A17
=TAKE(SORT(A5:D14,4,-1),I4)
คอลัมน์ที่ใช้เรียง (sort_index) 4 คือคอลัมน์ที่ 4 ของ A5:D14 = คอลัมน์ D "ยอดสุทธิ (บาท)"
แถวABCDEF
4เลขที่คำสั่งซื้อวันที่พนักงานขายยอดสุทธิ (บาท)
5SF-2025-07341/12/2025สุภาพร หงษ์ทอง355,320
6SF-2025-07382/12/2025กมลชนก พงษ์พานิช1,235,098
7SF-2025-07393/12/2025นันทิดา กิจเจริญ22,878
8SF-2025-07414/12/2025นันทิดา กิจเจริญ298,740
9SF-2025-07446/12/2025สุภาพร หงษ์ทอง269,705
10SF-2025-07508/12/2025กมลชนก พงษ์พานิช522,200
11SF-2025-07569/12/2025สุภาพร หงษ์ทอง1,057,572
12SF-2025-076011/12/2025กมลชนก พงษ์พานิช1,049,152
13SF-2025-077415/12/2025นันทิดา กิจเจริญ334,720
14SF-2025-078419/12/2025กมลชนก พงษ์พานิช289,275
15ผลลัพธ์จากสูตรในช่อง A17 · spill ลงมาเอง
16เลขที่คำสั่งซื้อวันที่พนักงานขายยอดสุทธิ (บาท)
17SF-2025-07382/12/2025กมลชนก พงษ์พานิช1,235,098
18SF-2025-07569/12/2025สุภาพร หงษ์ทอง1,057,572
19SF-2025-076011/12/2025กมลชนก พงษ์พานิช1,049,152
20
21
22
23
24
A5:D14
ช่องกรอกและผลลัพธ์
สูตรที่ A17 (ผลลัพธ์ spill)
ขั้นตอนการคำนวณ (5)
ผลลัพธ์ในกรอบเส้นประมาจากสูตรเดียวในช่องสีเขียวมะนาว คลิกช่องไหนในผลลัพธ์ก็ได้เพื่อดูสูตร · แก้ข้อมูลด้านบนแล้วผลลัพธ์จะขยายหรือหดเอง · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 Top 3” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร: SORT(A5:D14,4,-1) เรียงตามคอลัมน์ที่ 4 (ยอดสุทธิ) จากมากไปน้อย แล้ว TAKE(…,3) เอา 3 แถวแรก
  • เลือก I4 เป็น 5 จะได้ Top 5 ผลลัพธ์ยืดลงมาเอง
  • ต้องเรียงก่อนแล้วค่อย TAKE ถ้าสลับกัน จะได้แค่ 3 แถวแรกของตารางเดิมมาเรียง ไม่ใช่ 3 ยอดสูงสุด

ตัวอย่างทั้งหมด 4 แบบ

  1. 1Top 3 คำสั่งซื้อยอดสูงสุด · SORT เรียงทั้งตารางตามยอดสุทธิจากมากไปน้อยก่อน แล้ว TAKE เอาเฉพาะจำนวนแถวแรกตาม I4
  2. 23 คำสั่งซื้อล่าสุดด้วย rows ติดลบ · ตารางเรียงตามวันที่จากเก่าไปใหม่ แถวท้ายสุดจึงเป็นรายการล่าสุด rows ติดลบนับจากท้ายตาราง
  3. 3เลือกแถวและคอลัมน์พร้อมกัน · ทำประกาศรางวัลบริการยอดเยี่ยม: SORT เรียงตามคะแนนลูกค้า แล้ว TAKE(…,I4,2) เอาแถวแรกตาม I4 และแค่ 2 คอลัมน์แรก คือชื่อกับภูมิภาค
  4. 43 คำสั่งซื้อล่าสุดของพนักงานที่เลือก · FILTER ดึงเฉพาะคำสั่งซื้อของพนักงานใน I4 แล้ว TAKE(…,-3) เอา 3 รายการท้ายสุด

ข้อผิดพลาดที่พบบ่อย

#CALC!สาเหตุ: rows หรือ columns เป็น 0 ได้ array ว่างแก้: ใส่จำนวนที่ไม่ใช่ 0
Top 3 ไม่ใช่ยอดสูงสุดสาเหตุ: ใช้ TAKE ก่อนเรียง ได้แค่ 3 แถวแรกของตารางเดิมแก้: ครอบ SORT หรือ SORTBY ไว้ด้านในก่อน แล้วค่อย TAKE
#SPILL!สาเหตุ: มีข้อมูลขวางพื้นที่ผลลัพธ์แก้: ลบหรือย้ายข้อมูลที่ขวาง
#NAME?สาเหตุ: เปิดใน Excel 2016, 2019 หรือ 2021แก้: ใช้สูตรในชีต Excel 2016-2021

เคล็ดลับจากห้องเรียน

Top N ที่เปลี่ยนจำนวนได้: ใส่ rows เป็นช่อง เช่น =TAKE(SORT(A5:D14,4,-1),I4)
ขอจำนวนแถวมากกว่าที่มี TAKE คืนเท่าที่มี ไม่เกิด Error
ต้องการตัดแถวออกแทนการเลือกเก็บ ใช้ DROP เช่น =DROP(A5:D14,1) ตัดแถวแรกทิ้ง

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
TAKE

ใช้ Excel 2016, 2019 หรือ 2021 ให้ใช้สูตรเหล่านี้แทน ได้ผลเท่ากับตัวอย่างที่ระบุ และมีในชีต “Excel 2016-2021” ของไฟล์ฝึก ต่างจาก TAKE ตรงที่ผลลัพธ์ไม่ spill เอง ต้องลากสูตรลงให้พอกับจำนวนรายการ (ไม่ต้องกด Ctrl + Shift + Enter)

แทนตัวอย่างสูตรทางเลือก
ตัวอย่าง 1 ยอด Top 3=LARGE($D$5:$D$14,ROWS($A$5:A5)) แล้วลากลง 3 แถว
ตัวอย่าง 1 เลขที่คำสั่งซื้อของยอดนั้น=INDEX($A$5:$A$14,MATCH(H5,$D$5:$D$14,0))
ตัวอย่าง 2 3 รายการล่าสุด=INDEX($A$5:$A$14,ROWS($A$5:$A$14)-3+ROWS($A$5:A5)) แล้วลากลง 3 แถว

เลือกวิธีให้ถูกงาน

วิธีใช้เมื่อตัวอย่าง
TAKEเอาจำนวนแถวหรือคอลัมน์จากต้นหรือท้าย (2024 ขึ้นไป)=TAKE(SORT(A5:D14,4,-1),3)
LARGE + INDEX/MATCHTop N ได้ทุกเวอร์ชัน (ลากสูตรลง)=LARGE($D$5:$D$14,ROWS($A$5:A5))
FILTERเลือกแถวตามเงื่อนไข ไม่ใช่ตามตำแหน่ง=FILTER(A5:D14,D5:D14>=1000000)
XLOOKUP ค้นจากล่างขึ้นบนต้องการแค่รายการล่าสุดรายการเดียว=XLOOKUP(I4,C5:C14,A5:A14,,0,-1)

ใน Power BI ใช้อะไร

เลือก n แถวแรกตามค่าที่ใช้เรียง ได้ตารางไว้ใช้ต่อ

Power QueryTable.FirstN, Table.Skip

เก็บแถวบนสุด หรือข้ามแถวบนสุด

ไฟล์ฝึก TAKE

9Expert-TAKE-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 31 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 Top 32 รายการล่าสุด3 แถวและคอลัมน์4 ล่าสุดของพนักงานแบบฝึกหัดเฉลยสรุปย่อExcel 2016-2021

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1เลขที่ 2 คำสั่งซื้อสุดท้ายในตาราง
  2. ข้อ 2ยอดสุทธิ 3 อันดับสูงสุด เรียงจากมากไปน้อย
  3. ข้อ 3ชื่อพนักงานขายของ 3 คำสั่งซื้อที่ยอดสูงสุด
  4. ข้อ 4ยอดสุทธิที่ต่ำที่สุด 2 รายการ เรียงจากน้อยไปมาก
  5. ข้อ 5ผลรวมยอดสุทธิของ 3 อันดับสูงสุด

วิดีโอประกอบ

คลิปเรื่อง TAKE จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

แบบทดสอบ 3 ข้อ

1. =TAKE(A5:D14,-3) ได้อะไร

2. ทำ Top 3 ยอดสุทธิ (คอลัมน์ที่ 4) ต้องเขียนแบบใด

3. =TAKE(A5:D14,0) ได้อะไร

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม