Thì quá khứ hoàn thành (Past Perfect) diễn tả hành động đã xảy ra và hoàn tất trước một hành động hoặc một thời điểm khác trong quá khứ. Công thức: S + had + V3 cho mọi ngôi, ví dụ When we arrived, the film had started – Khi chúng tôi đến, phim đã bắt đầu rồi.
Có thể hình dung quá khứ hoàn thành như “quá khứ của quá khứ”. Khi kể chuyện, bạn đang đứng ở một mốc trong quá khứ và muốn nhắc tới điều đã xảy ra trước mốc đó. Tiếng Việt xử lý bằng các từ “đã… rồi”, “trước đó”; tiếng Anh dùng had + V3 để người nghe không nhầm thứ tự sự việc.
Công thức thì quá khứ hoàn thành
| Dạng câu | Công thức | Ví dụ |
|---|---|---|
| Khẳng định | S + had + V3 | She had finished her homework before dinner. – Cô ấy đã làm xong bài tập trước bữa tối. |
| Phủ định | S + had not (hadn’t) + V3 | I hadn’t met him before the party. – Trước bữa tiệc tôi chưa từng gặp anh ấy. |
| Nghi vấn Yes/No | Had + S + V3? | Had you eaten when they arrived? – Lúc họ đến bạn đã ăn chưa? |
| Câu hỏi Wh- | Wh- + had + S + V3? | Where had they gone? – Họ đã đi đâu? |
- Had dùng cho tất cả các ngôi, không phân biệt số ít, số nhiều.
- Dạng rút gọn: I’d, you’d, he’d, she’d, we’d, they’d. Chú ý ‘d cũng có thể là would; nếu theo sau là V3 thì đó là had (She’d left = She had left), nếu theo sau là V nguyên mẫu thì là would (She’d leave).
- V3 của động từ bất quy tắc tra tại bảng động từ bất quy tắc (go – gone, see – seen, take – taken).

Cách dùng thì quá khứ hoàn thành
1. Hành động xảy ra trước một hành động khác trong quá khứ
Hành động xảy ra trước dùng quá khứ hoàn thành, hành động xảy ra sau dùng thì quá khứ đơn.
When I got to the station, the train had left. – Khi tôi đến ga thì tàu đã chạy mất rồi.
So sánh với: When I got to the station, the train left. – Tôi vừa đến ga thì tàu chạy (tôi kịp nhìn thấy tàu rời đi). Một chữ had làm thay đổi hoàn toàn thứ tự sự việc.
2. Hành động hoàn tất trước một thời điểm trong quá khứ
By 2015, David had visited over twenty countries. – Tính đến năm 2015, David đã đi hơn hai mươi nước.
3. Trải nghiệm tính đến một mốc quá khứ
It was the first time I had seen the sea. – Đó là lần đầu tiên tôi được thấy biển.
She had never flown before that trip. – Trước chuyến đi đó cô ấy chưa từng đi máy bay.
Đây chính là phiên bản lùi về quá khứ của thì hiện tại hoàn thành (This is the first time I have seen…).
4. Trong câu điều kiện loại 3
Câu điều kiện loại 3 diễn tả giả định trái với sự thật trong quá khứ: If + S + had + V3, S + would have + V3.
If you had told me earlier, I would have helped you. – Nếu bạn nói với tôi sớm hơn thì tôi đã giúp rồi (thực tế bạn không nói).
Xem đầy đủ các loại câu điều kiện ở bài câu điều kiện.
5. Trong câu tường thuật (lùi thì)
Khi động từ tường thuật ở quá khứ (said, told, asked), thì hiện tại hoàn thành và quá khứ đơn trong lời nói trực tiếp thường lùi về quá khứ hoàn thành:
| Câu trực tiếp | Câu tường thuật |
|---|---|
| “I have lost my key,” Lan said. | Lan said she had lost her key. – Lan nói cô ấy đã làm mất chìa khóa. |
| “We saw the film,” they said. | They said they had seen the film. – Họ nói họ đã xem bộ phim đó. |
Trong văn nói, nếu thứ tự sự việc đã rõ, người bản ngữ đôi khi giữ quá khứ đơn (They said they saw the film). Quy tắc chi tiết có tại bài câu tường thuật.
6. Với wish và if only (tiếc nuối về quá khứ)
I wish I had studied harder. – Ước gì hồi đó tôi học chăm hơn.
Before, after, by the time và các dấu hiệu khác
| Cấu trúc | Ví dụ |
|---|---|
| S + had V3 + before + S + V2 | She had cleaned the house before her parents came. – Cô ấy đã dọn nhà trước khi bố mẹ đến. |
| Before + S + V2, S + had V3 | Before I went to bed, I had locked the door. – Trước khi đi ngủ, tôi đã khóa cửa. |
| After + S + had V3, S + V2 | After he had finished work, he went home. – Sau khi làm xong việc, anh ấy về nhà. |
| By the time + S + V2, S + had V3 | By the time the police arrived, the thief had escaped. – Khi cảnh sát đến thì tên trộm đã trốn thoát. |
| When + S + V2, S + had V3 | When I woke up, everyone had gone out. – Khi tôi thức dậy, mọi người đã ra ngoài hết. |
| already, just, never… before, by + mốc quá khứ | He had already eaten. – Anh ấy đã ăn rồi. |
Lưu ý quan trọng: với before và after, bản thân liên từ đã cho biết thứ tự, nên người bản ngữ thường chấp nhận cả quá khứ đơn: After he finished work, he went home vẫn đúng. Quá khứ hoàn thành lúc này giúp nhấn mạnh việc đã hoàn tất. Còn với when và by the time, việc chọn đúng thì là bắt buộc để người nghe hiểu đúng ý.

