ฟังก์ชัน MAP ใน Excel เป็นฟังก์ชันที่ใช้งานร่วมกับ LAMBDA สำหรับประมวลผลข้อมูลในหลายอาร์เรย์ (arrays) พร้อมกัน โดยจะนำค่าจากแต่ละอาร์เรย์ในตำแหน่งเดียวกัน (เช่น แถวที่ 1) มาผ่านฟังก์ชัน LAMBDA ที่เรากำหนด แล้วคืนค่าเป็นอาร์เรย์ใหม่ที่มีขนาดเท่ากับข้อมูลต้นทาง
ฟังก์ชัน MAP ช่วยให้สามารถทำงานกับชุดข้อมูลหลายชุดในรูปแบบ dynamic array โดยไม่ต้องเขียนสูตรซ้ำหลายจุด เหมาะสำหรับการประมวลผลแบบกำหนดเอง เช่น การรวมข้อความจากหลายคอลัมน์ การคำนวณแบบมีเงื่อนไข หรือการเปลี่ยนรูปแบบข้อมูล
ประโยชน์ของฟังก์ชัน MAP ใน Excel
- ใช้ประมวลผลอาร์เรย์หลายชุดพร้อมกัน
- ลดการใช้สูตรซ้ำ และไม่ต้องใช้การคัดลอกสูตรลงหลายเซลล์
- ประหยัดเวลาในการจัดรูปแบบข้อมูลหรือคำนวณตามเงื่อนไขที่ซับซ้อน
- ใช้งานร่วมกับ LAMBDA ได้อย่างยืดหยุ่น
- ผลลัพธ์สามารถจัดการแบบ dynamic array ได้โดยตรง
รูปแบบการใช้งาน (Syntax)
MAP(array1, [array2], ..., LAMBDA(x1, [x2], ..., calculation))
อาร์กิวเมนต์ที่ใช้ในฟังก์ชัน MAP มีดังนี้:
array1,array2, … – ข้อมูลที่ต้องการนำมาใช้ประมวลผล (อย่างน้อย 1 ชุด)LAMBDA(x1, x2, ...)– สูตรที่รับค่าจากแต่ละอาร์เรย์ในตำแหน่งเดียวกัน แล้วประมวลผลcalculation– คำสั่งที่กำหนดการคำนวณหรือจัดรูปแบบผลลัพธ์
ตัวอย่าง:
MAP({1,2,3},{4,5,6},LAMBDA(x,y,x+y))จะได้{5,7,9}
ตัวอย่างการประยุกต์ใช้งานฟังก์ชัน MAP ใน Excel
ตัวอย่างที่ 1: รวมชื่อและนามสกุลในแต่ละแถว
สมมติมีชื่อและนามสกุลอยู่ในสองคอลัมน์ ต้องการรวมให้เป็นชื่อเต็มในคอลัมน์ใหม่
| ชื่อ | นามสกุล |
|---|---|
| สมชาย | ใจดี |
| สมศรี | ใจเด็ด |
| สำเร็จ | ใจกล้า |
| สุดา | ใจแกร่ง |
| แสวง | ใจงาม |
| ศรราม | ใจป้ำ |
สูตร:
=MAP(A2:A7, B2:B7, LAMBDA(first, last, first & " " & last))

- first: ค่าจากคอลัมน์ชื่อ
- last: ค่าจากคอลัมน์นามสกุล
- ผลลัพธ์: จะได้ชื่อ เว้นวรรค ตามด้วยนามสกุล
ผลลัพธ์

ตัวอย่างที่ 2: ใช้ฟังก์ชัน MAP ใน Excel คำนวณราคาสินค้าหลังหักส่วนลด
สมมติต้องการหายอดเงินหลังหักส่วนลดของสินค้าแต่ละรายการ
| ราคาเต็ม | ส่วนลด (%) |
| 1000 | 10 |
| 500 | 5 |
| 400 | 4 |
| 350 | 3 |
| 1255 | 8 |
| 4678 | 15 |
สูตร:
=MAP(A2:A7, B2:B7, LAMBDA(price, discount, price * (1 - discount / 100)))

