---
title: วิธีคำนวณ Critical Path Method ในงานบริหารโครงการ ด้วย Excel (ปรับปรุงใหม่)
url: https://www.thepexcel.com/critical-path-method-project/
type: post
date: 2025-04-24
updated: 2025-12-22
author: Sira Ekabut
categories: [Excel for Business, Excel]
tags: [project, max, min, textjoin, XLOOKUP, IF, FILTER, optimize, FIND, ISNUMBER, AND, TEXTSPLIT, conditional-format]
---

# วิธีคำนวณ Critical Path Method ในงานบริหารโครงการ ด้วย Excel (ปรับปรุงใหม่)

ต่อเนื่องจาก[บทความการบริหารโครงการ หรือ Project Management ด้วย Excel](https://www.thepexcel.com/project-management-gantt-chart/) ที่ผมได้เขียนไปก่อนหน้านี้ ซึ่งเป็นเรื่องของการทำ Gantt Chart คราวนี้ผมจะขอพูดถึงเรื่องของการวางแผนโดยใช้ Critical Path หรือคือเส้นทางการทำงานที่สำคัญที่สุด ซึ่งถ้าหากงานใดงานหนึ่งใน Path นั้นเกิดการ Delay ปุ๊ปจะทำให้โครงการโดยรวม Delay ทันที

 

หมายเหตุ : เดิมทีบทความนี้ใช่สูตรสมัย Excel 2013 ซึ่งยากมาก เวลาก็ผ่านไปนานแล้ว ผมเลยปรับบทความนี้ใหม่ให้ใช้สูตรของ Excel 365 จะได้เขียนสูตรง่ายขึ้น และทำให้ข้อมูลเป็น Table จะได้อ่านสูตรง่ายขึ้นและมีความ Dynamic มากขึ้นด้วย

 

## Case ตัวอย่าง

 

โดยผมใช้[ภาพประกอบจากบทความนี้](https://pmstudycircle.com/2014/01/critical-path-method-cpm-in-project-management/) ซึ่งมีอธิบายเรื่องวิธีการคำนวณแบบ Manual ให้ด้วย แต่ผมจะอธิบายวิธีการทำแบบ Auto ใน Version Excel ให้ดูครับ

 ![1](https://www.thepexcel.com/wp-content/uploads/2020/10/COM-01.png)
*รูปจาก https://pmstudycircle.com/2014/01/critical-path-method-cpm-in-project-management/*
 

### วิธีการอ่านรูป

 
- A,B,C คือชื่อของงานย่อยๆ
- ตัวเลขในกล่องสี่เหลี่ยมคือ ระยะเวลาที่ต้องใช้ในการทำงานนั้นๆ
- ลูกศรที่ชี้คือทำงานนั้นเสร็จแล้วต้องทำงานอะไรต่อ (แสดงความ dependency กัน) เช่น งาน B จะเริ่มทำได้เมื่อ A และ D เสร็จแล้วทั้งคู่เท่านั้น

 

## ความหมายของคำศัพท์แต่ละอัน

 

มีองค์ประกอบอยู่ 4 ตัวที่สำคัญ คือ

 
- **Early Start (ES) **: งานนั้นๆ จะเริ่มเร็วสุดได้เมื่อไหร่ = Early Finish ของ Activity ก่อนหน้าอันสุดท้าย + 1 นั่นเอง
- **Early Finish (EF) **: งานนั้นๆ จะเสร็จได้เร็วสุดเมื่อไหร่ = Early Start + Duration ของงาน -1 (เพื่อ adj ให้นับวันเริ่มด้วย)
- **Late Finish (LF)** : งานนั้นๆ จะเสร็จได้ช้าสุดเมื่อไหร่ = Late Start ของ Activity ถัดไปอันแรก -1
- **Late Start (LS)** : งานนั้นๆ จะเริ่มได้ช้าสุดเมื่อไหร่ = Late Finish – Duration + 1

 

### Assumption

 

สมมติว่าทำงานนึงเสร็จวันที่ 5 งานที่ต้องทำลำดับต่อไปจะเริ่มได้เร็วสุดวันที่ 6 นะครบ (ถือว่าวันที่ 5 คือสิ้นวันแล้ว)

 

ซึ่งเราจะคำนวณพวก Early Start, Early Finish, Late Start, Late Finish ของแต่ละงานแบบอัตโนมัติครับ บอกไว้ก่อนว่าสูตรในบทความนี้ค่อนข้างซับซ้อน กรุณาทำใจก่อนดู 555

 

## เริ่มลงมือทำ

 

### ข้อมูลดิบใน Excel

 

เราบันทึกข้อมูลลงไปประมาณนี้

 

```
Activity	Duration	งานก่อนหน้า
A	10	
B	12	A,D
C	9	B
D	5	
E	7	D,G
F	6	E
G	3	
H	4	G
I	6	H
```

 

โดยผมทำเป็น Table ไว้ จะได้อ่านสูตรง่ายขึ้นและมีความ Dynamic มากขึ้นด้วย

 

### เริ่มคำนวณ ES และ EF

 

เราจะต้องคำนวณ Early Start (ES) ก่อน ซึ่งคำนวณมาจาก

 

```
Early Start (ES) 
= Early Finish ของ Activity ก่อนหน้าอันสุดท้าย + 1
```

 

ซึ่ง **Early Finish ของ Activity ก่อนหน้าอันสุดท้าย **ถ้าไม่มีก็คือถือว่าเป็น 0 ไปนั่นเอง ซึ่งเราใช้ IF มาดักได้

 

```
Early Start (ES) 
= IF([@งานก่อนหน้า]="",0,[@[Max EF ก่อนหน้า]])+1
```

 

ส่วน EFก่อนหน้า เรายังไม่มี ก็ต้องคำนวณออกมาก่อน ซึ่งทำได้โดยใช้สูตรที่ว่า

 

```
Early Finish (EF) 
= ESตัวนั้น + Duration -1
= [@ES]+[@Duration]-1
```

 

ซึ่ง EF ก่อนหน้า มันอาจมีหลายตัวก็ได้ เช่น กิจกรรม B มีก่อนหน้าคือ A กับ D ซึ่งเราต้องทำการ Lookup ค่า EF ของ A กับ D ออกมา แล้วหาค่า MAX ซึ่งเราทำแบบนี้ได้

 

```
Max EF ก่อนหน้า 
=MAX(XLOOKUP(TEXTSPLIT([@งานก่อนหน้า],","),[Activity],[EF]))
```

 

ที่นี้จะเห็นว่างานที่จะเสร็จเป็นอันสุดท้ายคือ C ซึ่งจะไปจบวันที่ 31 ไอ้เส้นทางที่จบที่ C นี่แหละ คือ Critical Path ล่ะ

 ![2](https://www.thepexcel.com/wp-content/uploads/2020/10/critical-path-002x-1024x343.png) 

เดี๋ยวต่อไปเราจะคำนวณ LF กับ LS นะครับ โดยจะคำนวณ LF ก่อน เพราะเรารู้แล้วว่าต้องจบไม่เกิน 31 นะ

 

### ปรับตารางให้ทำงานง่ายขึ้น

 

เพื่อให้ง่ายขึ้น จากนั้นผมจะเพิ่มคอลัมน์อีกอัน ชื่อว่า “งานต่อหลัง” เพื่อคำนวณว่า งานนั้นมีอะไรต่อหลังจากนั้นนั้นๆ บ้าง?

 

หลักการคือ เราหางานที่จะตามหลังจากงานบรรทัดนั้นๆ ด้วย FILTER + FIND แล้วค่อยเอาผลลัพธ์ที่ได้มารวมกันด้วย TEXTJOIN

 

```
งานต่อหลัง
=TEXTJOIN(",",TRUE,FILTER([Activity],ISNUMBER(FIND([@Activity],[งานก่อนหน้า])),""))
```

 ![3](https://www.thepexcel.com/wp-content/uploads/2020/10/critical-path-003-1-1024x314.png) 

### คำนวณ LF และ LS

 

สำหรับ LF นั้น = Late Start ของ Activity ถัดไปอันแรก -1 แต่ถ้าเป็น Activity สุดท้ายแล้ว (ไม่มีตัวต่อ ก็จะเท่ากับค่า MAX ของ EF)

 

ดังนั้นเราจะเขียนสูตรได้ว่า ถ้าตัวตามหลังไม่มี ก็ให้ LF เป็น MAX EF เลย

 

```
LF
=IF([@งานต่อหลัง]="",MAX([EF]),[@[Min LS ถัดไป]] -1)
```

 

จากนั้นเราคำนวณ LS (Late Start) ก่อน

 

```
LS
=[@LF]-[@Duration]+1
```

 

คราวนี้เราจะกลับมาคำนวณ LF ที่ค้างไว้ โดย Min LS ถัดไป ก็คือต้อง Lookup LS ของงานต่อหลังมา แล้วหาค่า MIN

 

```
Min LS ถัดไป
=MIN(XLOOKUP(TEXTSPLIT([@งานต่อหลัง],","),[Activity],[LS]))
```

 

แล้วเราก็จะได้ผลลัพธ์ครบทุกช่องตามต้องการแล้ว

 ![4](https://www.thepexcel.com/wp-content/uploads/2020/10/critical-path-004-1024x291.png) 

## จัดเรียงหน้าตาและทำ Gantt Chart

 

ถ้าสูตรทุกอย่าง work แล้ว เราอาจจะรวบสูตร

 

เอา Max EF ก่อนหน้า ไปรวมกับ ES

 

```
ES
= IF([@งานก่อนหน้า]="",0,MAX(XLOOKUP(TEXTSPLIT([@งานก่อนหน้า],","),[Activity],[EF])))+1
```

 

เอา Min LS ถัดไป รวมกับ LF

 

```
LF
=IF([@งานต่อหลัง]="",MAX([EF]),MIN(XLOOKUP(TEXTSPLIT([@งานต่อหลัง],","),[Activity],[LS])) -1)
```

 

จากนั้นจัดเรียงคอลัมน์ใหม่ให้เหมาะสม เช่น ให้ LS ขึ้นก่อน LF แล้วเว้นไป 1 คอลัมน์ แล้วสร้างคอลัมน์ใหม่เป็น 1-32 (ให้เลยวันสุดท้าย)

 

ที่เว้น 1 คอลัมน์ จะได้ไม่ต้องทำเป็น Table

 

จะได้หน้าตาแบบนี้

 ![5](https://www.thepexcel.com/wp-content/uploads/2025/04/critical-path-007-1024x427.png) 

ต่อไป ผมจะใส่ Conditional Format 2 อัน สำหรับในช่อง ES-EF กับ LS-LF

 

สำหรับ ES-EF เราจะทำอันนึงเป็นสีน้ำเงินแบบมี Pattern แนวตั้ง (จะได้มองทะลุด้านหลังได้) ซึ่งเขียน Conditional Format แบบ Custom ดังนี้ (เลือกพื้นที่เริ่มจาก J3)

 

```
Conditional Format ES-EF สีน้ำเงิน
=AND(J$2>=$D3,J$2<=$E3)
```

 

สำหรับ LS-LF เราจะทำเป็นสีเหลืองแบบทึบ ซึ่งเขียน Conditional Format แบบ Custom ดังนี้ (เลือกพื้นที่เริ่มจาก J3)

 

```
Conditional Format LS-LF สีเหลือง
=AND(J$2>=$G3,J$2<=$H3)
```

 

ซึ่งเราจะเรียงเอาสีน้ำเงินขึ้นก่อน ไม่งั้นเดี๋ยวจะมองไม่เห็น

 ![6](https://www.thepexcel.com/wp-content/uploads/2025/04/critical-path-009-1024x492.png) 

แค่นี้เราจะเห็นได้ชัดเลยว่าสามารถเริ่มงานอะไรได้ตั้งแต่ตอนไหน เริ่มได้ช้าสุดตอนไหน

 

และเราจะสังเกตได้ง่ายเลยว่าตรงไหนคือ Critical Path ซึ่งก็คืองานที่สองสีซ้อนกัน 100% ทั้งงานนั่นเอง (ไม่มีเวลาให้ Late ได้เลย)

 ![7](https://www.thepexcel.com/wp-content/uploads/2025/04/critical-path-010-1024x259.png) 

ซึ่งทุกอย่างจะเปลี่ยนแบบอัตโนมัติทั้งหมดด้วย!

 

## ลองเปลี่ยน Dependency

 

ลอง**แก้โจทย์ว่างาน G ต้องทำงาน B ให้เสร็จก่อน**ดู

 ![8](https://www.thepexcel.com/wp-content/uploads/2025/04/critical-path-011-1024x228.png) 

จะเห็นว่าตัวเลขทุกอย่างเปลี่ยนตามหมดเลย

 

ซึ่งถ้าลอง Sort ตาม LS อาจจะดูง่ายขึ้นได้ดังนี้

 ![9](https://www.thepexcel.com/wp-content/uploads/2025/04/critical-path-012-1024x227.png) 

## สรุป

 

เราสามารถใช้ Excel คำนวณเรื่อง Critical Path ได้ แต่ก็ต้องใช้ทั้งความเข้าใจหลักการของ Project Management เอง และความเข้าใจเรื่องของการใช้สูตรต่างๆ ด้วย

---

_Source: [https://www.thepexcel.com/critical-path-method-project/](https://www.thepexcel.com/critical-path-method-project/)_