Lỗi thường gặp
- Lạm dụng quá khứ hoàn thành: chỉ dùng khi cần thể hiện thứ tự trước – sau. Một chuỗi hành động nối tiếp nhau theo đúng thứ tự kể thì dùng quá khứ đơn: I opened the door, turned on the light and sat down.
- Dùng had + V2: had went là sai, đúng là had gone.
- Nhầm với hiện tại hoàn thành: nếu mốc so sánh là hiện tại, dùng have/has + V3; mốc là quá khứ mới dùng had + V3.
Ví dụ gắn với chuyện đặt tên
Câu chuyện “vì sao tôi có tên tiếng Anh” là chất liệu tốt để luyện thì này: Before I joined the company, I had never used an English name. My manager suggested “David” because he had worked with a colleague with the same Vietnamese name. – Trước khi vào công ty, tôi chưa từng dùng tên tiếng Anh. Quản lý gợi ý tên “David” vì anh ấy từng làm việc với một đồng nghiệp trùng tên tiếng Việt với tôi. Nếu bạn cũng đang chọn tên cho môi trường công sở, tham khảo ý nghĩa tên David. Khi đã vững thì này, bạn có thể học tiếp thì quá khứ hoàn thành tiếp diễn và ôn tổng quan tại các thì trong tiếng Anh.
Bài tập thì quá khứ hoàn thành có đáp án
Chia động từ ở quá khứ đơn hoặc quá khứ hoàn thành.
- When we got to the cinema, the film (already / start) ______.
- She (live) ______ in Hue before she moved to Saigon.
- By the time I arrived, everyone (leave) ______.
- After they (eat) ______ lunch, they went for a walk.
- If you (study) ______ harder, you would have passed the exam.
- He said he (lose) ______ his wallet.
- I (not see) ______ snow until I went to Japan last winter.
- When I opened the box, I (find) ______ an old letter.
Đáp án:
- had already started – phim bắt đầu trước khi chúng tôi đến.
- had lived – sống ở Huế trước khi chuyển đi (có thể chấp nhận lived vì có before).
- had left – cấu trúc by the time.
- had eaten – ăn trưa xong rồi mới đi dạo (có thể chấp nhận ate vì có after).
- had studied – câu điều kiện loại 3.
- had lost – câu tường thuật lùi thì.
- hadn’t seen – trải nghiệm tính đến một mốc quá khứ.
- found – hai hành động nối tiếp, mở hộp rồi thấy thư, không cần quá khứ hoàn thành.






