สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365

สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน

ในสมัยก่อน เวลาเราจะสร้างฟังก์ชันขึ้นมาใช้เองใน Excel เราจะต้องเขียนโปรแกรม VBA เอาเท่านั้น แต่ในตอนนี้ Excel 365 ได้มีฟังก์ชันใหม่ชื่อว่า LAMBDA ซึ่งสามารถสร้างฟังก์ชันเองได้มาให้ใช้แล้วครับ (เพิ่งมีให้ใช้สำหรับคนทั่วไป เมื่อ กพ. 2022 นี้เอง)

บอกเลยว่าใครอ่าน + ดูคลิปทั้งหมดในบทความนี้ รับรองว่าจะได้มุมมองสดใหม่ในการเขียนสูตรของ Excel 365 แน่นอนครับ

พื้นฐานการใช้ LAMBDA

เราจะมาเรียนรู้การใช้งานพื้นฐานของ LAMBDA กันก่อน ซึ่งเป็นความรู้ที่จำเป็นในการต่อยอดไปสู่เรื่อง LAMBDA Helper Function เช่น 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 คือ calculation หรือผลลัพธ์ที่ต้องการ

แต่วิธีการใช้ฟังก์ชัน LAMBDA นั้นค่อนข้างแปลกนิดนึง คือ ถ้าเราดันเรียกใช้สูตรนั้นตรงๆ มันจะ error ว่า #CALC!

สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 1

วิธีเขียนสูตรไม่ให้พังนั้นมี 2 แบบ

1. เขียนฟังก์ชัน LAMBDA เสร็จแล้วเรียกใช้ฟังก์ชันเลยในสูตร

โดยใส่ input ที่จะใส่ลงไปใน parameter ลงไปในวงเล็บต่อท้าย เช่น ถ้าผมหนัก 65 kg และสูง 1.7 m ก็ใส่แบบนี้

=LAMBDA(Weight,Height,Weight/Height^2)(65,1.7)
สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 2

2. เขียนฟังก์ชัน LAMBDA ใน Name Manager แล้วเรียกใช้อีกที

ก่อนอื่นให้เราสร้าง Defined Name ขึ้นมาใหม่แล้วตั้งชื่อฟังก์ชันตามต้องการ เช่น BMI แล้วใส่สูตร LAMBDA เข้าไปใน Refers to:

สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 3

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

สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 4
สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 5

สำหรับรายละเอียดอื่นๆ ลองศึกษาจากคลิปนี้ได้ครับ รับรองว่าเด็ด

วิธีการแชร์ Function ที่สร้างเองให้เพื่อน

มาดูวิธีแชร์ฟังก์ชันที่สร้างเองให้เพื่อน ด้วย Advanced Formula Environment Add-in + GitHub Gist กันแบบละเอียดยิบครับ ซึ่งจะช่วยให้เพื่อนๆ สามารถสร้างฟังก์ชัน หรือโหลดสูตรมาจาก Github แล้ว Sync เข้า Name Manager ได้เลยด้วย เจ๋งมากๆ แถมยังสามารถ Comment Code ได้คล้ายๆ DAX เลย

อันนี้ตัวอย่าง GitHub GIST ของ Microsoft ครับ : https://gist.github.com/chgrossMSFT/d172fd552cf6893bcdc7942223cb0e55

AFE 1.1 เป็นต้นไป

สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 6

Advanced Formula Environment (AFE) ซึ่งเป็น Add-in Excel 365 เวอร์ชันใหม่ล่าสุด 1.1 สามารถยอมให้เราเขียนสูตรขึ้นมาใช้เองใน Excel โดยไม่ต้องเขียน LAMBDA ครอบอีกต่อไป เพราะมันจะเขียนให้เราใน Name Manager เอง!!

เช่น ใน AFE ผมสร้างฟังก์ชันชื่อ SORTUNIQUE ซึ่งสูตรคือ

=SORT(UNIQUE(range))

พอมันไปสร้างสูตรใน Name Manager มันใส่ให้เป็น

=LAMBDA(range,SORT(UNIQUE(range)))

เองโดยอัตโนมัติ!! ทำให้การเขียนสูตรเองง่ายขึ้นไปอีกครับ เจ๋งสุดๆ เลย

LAMBDA Helper Function

แนะนำการใช้ LAMBDA Helper Function ทั้ง 7 ตัว คือ

  • BYROW ส่ง Array เข้า input ทีละแถว
  • BYCOL ส่ง Array เข้า input ทีละคอลัมน์
  • MAP ส่ง Array เข้า input ทีละช่อง
  • SCAN สร้าง Array ที่เป็นการคำนวณสะสม แสดงผลสะสมระหว่างทางด้วย
  • REDUCE สร้าง Array ที่เป็นการคำนวณสะสม แสดงผลสะสมสุดท้าย
  • MAKEARRAY สร้าง Array ขนาดที่ต้องการ
  • ISOMITTED เช็คว่ามีการไม่ได้ใส่ input ของ LAMBDA มาหรือไม่? เอาไว้ทำ optional parameter ได้

สรุป

LAMBDA + Helper Function ทั้งหลาย จะช่วยให้เราสามารถเขียนสูตรที่ซับซ้อน แล้วส่งให้เพื่อนที่ไม่ค่อยเก่ง Excel เท่าไหร่เอาไปใช้งานได้อย่างง่ายๆ ซึ่งจะเปิดโอกาสให้เกิดผลลัพธ์ที่น่าอัศจรรย์ขึ้นในองค์กรของคุณแน่นอนครับ