ในอดีตนะเพื่อนๆ ถ้าเราอยากจะสร้างฟังก์ชันใน Excel เราไม่มีทางเลือกนอกจากต้องเขียนโปรแกรม VBA อย่างเดียว แต่เดี๋ยวนี้ Excel 365 เขาไปไกลมากแล้ว เพราะได้เปิดตัวฟังก์ชัน LAMBDA มาให้เราใช้สร้างฟังก์ชันเองได้อย่างง่ายดาย ฟังก์ชันนี้เพิ่งเปิดให้ใช้งานกับคนทั่วไปตั้งแต่เดือนกุมภาพันธ์ ปี 2022 ครับ (แต่หลายคนก็อาจยังไม่ได้ลอง!)
บอกได้เลยว่าใครที่อ่านบทความนี้และติดตามคลิปวิดีโอทุกตอน จะได้มุมมองใหม่ๆ ในการเขียนสูตรใน Excel 365 แน่นอนครับ มีทั้งมุมมองที่สดใหม่และลูกเล่นที่แพรวพราว ทำให้การใช้ Excel กลายเป็นเรื่องสนุกขึ้นอีกเยอะ
สารบัญ
พื้นฐานการใช้ LAMBDA
เอาล่ะเพื่อนๆ วันนี้เรามาดูการใช้งานพื้นฐานของ LAMBDA กันก่อน ซึ่งเป็นเรื่องจำเป็นสำหรับการก้าวไปสู่เรื่องที่ซับซ้อนขึ้น อย่าง LAMBDA Helper Functions เช่น BYROW, BYCOL, MAP และอีกมากมายเลยครับ สูตรพวกนี้จะเปลี่ยนมุมมองการเขียนสูตร Excel ของเราไปมากเลยทีเดียว
=LAMBDA([parameter1, parameter2, …,] calculation)
ตัวอย่างง่ายๆ เช่น เราต้องการคำนวณค่า BMI (Body Mass Index) เพื่อเช็คสถานะสุขภาพตัวเองกันหน่อยว่าผอมเกินไป อ้วนไป หรือกำลังดี ปกติเราจะใช้สูตร BMI = kg/m2 ในการคำนวณ
เราก็สร้างฟังก์ชันที่ยอดเยี่ยมได้แบบนี้เลย
=LAMBDA(Weight,Height,Weight/Height^2)
โดยค่า Weight นั้นคือ parameter1 และค่า Height คือ parameter2 (หน่วยเป็นเมตร) ซึ่ง Weight/Height^2 ก็จะเป็นการคำนวณหรือผลลัพธ์ที่เราต้องการ
สำหรับการใช้ฟังก์ชัน LAMBDA มันมีเรื่องแปลกอยู่หน่อยหนึ่ง ถ้าเราไปเรียกใช้สูตรตรงๆ มันจะโชว์ error ว่า #CALC! ซะงั้น

แต่ไม่ต้องห่วง ผมมีสองวิธีในการเขียนสูตรไม่ให้พังมาฝาก
1. เขียนฟังก์ชัน LAMBDA เสร็จแล้วเรียกใช้ฟังก์ชันเลยในสูตร
วิธีแรกคือ ใส่ค่าที่จะใช้เป็น input ในวงเล็บต่อท้ายฟังก์ชัน เช่น ถ้าเพื่อนๆ หนัก 65 kg และสูง 1.7 m ก็ใส่ว่า
=LAMBDA(Weight,Height,Weight/Height^2)(65,1.7)

2. เขียนฟังก์ชัน LAMBDA ใน Name Manager แล้วเรียกใช้อีกที
วิธีที่สอง เราสามารถสร้างชื่อ (Defined Name) ให้กับฟังก์ชัน แล้วใส่ชื่อฟังก์ชันใน Excel ได้เลย อย่างเช่น ตั้งชื่อว่า BMI แล้วกรอกสูตร LAMBDA เข้าไปใน Refers to:

จากนั้นออกมาใช้งานใน sheet ได้แบบไม่ต้องยุ่งยาก สามารถเรียกใช้ฟังก์ชัน BMI ได้ตามต้องการ พร้อมเห็นชัดๆ ว่าต้องระบุพารามิเตอร์อะไรบ้าง


