Thep Excel

SCAN – คำนวณผลลัพธ์สะสม

วนลูปคำนวณและแสดงผลลัพธ์สะสมในทุกขั้นตอน

SCAN ใช้สำหรับสร้างค่าสะสม (Accumulated Value) จากการวนลูปข้อมูลใน Array เช่น การหาผลรวมสะสม (Running Sum) หรือข้อความสะสม โดยจะแสดงผลลัพธ์ในทุกๆ สเต็ปของการวนลูปออกมาเป็น Array ขนาดเท่าเดิม

=SCAN([initial_value], array, lambda)

By ThepExcel AI Agent
30 November 2025

Syntax & Arguments

=SCAN([initial_value], array, lambda)

Argument Type Required Default Description
initial_value Any Optional 0 ค่าเริ่มต้นที่จะใช้ตั้งต้นในการคำนวณ
array Range Yes ช่วงข้อมูลที่ต้องการนำมาวนลูป
lambda Function Yes ฟังก์ชัน LAMBDA ที่รับค่า 2 ตัวแปร (accumulator, current_value) ไปคำนวณ

How it works

Running Total

คำนวณยอดขายสะสมรายเดือน (ยอดเดือนนี้ + ยอดสะสมเดือนก่อนหน้า)

เติมเต็มข้อมูลที่ว่าง (Fill Down)

ใช้ SCAN เติมชื่อหัวข้อลงในเซลล์ว่างข้างล่างให้ครบ (เหมือน Fill Down)

คำนวณดอกเบี้ยทบต้น

ดูยอดเงินฝากที่เพิ่มขึ้นในแต่ละปีจากดอกเบี้ยทบต้น

Examples

ตัวอย่างที่ 1: ผลรวมสะสม (Running Sum)

บวกค่าสะสมไปเรื่อยๆ (1, 1+2=3, 3+3=6, …) และแสดงผลลัพธ์ออกมาทุกขั้นตอน
Excel Formula:

=SCAN(0, Values, LAMBDA(acc, val, acc + val))

Result:

1, 3, 6, 10, 15

ตัวอย่างที่ 2: Fill Down ข้อมูล

ถ้าเจอเซลล์ว่าง (val="") ให้ใช้ค่าเดิม (acc) แต่ถ้าเจอค่าใหม่ ให้เปลี่ยนค่าสะสมเป็นค่าใหม่ (val)
Excel Formula:

=SCAN("", DataWithBlanks, LAMBDA(acc, val, IF(val="", acc, val)))

Result:

ข้อมูลที่เติมเต็มแล้ว

ตัวอย่างที่ 3: ข้อความสะสม

นำข้อความมาต่อกันไปเรื่อยๆ
Excel Formula:

=SCAN("", TextArray, LAMBDA(acc, val, acc & val))

Result:

A, AB, ABC

FAQs

SCAN ต่างจาก REDUCE อย่างไร?

SCAN คืนค่าเป็น Array (แสดงทุกขั้นตอน) ส่วน REDUCE คืนค่าเดียว (ผลลัพธ์สุดท้าย)

ใช้สร้างลำดับเลขได้ไหม?

ได้ โดยใช้ SCAN บวกค่าเพิ่มทีละ 1 หรือตามสูตรที่ต้องการ แต่ปกติใช้ SEQUENCE จะง่ายกว่า

Resources & Related

Additional Notes

ฟังก์ชัน SCAN ทำงานคล้ายกับ REDUCE คือวนลูปคำนวณข้อมูลทีละตัว แต่ต่างกันตรงที่ SCAN จะคืนค่าผลลัพธ์ออกมา “ทุกขั้นตอน” เป็น Array (Running Total) ในขณะที่ REDUCE คืนค่าเฉพาะผลลัพธ์สุดท้าย

Leave a Reply

Your email address will not be published. Required fields are marked *