Thep Excel

MAKEARRAYสร้าง Array ด้วย LAMBDA แบบกำหนดเอง

MAKEARRAY สร้าง Dynamic Array ตามขนาดที่กำหนด (rows × cols) โดยใช้ LAMBDA function คำนวณค่าในแต่ละเซลล์ตามตำแหน่ง row และ column index (เริ่มที่ 1) ต่างจาก SEQUENCE ที่สร้างเฉพาะตัวเลขเรียงลำดับ MAKEARRAY สามารถสร้างข้อมูลได้หลากหลายรูปแบบตามการคำนวณที่กำหนดใน LAMBDA เช่น ตารางสูตรคูณ matrix ทางคณิตศาสตร์ pattern ข้อความ หรือค่าสุ่ม เหมาะสำหรับสร้าง dataset ขนาดใหญ่ที่มีรูปแบบเฉพาะ หรือ lookup table แบบ dynamic โดย LAMBDA จะถูกเรียกทำงานสำหรับทุกเซลล์ใน array ผลลัพธ์ ทำให้สร้างข้อมูลจำนวนมากได้อย่างรวดเร็วด้วยสูตรเดียว

fx
=MAKEARRAY(rows, cols, lambda)

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

อัปเดต 18 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
rows Number จำนวนแถวของ Array ที่ต้องการสร้าง ต้องเป็นจำนวนเต็มบวก มากกว่าหรือเท่ากับ 1 ถ้าน้อยกว่า 1 หรือไม่ใช่ตัวเลขจะได้ #VALUE! error
cols Number จำนวนคอลัมน์ของ Array ที่ต้องการสร้าง ต้องเป็นจำนวนเต็มบวก มากกว่าหรือเท่ากับ 1 ถ้าน้อยกว่า 1 หรือไม่ใช่ตัวเลขจะได้ #VALUE! error
lambda Function LAMBDA function ที่รับ 2 parameters: (1) row index และ (2) column index โดย index เริ่มต้นที่ 1 (ไม่ใช่ 0) และ return ค่าที่จะใส่ในเซลล์ตำแหน่งนั้น LAMBDA ต้องมี parameter ครบ 2 ตัวเสมอ แม้จะไม่ได้ใช้ในการคำนวณก็ตาม

Additional Notes

เคยเจอมั้ยครับ… ตอนต้องสร้างข้อมูลทดสอบหลักร้อยหลักพันแถว แล้วต้องนั่งพิมพ์เองทีละเซลล์ เหนื่อยมากกกก 😭

.

MAKEARRAY เกิดมาเพื่อแก้ปัญหานี้แหละครับ 🚀

.

MAKEARRAY สร้าง Dynamic Array ขนาดที่กำหนด (rows × cols) โดยใช้ LAMBDA function คำนวณค่าในแต่ละเซลล์ตามตำแหน่ง row และ column ต่างจาก SEQUENCE ที่สร้างเฉพาะตัวเลขเรียงลำดับ MAKEARRAY สามารถสร้างข้อมูลที่ซับซ้อนได้มากกว่า 😎

.

เช่น สร้างตารางสูตรคูณ, matrix คำนวณ, pattern พิเศษ, หรือแม้แต่ข้อมูลสุ่มหลักพันแถวก็ได้ ด้วยสูตรเดียว! 💡

.

โดย LAMBDA จะถูกเรียกทำงานสำหรับทุกเซลล์ในผลลัพธ์ ทำให้สร้างข้อมูลจำนวนมากได้อย่างรวดเร็ว เหมาะสำหรับสร้าง dataset ทดสอบ lookup table หรือข้อมูลที่มีรูปแบบเฉพาะ

.

ส่วนตัวผมใช้ MAKEARRAY บ่อยมากตอนต้องสร้างข้อมูลทดสอบครับ ประหยัดเวลาได้เป็นชั่วโมงเลย 😅

.

รองรับใน Excel 365 และ Excel 2024 เท่านั้นนะครับ

How it works

สร้างตารางสูตรคูณสำหรับการสอน

ใช้ MAKEARRAY สร้างตารางสูตรคูณขนาดใดก็ได้ทันที เช่น 12×12 หรือ 20×20 สำหรับใช้ในการเรียนการสอนคณิตศาสตร์ ครูสามารถปรับขนาดตารางตามความต้องการได้อย่างรวดเร็ว