หากเพื่อนๆ อยากได้รายละเอียดเพิ่มเติมลองดูในคลิปนี้ได้เลยครับ ผมคอนเฟิร์มว่าเด็ดสุดๆ
วิธีการแชร์ Function ที่สร้างเองให้เพื่อน
การแชร์ฟังก์ชันที่สร้างเองให้เพื่อนไม่ยากเลยครับ ลองแล้วจะติดใจ ด้วยเครื่องมือ Advanced Formula Environment Add-in พร้อม Github Gist อย่างละเอียดราวกับเปิดสูตรลับให้กับเพื่อนๆ ได้อย่างง่ายดาย สามารถโหลดสูตรจาก GitHub แล้ว Sync เข้ากับ Name Manager ได้ทันที เจ๋งจริงๆ แถมยังคอมเมนต์โค้ดได้เหมือน DAX อีกต่างหาก
นี่เลยเป็นตัวอย่าง GitHub GIST ของ Microsoft แอบยกมาให้ดู: https://gist.github.com/chgrossMSFT/d172fd552cf6893bcdc7942223cb0e55
AFE 1.1 เป็นต้นไป

เจ้า Advanced Formula Environment (AFE) ที่เป็น Add-in สำหรับ Excel 365 เวอร์ชันใหม่ล่าสุด 1.1 นี้ได้เอาใจคนขี้เกียจครอบ LAMBDA ไปเลย เพราะฟังก์ชันจะถูกสร้างและจัดการใน Name Manager ให้โดยอัตโนมัติ!!
ยกตัวอย่างง่ายๆ ใน AFE ผมสร้างฟังก์ชันชื่อ SORTUNIQUE ที่เรียกใช้ได้เองง่ายๆ แบบนี้
=SORT(UNIQUE(range))
พอเราให้ AFE จัดการ มันจะทำการสร้างสูตรใน Name Manager และใส่ให้เรียบร้อย กันเองเลย ทำให้การเขียนสูตรง่ายขึ้นเยอะ เป็นอะไรที่สุดยอดจริงๆ
=LAMBDA(range,SORT(UNIQUE(range)))
มาดูกันหน่อยกับ LAMBDA Helper Functions ทั้ง 7 ใช้ง่ายและมีประโยชน์แบบนี้
LAMBDA Helper Function
LAMBDA รวมกับ Helper Functions เหล่านี้ช่วยให้การเขียนสูตรซับซ้อนเป็นเรื่องง่ายที่ใครๆ ก็สามารถใช้ได้ ไม่ว่าจะเพื่อนที่ไม่ค่อยรองเท้าเก่ง Excel ก็ทำไปโลด! พร้อมเพิ่มประสิทธิภาพให้องค์กรของเพื่อนๆ ได้เห็นผลลัพธ์ที่สร้างสรรค์และน่าทึ่งแน่นอนครับ
- BYROW ส่ง Array เข้า input ทีละแถว
- BYCOL ส่ง Array เข้า input ทีละคอลัมน์
- MAP ส่ง Array เข้า input ทีละช่อง
- SCAN สร้าง Array ที่เป็นการคำนวณสะสม แสดงผลสะสมระหว่างทางด้วย
- REDUCE สร้าง Array ที่เป็นการคำนวณสะสม แสดงผลสะสมสุดท้าย
- MAKEARRAY สร้าง Array ขนาดที่ต้องการ
- ISOMITTED เช็คว่ามีการไม่ได้ใส่ input ของ LAMBDA มาหรือไม่? เอาไว้ทำ optional parameter ได้
สรุป
LAMBDA + Helper Function ทั้งหลาย จะช่วยให้เราสามารถเขียนสูตรที่ซับซ้อน แล้วส่งให้เพื่อนที่ไม่ค่อยเก่ง Excel เท่าไหร่เอาไปใช้งานได้อย่างง่ายๆ ซึ่งจะเปิดโอกาสให้เกิดผลลัพธ์ที่น่าอัศจรรย์ขึ้นในองค์กรของคุณแน่นอนครับ
Leave a Reply