ฟังก์ชัน SCAN ใน Excel เป็นหนึ่งในกลุ่มฟังก์ชัน LAMBDA helper functions ที่ออกแบบมาเพื่อคำนวณผลสะสมของข้อมูลในอาร์เรย์แบบต่อเนื่อง โดยคืนค่าทุกขั้นตอนของการสะสมค่า ไม่ใช่แค่ค่าผลลัพธ์สุดท้ายเหมือนฟังก์ชัน REDUCE
ฟังก์ชันนี้เหมาะสำหรับการติดตามค่าการเปลี่ยนแปลง เช่น ยอดสะสมรายวัน, ค่าที่เปลี่ยนทีละขั้น หรือการติดตามผลรวมช่วงเวลา เพื่อวิเคราะห์แนวโน้มและการสะสมค่าในแต่ละจุดของข้อมูล
ประโยชน์ของฟังก์ชัน SCAN ใน Excel
- ติดตามค่าผลสะสมทีละขั้นในอาร์เรย์ได้
- วิเคราะห์การเปลี่ยนแปลงของข้อมูลในรูปแบบต่อเนื่อง
- ใช้สร้างการคำนวณขั้นสูงร่วมกับ ฟังก์ชัน LAMBDA ได้ง่าย
- เพิ่มความยืดหยุ่นในการวิเคราะห์ข้อมูลแนวไดนามิก
รูปแบบการใช้งาน (Syntax)
SCAN([initial_value], array, lambda(accumulator, value))
อาร์กิวเมนต์ที่ใช้ในฟังก์ชัน SCAN มีดังนี้:
initial_value: ค่าที่ใช้เริ่มต้นการสะสมarray: อาร์เรย์ข้อมูลที่จะใช้ในการประมวลผลlambda: ฟังก์ชัน LAMBDA ที่กำหนดลอจิกการสะสมaccumulator: ค่าผลสะสมในแต่ละขั้นvalue: ค่าปัจจุบันจากอาร์เรย์
ตัวอย่างการประยุกต์ใช้งานฟังก์ชัน SCAN ใน Excel
ตัวอย่างที่ 1: คำนวณยอดขายสะสมรายวัน
สมมติต้องการหายอดขายสะสมรายวันจากยอดขายแต่ละวัน
| วัน | ยอดขาย |
|---|---|
| จันทร์ | 100 |
| อังคาร | 200 |
| พุธ | 150 |
| พฤหัสบดี | 300 |
| ศุกร์ | 355 |
| เสาร์ | 400 |
| อาทิตย์ | 199 |
สูตร:
=SCAN(0, B2:B8, LAMBDA(a, b, a + b))

- เริ่มต้น accumulator = 0
- วันจันทร์: 0 + 100 = 100
- วันอังคาร: 100 + 200 = 300
- วันพุธ: 300 + 150 = 450
- วันพฤหัสบดี 450 + 300 = 750
- วันศุกร์ 750 + 355 = 1105
- วันเสาร์ 1105 + 400 = 1505
- วันอาทิตย์ 1505 + 199 = 1704
ผลลัพธ์: {0; 100; 300; 450, 750, 1105, 1505, 1704}

ตัวอย่างที่ 2: สะสมความยาวของข้อความ
ต้องการดูว่าความยาวของข้อความสะสมไปเรื่อย ๆ มีผลลัพธ์เป็นอย่างไร
| ข้อความ |
| กิน |
| ข้าว |
| แล้ว |
| นะ |
| จ๊ะ |
| เย็น |
| นี้ |
สูตร:
=SCAN(0, A2:A8, LAMBDA(a, b, a + LEN(b)))

- เริ่มต้นที่ 0
- กิน: 0 + 3 = 3
- ข้าว: 3 + 4 = 7
- แล้ว: 7 + 4 = 11
- นะ: 11 + 2 = 13
- จ๊ะ: 13 + 3 = 16
- เย็น: 16 + 4 = 20
- นี้: 20 + 3 = 23
ผลลัพธ์: {0; 3; 7; 11, 13, 16, 20, 23}

ตัวอย่างที่ 3: คำนวณต้นทุนสะสมแบบรายรอบ
สมมติมีต้นทุนสินค้ารายรอบ ต้องการหาต้นทุนสะสมแต่ละรอบ
| รอบที่ | ต้นทุน |
| 1 | 50 |
| 2 | 80 |
| 3 | 30 |
| 4 | 60 |
| 5 | 70 |
| 6 | 40 |
| 7 | 90 |
| 8 | 80 |
| 9 | 100 |
| 10 | 110 |
สูตร:
=SCAN(0, B2:B11, LAMBDA(a, b, a + b))

- เริ่มที่ 0
- รอบ 1: 0 + 50 = 50
- รอบ 2: 50 + 80 = 130
- รอบ 3: 130 + 30 = 160
- รอบ 4: 160 + 60 = 220
- รอบ 5: 220 + 70 = 290
- รอบ 6: 290 + 40 = 330
- รอบ 7: 330 + 90 = 420
- รอบ 8: 420 + 80 = 500
- รอบ 9: 500 + 100 = 600
- รอบ 10: 600 + 110 = 710
ผลลัพธ์: {0; 50; 130; 160, 220, 290, 330, 420, 500, 600, 710}

ตัวอย่างที่ 4: ใช้ฟังก์ชัน SCAN ใน Excel หาผลรวมแบบมีเงื่อนไข
สมมติต้องการสะสมค่าที่มากกว่า 100 เท่านั้น
| ค่า |
| 90 |
| 150 |
| 200 |
สูตร:
=SCAN(0, A2:A4, LAMBDA(a, b, IF(b > 100, a + b, a)))

- เริ่มที่ 0
- 90 → ไม่มากกว่า 100 → ผลยังเป็น 0
- 150 → รวมได้ 0 + 150 = 150
- 200 → รวมได้ 150 + 200 = 350
ผลลัพธ์: {0; 0; 150; 350}

หมายเหตุ
- ฟังก์ชัน SCAN คืนค่าหลายค่าในรูปแบบอาร์เรย์ ไม่ใช่ค่าเดียว
- ควรกำหนดค่า initial value ให้เหมาะกับตรรกะที่ใช้
- เหมาะกับงานที่ต้องการติดตามความเปลี่ยนแปลงระยะสั้นหรือทีละค่า
สรุป
ฟังก์ชัน SCAN ใน Excel เป็นเครื่องมือที่มีประโยชน์สำหรับการคำนวณแบบสะสมต่อเนื่อง ช่วยให้สามารถติดตามค่าผลลัพธ์ในแต่ละขั้นได้แบบละเอียด และนำไปประยุกต์ใช้กับการวิเคราะห์ข้อมูลรายวัน รายรอบ หรือค่าสะสมที่มีเงื่อนไขได้อย่างยืดหยุ่นและมีประสิทธิภาพ
ข้อมูลอ้างอิง: SCAN function