สร้าง Dataset ทดสอบขนาดใหญ่

สร้างข้อมูลสุ่มหลักพัน-หลักหมื่นเซลล์เพื่อทดสอบสูตร performance หรือ model โดยไม่ต้องพิมพ์ข้อมูลเอง ประหยัดเวลาและสร้างข้อมูลที่มีความหลากหลายสูง

สร้าง Matrix สำหรับคำนวณทางคณิตศาสตร์

สร้าง Identity Matrix, Distance Matrix, Correlation Matrix หรือ Matrix รูปแบบอื่นๆ สำหรับการคำนวณทาง Linear Algebra สถิติ และวิทยาศาสตร์ข้อมูล

สร้าง Lookup Table แบบ Calculated

สร้างตารางอ้างอิงที่มีการคำนวณซับซ้อน เช่น tax bracket table, discount tier table หรือ pricing matrix ที่ค่าในแต่ละเซลล์คำนวณจากตำแหน่งและเงื่อนไขต่างๆ

สร้าง Pattern และ Grid ที่ซับซ้อน

สร้าง visual pattern เช่น checkerboard, gradient, spiral หรือ fractal pattern สำหรับใช้ใน data visualization หรือการออกแบบ dashboard ที่ต้องการ pattern พิเศษ

Examples

ตัวอย่างที่ 1: Foundation – Array ค่าคงที่MAKEARRAY(2, 3, LAMBDA(r, c, "X"))

สร้าง Array ขนาด 2 แถว × 3 คอลัมน์ เติมค่า "X" ทุกเซลล์ แม้ LAMBDA ไม่ได้ใช้ parameter r และ c ในการคำนวณ แต่ต้องประกาศไว้ครบ 2 ตัวเสมอ

ตัวอย่างนี้แสดงให้เห็นว่า MAKEARRAY สามารถสร้าง Array ที่เติมค่าคงที่เหมือนกันทุกเซลล์ได้ครับ

fx
=MAKEARRAY(2, 3, LAMBDA(r, c, "X"))

ผลลัพธ์{"X","X","X";"X","X","X"}
ตัวอย่างที่ 2: Foundation – ใช้ row indexMAKEARRAY(5, 1, LAMBDA(r, c, r))

สร้าง Array แนวตั้ง (5 แถว × 1 คอลัมน์) โดยใช้ row index (r) เป็นค่าโดยตรง

เนื่องจาก r เริ่มที่ 1 จึงได้ลำดับเลข 1, 2, 3, 4, 5 แนวตั้ง ตัวอย่างนี้แสดงว่า row index เริ่มนับจาก 1 ไม่ใช่ 0 (1-based indexing) ต้องระวังถ้าเคยใช้ภาษา programming ที่เริ่มนับจาก 0 อยู่นะครับ 😅

fx
=MAKEARRAY(5, 1, LAMBDA(r, c, r))

ผลลัพธ์{1;2;3;4;5}
ตัวอย่างที่ 3: Foundation – ใช้ทั้ง row และ column indexMAKEARRAY(3, 3, LAMBDA(r, c, r*c))

สร้างตารางสูตรคูณ 3×3 โดยคูณ row index (r) กับ column index (c)

แถวที่ 1: 1×1=1, 1×2=2, 1×3=3
แถวที่ 2: 2×1=2, 2×2=4, 2×3=6
แถวที่ 3: 3×1=3, 3×2=6, 3×3=9

นี่คือตัวอย่างง่ายๆ ที่แสดงให้เห็นว่า MAKEARRAY สามารถใช้ทั้ง r และ c ในการคำนวณค่าแต่ละเซลล์ได้ครับ เหมาะสำหรับสร้างตารางสูตรคูณเพื่อใช้สอนเด็กๆ 😎

fx
=MAKEARRAY(3, 3, LAMBDA(r, c, r*c))

ผลลัพธ์{1,2,3;2,4,6;3,6,9}
ตัวอย่างที่ 4: Practical – สร้าง Identity MatrixMAKEARRAY(4, 4, LAMBDA(r, c, IF(r=c, 1, 0)))

