Exponential Moving Average (EMA) หรือ ค่าเฉลี่ยเคลื่อนที่แบบเอ็กซ์โพเนนเชียล เป็นเครื่องมือยอดนิยมสำหรับพยากรณ์ข้อมูลอนาคตและลดความผันผวนของราคาหุ้น หากคุณต้องการเข้าใจ EMA และวิธีคำนวณใน Excel บทความนี้เป็นคำตอบที่คุณต้องการ จะแนะนำ 3 วิธีที่เหมาะสม ในการคำนวณ EMA อย่างชัดเจน
Exponential Moving Average (EMA) คืออะไร?
EMA เป็นประเภทหนึ่งของ Moving Average ที่ให้น้ำหนักสำคัญกับข้อมูลล่าสุดมากกว่า Simple Moving Average (SMA) ทำให้กราฟ EMA ลื่นไหลกว่า SMA ความสำคัญของข้อมูลย้อนหลังจะลดลงตามเวลา สูตรคำนวณ EMA คือ:
EMAt = α × Yt-1 + (1-α) × EMAt-1
โดยที่:
- EMAt = Exponential Moving Average ของรอบปัจจุบัน
- α (Alpha) = Smoothing multiplier (ค่าระหว่าง 0 ถึง 1) ค่า α ยิ่งมาก ยิ่งให้น้ำหนักข้อมูลเก่า ค่าที่เหมาะสมอยู่ที่ 0.1 - 0.3
- คำนวณ α ได้จากสูตร: α = 2/(n+1) โดย n = จำนวนรอบ (Periods)
สมมติมีข้อมูลยอดขาย 12 เดือนในปี 2020 ต้องการพยากรณ์ยอดขายเดือนมกราคม 2021 ด้วย EMA

3 วิธีคำนวณ Exponential Moving Average ใน Excel
1. ใช้ Data Analysis ToolPak
วิธีที่สะดวกที่สุดคือใช้ Data Analysis ToolPak แต่ต้องเปิดใช้งานก่อน:
- ไปที่แท็บ File > Options
- เลือกแท็บ Add-ins > กด Go
- ติ๊กถูก Analysis ToolPak > OK



หลังเปิดใช้งานแล้ว:
- ไปแท็บ Data > Data Analysis
- เลือก Exponential Smoothing > OK


ในหน้าต่าง Exponential Smoothing:
- Input Range: เลือกช่วงข้อมูลยอดขาย (รวมเซลล์ว่างของเดือนพยากรณ์)
- Damping factor: ใส่ค่า α (ตัวอย่างใช้ 0.3)
- Output Range: เลือกตำแหน่งวางผลลัพธ์
- ติ๊ก Chart Output หากต้องการกราฟเปรียบเทียบ
- กด OK

Excel จะคำนวณ EMA ให้อัตโนมัติ รวมถึงค่าพยากรณ์เดือนมกราคม 2021

หมายเหตุ: EMA เดือนกุมภาพันธ์จะเท่ากับยอดขายเดือนมกราคม เพราะ ToolPak ใช้ Naive Method (สมมติ EMA แรก = ข้อมูลรอบก่อน)
กราฟเปรียบเทียบ Actual Data และ EMA:

2. คำนวณ EMA ด้วยตนเอง (Manual Calculation)
หากไม่ต้องการใช้ ToolPak สามารถคำนวณด้วยสูตรเองได้ ต้องหา EMA รอบแรกก่อน โดยวิธีนี้ใช้ 3-Period Moving Average (3MA) เป็นค่าเริ่มต้น
ขั้นตอนคำนวณ 3MA:
- ที่เซลล์ E8 (แถวเดือนเมษายน) ใส่สูตร:
=(D5+D6+D7)/3 - ลาก Fill Handle ลงไปได้ 3MA ทุกรอบ

คำนวณ α: ใช้สูตร =2/(12+1) (n=12 เพราะมี 12 รอบ)

คำนวณ EMA รอบแรก (รอบที่ 4):
- ใส่สูตร:
=(1-$C$3)*D7+$C$3*E8 - โดย $C$3 = α, D7 = ยอดขายรอบก่อน, E8 = 3MA รอบนี้ (เป็น EMA รอบก่อน)

คำนวณ EMA รอบต่อไป:
- ที่เซลล์ F9 ใส่:
=(1-$C$3)*D8+$C$3*F8 - ลาก Fill Handle จนจบข้อมูล (รวมรอบพยากรณ์)

ผลลัพธ์ EMA ทุกรอบ รวมรอบพยากรณ์:

อ่านเพิ่ม: How to Generate Moving Average in Excel Chart (4 Methods)
3. ใช้ VBA สร้าง Custom Function คำนวณ EMA
วิธีนี้เหมาะสำหรับลดความผันผวนราคาหุ้น (Smoothing stock price) สูตรปรับเป็น:
EMAt = α × P + (1-α) × EMAt-1 โดย P = ราคารอบปัจจุบัน
สร้าง Custom Function ด้วย VBA:
- คลิกขวาที่ชื่อ Sheet > View Code

- ในหน้าต่าง VBA: คลิกขวาที่ชื่อ Sheet ด้านซ้าย > Insert > Module

- วางโค้ดต่อไปนี้ใน Module:
Sub AddUDF()
Application.MacroOptions macro:="EMA", _
Description:="Returns the Exponential Moving Average." & Chr(10) & Chr(10) & _
"Select last period's EMA or last period's price if current period is the first." & Chr(10) & Chr(10) & _
"Followed by current price and n." & Chr(10) & Chr(10) & Chr(10) & _
"The decay factor of the exponential moving average is calculated as alpha=2/(n+1)", _
Category:="Technical Indicators"
End Sub
Public Function EMA(EMAYesterday, price, n)
alpha = 2 / (n + 1)
EMA = alpha * price + (1 - alpha) * EMAYesterday
End Function

โค้ดนี้สร้างฟังก์ชัน EMA(EMAYesterday, price, n)
- ปิดหน้าต่าง VBA
- หา EMA รอบแรก (ใช้ Naive Method: EMA แรก = ราคารอบแรก)
- ที่เซลล์ D6 ใส่:
=EMA(D5,C6,12)(D5=EMA ก่อนหน้า, C6=ราคาปัจจุบัน, 12=จำนวนรอบ) - กด ENTER แล้วลาก Fill Handle ลงไป


ได้ EMA ทุกรอบ:

อ่านเพิ่ม: How to Calculate Average in Excel (Including All Criteria)
สรุป
ตอนนี้คุณควรเข้าใจวิธีคำนวณ Exponential Moving Average ใน Excel แล้ว 3 วิธีคือ: 1) Data Analysis ToolPak (เร็วที่สุด) 2) คำนวณเองด้วยสูตร (เข้าใจกลไก) 3) VBA Custom Function (ยืดหยุ่น สำหรับหุ้น) หากมีข้อสงสัย สามารถทิ้งคำถามได้ครับ
บทความเกี่ยวข้อง
- How to Calculate Average, Minimum And Maximum in Excel (4 Easy Ways)
- Calculate VLOOKUP AVERAGE in Excel (6 Quick Ways)
- Running Average: How to Calculate Using Excel's Average(…) Function