- price: ราคาสินค้าเต็ม
- discount: เปอร์เซ็นต์ส่วนลด
- คำนวณราคาหลังลดราคา: price × (1 – discount / 100)
ผลลัพธ์

ตัวอย่างที่ 3: สร้างข้อความแสดงผลลัพธ์คะแนนสอบ
สมมติต้องการแสดงข้อความ “ผ่าน/ไม่ผ่าน” ตามคะแนน
| ชื่อ | คะแนน |
| แคน | 72 |
| แจน | 58 |
| แมน | 50 |
| แดน | 49 |
| แผน | 80 |
| แอน | 95 |
สูตร:
=MAP(B2:B7, LAMBDA(score, IF(score >= 60, "ผ่าน", "ไม่ผ่าน")))

- score: คะแนนในแต่ละแถว
- ตรวจสอบว่า score >= 60 หรือไม่
- คืนข้อความตามเงื่อนไขที่กำหนด
ผลลัพธ์

ตัวอย่างที่ 4: ใช้ฟังก์ชัน MAP ใน Excel รวมค่าจาก 3 คอลัมน์เป็นข้อความเดียว
สมมติต้องการรวมหมายเลขอาคาร, ชั้น, ห้อง เพื่อแสดงตำแหน่ง
| อาคาร | ชั้น | ห้อง |
| A | 2 | 105 |
| B | 4 | 402 |
| C | 5 | 422 |
| D | 1 | 124 |
| E | 8 | 325 |
| F | 3 | 246 |
| G | 2 | 384 |
สูตร:
=MAP(A2:A8, B2:B8, C2:C8, LAMBDA(a, f, r, "อาคาร "&a&" ชั้น "&f&" ห้อง "&r))

- a: อาคาร, f: ชั้น, r: ห้อง
- รวมข้อความเพื่อแสดงตำแหน่ง เช่น “อาคาร A ชั้น 2 ห้อง 105”
ผลลัพธ์

ตัวอย่างที่ 5: เปลี่ยนเลขเป็นข้อความระดับคะแนน
สมมติต้องการเปลี่ยนคะแนนสอบเป็นข้อความแสดงระดับ เช่น “ดีมาก”, “พอใช้”
| คะแนน |
| 85 |
| 68 |
| 55 |
| 98 |
| 48 |
สูตร:
=MAP(A2:A6, LAMBDA(score, IF(score >= 80, "ดีมาก", IF(score >= 60, "พอใช้", "ควรปรับปรุง"))))

- score: คะแนนที่ตรวจสอบแต่ละแถว
- กำหนดเงื่อนไขซ้อน IF เพื่อแปลงคะแนนเป็นข้อความระดับ
ผลลัพธ์

หมายเหตุ
- ฟังก์ชัน MAP ต้องใช้ใน Excel 365 หรือ Excel 2021 ขึ้นไปเท่านั้น
- จำเป็นต้องมี ฟังก์ชัน LAMBDA เสมอ เพื่อกำหนดการประมวลผลในแต่ละตำแหน่ง
- MAP จะทำงานได้ดีที่สุดเมื่อความยาวของอาร์เรย์เท่ากันในชุดข้อมูลแต่ละชุด
สรุป
ฟังก์ชัน MAP ใน Excel ช่วยให้เราสามารถจัดการกับข้อมูลจากหลายคอลัมน์หรือหลายอาร์เรย์ได้อย่างยืดหยุ่นในรูปแบบ dynamic array โดยสามารถใช้ LAMBDA เพื่อปรับแต่งผลลัพธ์ในแต่ละตำแหน่งของข้อมูลตามที่ต้องการ ฟังก์ชันนี้เหมาะสำหรับการประมวลผลซ้ำ ๆ ที่มีรูปแบบกำหนดแน่นอน ช่วยลดความซับซ้อนและทำให้สูตรอ่านง่ายขึ้น
ข้อมูลอ้างอิง: MAP function