สร้าง Identity Matrix 4×4 (matrix ที่เส้นทแยงมุมเป็น 1 ที่เหลือเป็น 0) โดยใช้ IF ตรวจสอบว่า row index เท่ากับ column index หรือไม่

ถ้าเท่ากัน (อยู่บนเส้นทแยงมุม) ให้ค่า 1 ถ้าไม่เท่าให้ค่า 0

Identity Matrix นี้ใช้ในการคำนวณทางคณิตศาสตร์และ Linear Algebra ครับ เคยเรียน Matrix ในมหา'ลัยแล้วต้องคำนวณด้วยมือ… ตอนนี้ใช้ Excel สร้างได้ทันทีเลย 😎

fx
=MAKEARRAY(4, 4, LAMBDA(r, c, IF(r=c, 1, 0)))

ผลลัพธ์{1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1}
ตัวอย่างที่ 5: Practical – สร้างข้อความพิกัดMAKEARRAY(3, 4, LAMBDA(r, c, "R"&r&"C"…

สร้าง Array 3×4 ที่แสดงพิกัดตำแหน่งของแต่ละเซลล์ในรูปแบบ "R{row}C{col}" โดยใช้ & ต่อข้อความ "R" กับ row index และ "C" กับ column index

เหมาะสำหรับการทำ reference grid หรือ debug ตำแหน่งข้อมูล ส่วนตัวผมใช้วิธีนี้บ่อยมากเวลาต้อง debug ว่า Array ของเราโครงสร้างเป็นยังไง 💡

fx
=MAKEARRAY(3, 4, LAMBDA(r, c, "R"&r&"C"&c))

ผลลัพธ์{"R1C1","R1C2","R1C3","R1C4";"R2C1","R2C2","R2C3","R2C4";"R3C1","R3C2","R3C3","R3C4"}
ตัวอย่างที่ 6: Practical – สร้างลาย CheckerboardMAKEARRAY(6, 6, LAMBDA(r, c, IF(MOD(r+c, 2)=0, "■", "□")))

สร้างลาย Checkerboard (กระดานหมากรุก) 6×6 โดยใช้ MOD ตรวจสอบว่า (row+col) หารด้วย 2 ลงตัวหรือไม่

ถ้าลงตัว (เศษ 0) แสดงสี่เหลี่ยมเติม (■) ถ้าไม่ลงตัว (เศษ 1) แสดงสี่เหลี่ยมว่าง (□)

ตัวอย่างนี้เจ๋งตรงที่ pattern สลับสีได้จากสูตรง่ายๆ แค่ MOD เลยครับ ไม่ต้องใส่เงื่อนไขซับซ้อน 😎

fx
=MAKEARRAY(6, 6, LAMBDA(r, c, IF(MOD(r+c, 2)=0, "■", "□")))

ผลลัพธ์{"□","■","□","■","□","■";"■","□","■","□","■","□";…}
ตัวอย่างที่ 7: Advanced – สุ่มตัวเลข 1-100MAKEARRAY(10, 5, LAMBDA(r, c, RANDBETWEEN(1, 100)))

สร้าง Array 10×5 (50 เซลล์) เติมตัวเลขสุ่มระหว่าง 1-100 ในทุกเซลล์ โดยใช้ RANDBETWEEN ในทุกตำแหน่ง

ค่าจะเปลี่ยนทุกครั้งที่ recalculate (กด F9 หรือมีการเปลี่ยนแปลงใน workbook)

ส่วนตัวผมใช้วิธีนี้สร้าง dataset ทดสอบบ่อยมากครับ แทนที่จะนั่งพิมพ์ข้อมูลเองหลักร้อยหลักพัน ให้ MAKEARRAY สร้างให้ทันที 😎

fx
=MAKEARRAY(10, 5, LAMBDA(r, c, RANDBETWEEN(1, 100)))

ผลลัพธ์{43,87,12,65,29;91,33,58,76,14;…}
ตัวอย่างที่ 8: Advanced – Distance MatrixMAKEARRAY(5, 5, LAMBDA(r, c, ABS(r-c)))

สร้าง Distance Matrix 5×5 ที่แสดงระยะห่างระหว่างตำแหน่ง โดยคำนวณจาก ABS(r-c)

เส้นทแยงมุมเป็น 0 (ระยะห่างจากตัวเองเป็น 0) ยิ่งห่างจากเส้นทแยงค่ายิ่งมาก

matrix แบบนี้ใช้ในการคำนวณ graph theory และ data analysis ครับ ถ้าเคยทำงานเกี่ยวกับ network หรือ logistics น่าจะเจอบ่อย 💡

fx
=MAKEARRAY(5, 5, LAMBDA(r, c, ABS(r-c)))

ผลลัพธ์{0,1,2,3,4;1,0,1,2,3;2,1,0,1,2;3,2,1,0,1;4,3,2,1,0}
ตัวอย่างที่ 9: Advanced – สุ่มตัวอักษร A-ZMAKEARRAY(4, 8, LAMBDA(r, c, CHAR(RANDBETWEEN(65, 90))))

สร้าง Array 4×8 เติมตัวอักษรพิมพ์ใหญ่สุ่ม A-Z โดยใช้ RANDBETWEEN(65, 90) สุ่มเลข ASCII code (A=65, Z=90) แล้วแปลงเป็นตัวอักษรด้วย CHAR

ค่าจะเปลี่ยนทุกครั้งที่ recalculate

เหมาะสำหรับสร้างรหัสสุ่มหรือข้อมูลทดสอบแบบตัวอักษร ผมเคยใช้วิธีนี้สร้าง random password ทดสอบครับ 😅

fx
=MAKEARRAY(4, 8, LAMBDA(r, c, CHAR(RANDBETWEEN(65, 90))))

ผลลัพธ์{"K","M","A","X","B","F","T","L";"P","Z","D","Q","H","N","V","G";…}
ตัวอย่างที่ 10: Advanced – Pascal's Triangle RowMAKEARRAY(1, 7, LAMBDA(r, c, COMBIN(6, c-1)))

สร้างแถวที่ 7 ของ Pascal's Triangle โดยใช้ COMBIN(n, k) ที่ n=6 และ k=c-1

(เนื่องจาก column index เริ่มที่ 1 ต้องลบ 1 เพื่อให้ k เริ่มที่ 0)

Pascal's Triangle แต่ละแถวคือ binomial coefficient ของ (x+y)^n ใช้ในการคำนวณความน่าจะเป็นและ combinatorics ครับ ถ้าเคยเรียนสถิติหรือ probability น่าจะคุ้นเคยกับ pattern นี้ 💡

fx
=MAKEARRAY(1, 7, LAMBDA(r, c, COMBIN(6, c-1)))

ผลลัพธ์{1,6,15,20,15,6,1}
ตัวอย่างที่ 11: Complex – Fibonacci Sequence แนวตั้งLET( n, 10, init, {0;1}, fib, REDUCE(init, SEQUENCE(n-2), LAMBDA(acc, i, VSTACK(acc, INDEX(acc,-1) + INDEX(acc,-2)))), MAKEARRAY(n, 1, LAMBDA(r, c, INDEX(fib, r…

สร้าง Fibonacci Sequence 10 ตัวแรกในรูปแบบ Array แนวตั้ง โดยใช้ LET และ REDUCE สร้าง sequence ก่อน แล้วใช้ MAKEARRAY ดึงค่าแต่ละตัวมาเรียงเป็น Array

ตัวอย่างนี้แสดงการผสม MAKEARRAY กับ advanced functions อื่นๆ เพื่อสร้างข้อมูลที่ซับซ้อน

ถ้าสูตรนี้ดูซับซ้อนไป… ไม่ต้องตกใจครับ 😅 แค่ต้องการแสดงให้เห็นว่า MAKEARRAY ทำงานร่วมกับ LAMBDA functions อื่นๆ ได้ดีมาก

fx
=LET(
n, 10,
init, {0;1},
fib, REDUCE(init, SEQUENCE(n-2), LAMBDA(acc, i, VSTACK(acc, INDEX(acc,-1) + INDEX(acc,-2)))),
MAKEARRAY(n, 1, LAMBDA(r, c, INDEX(fib, r)))
)

ผลลัพธ์{0;1;1;2;3;5;8;13;21;34}
ตัวอย่างที่ 12: Complex – สร้าง Lookup Table แบบ DynamicLET( categories, {"Bronze","Silver","Gold","Platinum"}, thresholds, {0,100,500,1000}, MAKEARRAY(ROWS(categories), 2, LAMBDA(r, c, IF(c=1, INDEX(categories,r), I…

สร้าง Lookup Table 2 คอลัมน์ (Category และ Threshold) โดยใช้ LET เก็บข้อมูล categories และ thresholds ใน array แล้วใช้ MAKEARRAY ดึงค่ามาเรียงเป็นตาราง

คอลัมน์ 1 ดึงจาก categories และคอลัมน์ 2 ดึงจาก thresholds

ตัวอย่างนี้เจ๋งตรงที่สร้าง lookup table แบบ dynamic ได้ เวลาต้องการเพิ่ม tier ใหม่ แค่เพิ่มใน array categories และ thresholds ตารางก็จะอัพเดตเองทันที 😎

fx
=LET(
categories, {"Bronze","Silver","Gold","Platinum"},
thresholds, {0,100,500,1000},
MAKEARRAY(ROWS(categories), 2, LAMBDA(r, c, IF(c=1, INDEX(categories,r), INDEX(thresholds,r))))
)

ผลลัพธ์{"Bronze",0;"Silver",100;"Gold",500;"Platinum",1000}

FAQs

MAKEARRAY ต่างจาก SEQUENCE อย่างไร?+

SEQUENCE สร้างเฉพาะตัวเลขเรียงลำดับ (1, 2, 3, …) โดยกำหนด start value และ step ได้

ส่วน MAKEARRAY ใช้ LAMBDA function คำนวณค่าแต่ละเซลล์ได้อิสระตาม row/column index ทำให้สร้างข้อมูลได้หลากหลายกว่ามาก เช่น ข้อความ สูตรคูณ ค่าสุ่ม หรือการคำนวณที่ซับซ้อน

ส่วนตัวผมคิดว่า… ถ้าต้องการแค่ตัวเลขเรียงลำดับธรรมดา ใช้ SEQUENCE จะง่ายและเร็วกว่า แต่ถ้าต้องการ logic พิเศษหรือข้อมูลที่ไม่ใช่ตัวเลขเรียง MAKEARRAY คือตัวเลือกที่ดีกว่าครับ 😎

Row และ Column index ใน LAMBDA เริ่มที่ 0 หรือ 1?+

เริ่มที่ 1 (1-based indexing) ครับ เช่น เซลล์มุมซ้ายบนสุดจะได้ r=1, c=1 ไม่ใช่ r=0, c=0

ดังนั้น =MAKEARRAY(2, 3, LAMBDA(r, c, r*c)) จะได้ {1,2,3;2,4,6} ไม่ใช่ {0,0,0;0,0,0}

ต้องระวังเรื่องนี้ถ้าคุณเคยใช้ภาษา programming ที่เริ่มนับจาก 0 (เช่น Python, JavaScript) เพราะ Excel ใช้ 1-based indexing ในทุก function อ่ะนะ ผมเองก็เคยงงตอนแรกๆ เหมือนกัน 555

ทำไมได้ #VALUE! error?+

สาเหตุหลัก 3 ข้อครับ:

**(1) rows หรือ cols น้อยกว่า 1 หรือไม่ใช่ตัวเลข** → ตรวจสอบว่าใส่ค่าเป็นจำนวนเต็มบวกหรือไม่

**(2) LAMBDA ไม่ได้รับ parameter ครบ 2 ตัว** → ต้องประกาศ (r, c) ครบเสมอ แม้ไม่ได้ใช้ในการคำนวณ เช่น ใช้ LAMBDA(r, c, "X") ไม่ใช่ LAMBDA("X")

**(3) การคำนวณภายใน LAMBDA เกิด error** → เช่น หารด้วยศูนย์ หรือ INDEX เกินขอบเขต

💡 **Tip:** ใช้ Evaluate Formula (Alt+M+V) เพื่อดูว่า error เกิดที่ไหน ผมใช้วิธีนี้ debug บ่อยมากครับ

ใช้ MAKEARRAY โดยไม่ใช้ r หรือ c ได้ไหม?+

ใช้ได้ครับ แต่ต้องประกาศ parameter ครบ 2 ตัวเสมอ

เช่น =MAKEARRAY(3, 3, LAMBDA(r, c, "X")) จะเติม "X" ทุกเซลล์ แม้ไม่ได้ใช้ r และ c ในการคำนวณ

หรือ =MAKEARRAY(5, 5, LAMBDA(r, c, RANDBETWEEN(1,100))) ก็ไม่ได้ใช้ r, c แต่ต้องประกาศไว้

ถ้าไม่ประกาศ parameter ครบจะได้ #VALUE! error ทันที นี่คือข้อกำหนดของ MAKEARRAY ที่ LAMBDA ต้องรับ parameter 2 ตัวเสมอครับ แม้จะไม่ได้ใช้ก็ตาม 😅

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

MAKEARRAY เป็น LAMBDA Helper Function ที่มีใน Excel for Microsoft 365, Excel 2024 และ Excel for the web เท่านั้นครับ

ไม่มีใน Excel 2021, 2019, 2016 หรือเวอร์ชันเก่ากว่า

ถ้าคุณใช้ Excel เวอร์ชันเก่า จะเห็น #NAME? error เมื่อใช้ MAKEARRAY เพราะ Excel ไม่รู้จัก function นี้

ต้อง upgrade เป็น Microsoft 365 subscription หรือ Excel 2024 ถึงจะใช้ได้ (ต้องยอมรับว่า LAMBDA functions เหล่านี้เจ๋งจริงๆ คุ้มค่า upgrade ครับ 😎)

จะสร้าง Array ขนาดใหญ่มากได้ไหม?+

ได้ครับ แต่มีข้อจำกัดและข้อควรระวัง:

**(1) Limit ของ Excel Worksheet** → Dynamic Array รองรับสูงสุดประมาณ 1 ล้านเซลล์ (rows × cols ≤ 1,048,576)

**(2) Performance อาจช้า** → ถ้า Array ใหญ่มาก (เช่น 1000×1000) จะทำให้ไฟล์ช้าลงเพราะทุกเซลล์ต้องคำนวณผ่าน LAMBDA

**(3) Function ซับซ้อนยิ่งช้า** → ถ้าใช้ function ที่หนักใน LAMBDA (เช่น VLOOKUP, XLOOKUP) จะยิ่งช้า

💡 **แนะนำ:** ทดสอบด้วยขนาดเล็กก่อน (เช่น 10×10) แล้วค่อยขยายขนาดทีละน้อย ผมเคยสร้าง 5000×5000 แล้ว Excel แทบค้างเลยครับ 😭

ค่าที่ได้จาก MAKEARRAY จะเปลี่ยนทุกครั้งที่ recalculate หรือไม่?+

ขึ้นอยู่กับว่าใช้ function อะไรใน LAMBDA ครับ

**ถ้าใช้ volatile function** (เช่น RANDBETWEEN, RAND, NOW, TODAY) → ค่าจะเปลี่ยนทุกครั้งที่ workbook recalculate (กด F9 หรือมีการแก้ไขเซลล์ใดๆ)

**ถ้าใช้ function ธรรมดา** (เช่น r*c หรือ IF(r=c,1,0)) → ค่าจะคงที่ไม่เปลี่ยนแปลง

💡 **Tip:** ถ้าต้องการให้ค่าสุ่มคงที่ หลังจากสร้างด้วย RANDBETWEEN แล้ว ให้ Copy ผลลัพธ์ → Paste Values เพื่อแปลงเป็นค่าแบบคงที่ (ผมใช้วิธีนี้บ่อยมากเวลาสร้าง test data ครับ)

สามารถใช้ MAKEARRAY กับ Named Range หรือ Table ได้ไหม?+

ได้ครับ คุณสามารถอ้างอิง Named Range หรือ Table ภายใน LAMBDA ได้ตามปกติ

**ตัวอย่างที่ 1:** =MAKEARRAY(Rows, Cols, LAMBDA(r, c, INDEX(DataTable, r, c))) → สร้าง Array โดยดึงค่าจาก Table

**ตัวอย่างที่ 2:** =MAKEARRAY(5, 3, LAMBDA(r, c, VLOOKUP(INDEX(IDList, r), ProductTable, c+1, FALSE))) → ดึงข้อมูลจากหลาย column ตาม ID list

วิธีนี้เจ๋งมากเวลาต้องการทำ dynamic report หรือ dashboard ครับ ผมใช้บ่อยมากตอนทำงานกับ Table ใน Excel 😎

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

**MAP** → ใช้กับ array ที่มีอยู่แล้ว และประมวลผลแต่ละค่าใน array นั้น

**MAKEARRAY** → สร้าง array ใหม่จากศูนย์โดยใช้ row/column index คำนวณค่า

**ตัวอย่างเปรียบเทียบ:**
– =MAP({1,2,3}, LAMBDA(x, x*2)) → ใช้ MAP เพราะมี array {1,2,3} อยู่แล้ว
– =MAKEARRAY(3,1,LAMBDA(r,c,r*2)) → ใช้ MAKEARRAY เพราะสร้าง array ใหม่จากตำแหน่ง

สรุปง่ายๆ คือ… ใช้ MAP เมื่อต้องการ**แปลงข้อมูลเดิม** ใช้ MAKEARRAY เมื่อต้องการ**สร้างข้อมูลใหม่** ครับ 😎

Resources & Related

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

ฟังก์ชันนี้MAKEARRAYLogical
Logical (9)
BYCOL

BYCOL ส่งแต่ละคอลัมน์ทั้งคอลัมน์เข้า LAMBDA แล้ว return ผลลัพธ์เป็น Array แถวเดียว ต่างจาก MAP ที่ส่งทีละเซลล์ และ BYROW ที่ส่งทีละแถว ทำให้สามารถคำนวณ SUM, MAX, AVERAGE ของทุกคอลัมน์พร้อมกันในสูตรเดียว แทนที่จะต้องเขียนสูตรซ้ำหลายครั้ง ซึ่งช่วยลดโอกาสเกิดข้อผิดพลาดและทำให้แก้ไข logic ได้ง่ายกว่ามาก เหมาะสำหรับงาน dashboard summary, quality checking และการวิเคราตลัพธ์ทีละคอลัมน์แบบเป็นระบบ

BYROW

BYROW เป็น LAMBDA Helper Function ที่ประมวลผลข้อมูลทีละแถว โดยส่งแต่ละแถวทั้งหมด (เป็น array) เข้าไปใน LAMBDA แล้ว return ผลลัพธ์เป็นคอลัมน์เดียว ที่เจ๋งคือ BYROW รองรับทั้ง short-form syntax (=BYROW(array, SUM)) สำหรับการ aggregate ง่ายๆ และ custom LAMBDA สำหรับ logic ซับซ้อนที่ต้องตรวจสอบหลายคอลัมน์พร้อมกัน เช่น ตรวจว่านักเรียนผ่านทุกวิชา (MIN>=50) หรือรวมข้อความหลายคอลัมน์ด้วย TEXTJOIN ต่างจาก MAP ที่ทำงานทีละ cell และ BYCOL ที่ทำงานทีละคอลัมน์ BYROW ทำให้คุณเขียน logic ครั้งเดียว แล้วประมวลผลทุกแถวพร้อมกันทันที

IF

IF เป็นฟังก์ชันตรรกะพื้นฐานที่ใช้ตัดสินใจสองทางตามเงื่อนไข ตรวจสอบว่าเงื่อนไขเป็น TRUE หรือ FALSE แล้วคืนค่าที่แตกต่างกันไปตามผลลัพธ์ สามารถใช้ได้กับการเปรียบเทียบตัวเลข ข้อความ หรือวันที่ และเป็นพื้นฐานสำคัญของการสร้างสูตรแบบมีเงื่อนไข

IFERROR

IFERROR ช่วยดักจับ Error ทุกประเภทที่เกิดขึ้นในสูตร (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) แล้วเปลี่ยนเป็นค่าที่เราต้องการแทน
.
ที่เจ๋งคือมันช่วยให้รายงานและ Dashboard ดูสะอาด ไม่มี Error แสดงให้ผู้ใช้งานเห็น โดยถ้าสูตรไม่มี Error ก็จะ return ผลลัพธ์ปกติ
.
ส่วนตัวผมคิดว่าฟังก์ชันนี้เป็น "ตัวช่วยมหาเทพ" สำหรับคนทำรายงานเลยครับ 😎

LAMBDA

LAMBDA สร้าง custom function ที่ใช้ซ้ำได้โดยไม่ต้องเขียน VBA กำหนด parameter และ calculation แล้วบันทึกผ่าน Name Manager (Ctrl+F3) ด้วยชื่อที่จดจำง่าย เรียกใช้เหมือนฟังก์ชันมาตรฐาน สูตรอยู่ที่เดียว แก้ไขที่เดียวมีผลทั้ง workbook ใช้ร่วมกับ helper functions (MAP, REDUCE, SCAN, BYROW, BYCOL, MAKEARRAY) สร้างสูตร dynamic array ขั้นสูงได้ รองรับ recursive LAMBDA เรียกตัวเองซ้ำจนถึงเงื่อนไข แทนที่สูตรยาวๆ ด้วย custom function ที่อ่านง่าย

LET

LET ช่วยให้คุณกำหนดชื่อตัวแปร (Named Variables) ภายในสูตร Excel เพื่อเก็บค่าหรือผลลัพธ์การคำนวณ จากนั้นนำชื่อเหล่านั้นมาใช้ซ้ำในสูตรเดียวกัน
.
ทำให้สูตรที่ซับซ้อนอ่านง่ายขึ้นเยอะ ลดข้อผิดพลาดจากการเขียนซ้ำ และเพิ่มความเร็วเพราะแต่ละการคำนวณจะทำงานเพียงครั้งเดียว ไม่ว่าจะถูกอ้างอิงกี่ครั้งก็ตาม

MAP

MAP ส่งค่าทีละ element จาก Array หนึ่งหรือหลายตัวเข้าไปประมวลผลใน LAMBDA แล้วคืน Array ผลลัพธ์ที่มีขนาดเท่ากับ input array ต้นฉบับ เหมาะสำหรับ element-wise operations เช่น การแปลงค่าทุกตัว การตรวจสอบเงื่อนไขทีละเซลล์ หรือการคำนวณจากหลาย Array พร้อมกัน ต่างจาก BYROW/BYCOL ที่ส่งทั้งแถวหรือทั้งคอลัมน์ MAP จะส่งเฉพาะค่าเดี่ยวๆ ทีละตำแหน่ง

REDUCE

REDUCE เป็นฟังก์ชัน Helper ที่ทำงานร่วมกับ LAMBDA เพื่อวนลูปประมวลผลข้อมูลใน Array โดยรับค่าเริ่มต้น (initial_value) และส่งค่าเข้า LAMBDA ทีละ element เพื่อคำนวณค่าสะสม (accumulator) ที่สืบเนื่องจากรอบก่อนหน้า แล้ว return ผลลัพธ์สุดท้ายเพียงค่าเดียว ต่างจาก SCAN ที่ return Array ของทุกขั้นตอน REDUCE เหมาะสำหรับการสร้าง custom aggregation ที่ซับซ้อนกว่าฟังก์ชันมาตรฐาน

SCAN

SCAN วนลูปผ่าน array โดยใช้ LAMBDA function คำนวณค่าสะสม (accumulator) และ return array ที่แสดงค่าสะสมในทุกขั้นตอนของการคำนวณ ต่างจาก REDUCE ที่ return เฉพาะค่าสุดท้าย SCAN เหมาะสำหรับ Running Total, Running Maximum/Minimum, การคำนวณดอกเบี้ยทบต้น หรือการแสดงผลลัพธ์แบบต่อเนื่องที่ต้องการเห็นทุกขั้นตอนของการเปลี่ยนแปลง ใช้งานได้ใน Excel 365 และ Excel 2024

Math and trigonometry (1)
MUNIT

ฟังก์ชันที่สร้างเมทริกซ์เอกลักษณ์ (Identity Matrix) ขนาด n x n โดยมีเลข 1 ตามแนวเส้นทแยงมุมและเลข 0 ที่ตำแหน่งอื่น ใช้สำหรับการคำนวณพีชคณิตเชิงเส้นและการดำเนินการทางคณิตศาสตร์เมทริกซ์

Comments

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