Tóm tắt nhanh: Thì quá khứ hoàn thành (Past Perfect) diễn tả một hành động đã xảy ra và hoàn tất trước một hành động khác hoặc trước một mốc thời gian trong quá khứ. Công thức: S + had + V3/ed; phủ định thêm not sau had, câu hỏi đảo Had lên đầu. Thì này thường đi với before, after, by the time, by + mốc quá khứ, when, already, never…before. Nó còn xuất hiện trong câu gián tiếp lùi thì và câu điều kiện loại 3.
Thì quá khứ hoàn thành là gì?
Thì quá khứ hoàn thành (Past Perfect) là thì dùng để nói về một việc đã xảy ra xong trước một thời điểm hoặc một sự việc khác trong quá khứ. Có thể hình dung nó là "quá khứ của quá khứ": khi kể chuyện đã qua, con dùng thì này để đánh dấu việc nào xảy ra trước.
Ví dụ: When we arrived, the film had started. (Khi chúng tôi đến, phim đã chiếu rồi.) — Việc phim bắt đầu xảy ra trước việc chúng tôi đến.
By 8 a.m., she had eaten breakfast. (Trước 8 giờ sáng, cô ấy đã ăn sáng xong.) — Mốc 8 giờ sáng nằm trong quá khứ, việc ăn sáng hoàn tất trước mốc đó.
Điểm mấu chốt: thì này hầu như không đứng một mình mà cần một "mốc quá khứ" để so sánh, thường là một mệnh đề ở thì quá khứ đơn hoặc cụm như by then, by 2020.
Công thức thì quá khứ hoàn thành
Công thức thì quá khứ hoàn thành rất gọn vì had dùng chung cho mọi chủ ngữ. Con chỉ cần thuộc dạng V3/ed (quá khứ phân từ) của động từ.
"Had better + V" là lời khuyên, KHÔNG phải thì quá khứ hoàn thành.
Dạng bị động là S + had been + V3/ed: The cake had been eaten before Mom came home. Ôn thêm ở sơ đồ tư duy câu bị động.
Quy tắc dùng V3/ed và dạng viết tắt
Phần khó nhất không nằm ở công thức mà ở V3 (cột thứ ba của bảng động từ bất quy tắc). Cha mẹ lưu ý con:
- Động từ có quy tắc: V3 giống V2, thêm -ed → play → played → had played; visit → visited → had visited.
- Động từ bất quy tắc: phải học thuộc cột 3 → go → went → gone; eat → ate → eaten; see → saw → seen; write → wrote → written. Lỗi "had went" rất phổ biến vì con lẫn cột 2 với cột 3. Ôn bảng này bằng sơ đồ tư duy động từ bất quy tắc.
- Had had là hoàn toàn đúng: had (trợ động từ) + had (V3 của have). Ví dụ: I had had lunch, so I wasn't hungry. (Tôi đã ăn trưa rồi nên không đói.)
Khi nào dùng thì quá khứ hoàn thành?
Thì quá khứ hoàn thành có 5 cách dùng chính. Mẹo nhớ: khi câu chuyện quá khứ có hai việc, việc xảy ra trước dùng quá khứ hoàn thành, việc sau dùng quá khứ đơn.
1. Hành động xảy ra trước một hành động khác trong quá khứ
Đây là cách dùng cốt lõi. Hai việc đều đã qua; việc trước chia quá khứ hoàn thành, việc sau chia quá khứ đơn. Từ nối hay gặp: when, before, after, because. Nhờ thì này, người nghe hiểu đúng thứ tự dù con kể việc sau trước.
- When I got to school, the lesson had already begun. — Khi tôi đến trường thì tiết học đã bắt đầu rồi.
- She was sad because she had lost her favourite pen. — Cô bé buồn vì đã làm mất chiếc bút yêu thích.
2. Hành động hoàn tất trước một mốc thời gian trong quá khứ
Mốc so sánh có thể là một thời điểm cụ thể: by 9 p.m., by then, by the end of last year. Cấu trúc by + mốc quá khứ nghĩa là "tính đến lúc đó đã xong", là tín hiệu rất rõ của thì này trong bài kiểm tra.
- By the end of Grade 5, my son had read all the Doraemon books. — Đến cuối lớp 5, con trai tôi đã đọc hết bộ Doraemon.
- By 2019, they had moved to Da Nang. — Đến năm 2019, họ đã chuyển vào Đà Nẵng.
3. Kinh nghiệm hoặc trạng thái kéo dài tính đến một thời điểm quá khứ
Giống thì hiện tại hoàn thành nhưng lùi về quá khứ: diễn tả "đã từng / chưa từng" hoặc "đã… được bao lâu" tính đến một lúc nào đó trước đây. Hay đi với never, ever, before, for, since và cấu trúc It was the first time….
- It was the first time I had seen snow. — Đó là lần đầu tiên tôi được nhìn thấy tuyết.
- They had known each other for ten years when they got married. — Họ đã quen nhau 10 năm khi kết hôn.
4. Lùi thì trong câu gián tiếp
Khi động từ tường thuật ở quá khứ (said, told, asked), thì của câu gốc thường lùi một bậc: hiện tại hoàn thành và quá khứ đơn đều lùi thành quá khứ hoàn thành. Xem đủ quy tắc ở sơ đồ tư duy câu gián tiếp.
- "I have finished my project," Minh said. → Minh said (that) he had finished his project. — Minh nói rằng cậu ấy đã làm xong dự án.
- "I saw a rainbow," said Mai. → Mai said she had seen a rainbow. — Mai nói rằng bạn ấy đã nhìn thấy cầu vồng.
5. Câu điều kiện loại 3 và câu ước về quá khứ
Để nói về điều không có thật trong quá khứ, mệnh đề if dùng quá khứ hoàn thành, mệnh đề chính dùng would have + V3. Câu ước wish / if only về quá khứ cũng vậy. Xem thêm sơ đồ tư duy câu điều kiện.
- If you had woken up earlier, you wouldn't have missed the bus. — Nếu con dậy sớm hơn thì đã không lỡ xe buýt.
- I wish I had brought my umbrella. — Giá mà tôi mang theo ô.
"Had better" có phải thì quá khứ hoàn thành không?
Không. "Had better + V nguyên mẫu" là lời khuyên, cảnh báo cho hiện tại hoặc tương lai, nghĩa là "tốt hơn hết là nên". Dù có chữ had, nó không nói về quá khứ và động từ sau không phải V3.
- You'd better take a coat. It's cold outside. — Con nên mang áo khoác, ngoài trời lạnh lắm.
Lưu ý phủ định là had better not + V (không phải "hadn't better"), và tuyệt đối không thêm "to": nói had better go, không nói "had better to go".
Dấu hiệu nhận biết thì quá khứ hoàn thành
Khi kể chuyện quá khứ, các từ sau báo hiệu thì quá khứ hoàn thành:
- before / after: He had left before I arrived. — After she had finished, she went out.
- by the time + quá khứ đơn: By the time Dad got home, we had cooked dinner.
- by + mốc quá khứ: by then, by that time, by 9 p.m. last night, by the end of 2020.
- when + quá khứ đơn: khi việc trong mệnh đề chính xảy ra trước, ví dụ When I called, she had gone out.
- already, just, never, ever… before, for, since trong ngữ cảnh quá khứ.
- until / till, as soon as: I didn't go to bed until I had finished my homework.
- Cấu trúc đảo ngữ (THPT): No sooner had I sat down than the phone rang. — Hardly had we left when it started to rain.
Vị trí: already, just, never đứng giữa had và V3 (had already left). Trong câu có by the time hoặc before, mệnh đề quá khứ hoàn thành có thể đứng trước hoặc sau, nhưng mệnh đề với by the time luôn chia quá khứ đơn.
Những lỗi sai thường gặp khi dùng thì quá khứ hoàn thành
- ❌ She had went home. → ✅ She had gone home. (sau had phải là V3, không phải V2)
- ❌ I had visited Da Lat last summer. → ✅ I visited Da Lat last summer. (chỉ có một việc với mốc thời gian rõ ràng, không có việc nào "sau" nó, nên dùng quá khứ đơn)
- ❌ By the time we arrived, the shop closed. → ✅ By the time we arrived, the shop had closed. (cửa hàng đóng trước khi ta đến)
- ❌ You had better to stay at home. → ✅ You had better stay at home. (had better + V nguyên mẫu, không có "to")
- ❌ If I would have known, I would have helped. → ✅ If I had known, I would have helped. (mệnh đề if loại 3 dùng quá khứ hoàn thành, không dùng would)
- ❌ Lan said she has finished her homework. → ✅ Lan said she had finished her homework. (động từ tường thuật ở quá khứ thì lùi thì)
Thì quá khứ hoàn thành khác thì quá khứ đơn như thế nào?
Quá khứ đơn kể một việc hoặc chuỗi việc theo đúng thứ tự xảy ra; quá khứ hoàn thành dùng khi cần đánh dấu việc nào xảy ra trước so với một mốc quá khứ khác. Cặp câu với when cho thấy rõ nhất sự khác biệt:
- When I arrived, Nam left. — Tôi đến, rồi Nam mới về. (Nam về sau khi tôi đến, có thể vì thấy tôi đến)
- When I arrived, Nam had left. — Khi tôi đến thì Nam đã về rồi. (Nam về trước, tôi không gặp Nam)
Với before và after, từ nối đã cho biết thứ tự nên quá khứ đơn cũng đúng: She left before I arrived và She had left before I arrived đều được. Tuy vậy, trong bài trắc nghiệm, đáp án had + V3 hợp lý với before/after/by the time thường là đáp án mong đợi.
Đừng lẫn với thì quá khứ tiếp diễn: When I arrived, they were eating (đang ăn) khác they had eaten (đã ăn xong).
Mẹo giúp con học thì quá khứ hoàn thành tại nhà
Nói thật với cha mẹ: trẻ tiểu học hầu như kể chuyện bằng quá khứ đơn, và điều đó hoàn toàn bình thường. Thì quá khứ hoàn thành thường được dạy kỹ ở THCS và hay xuất hiện trong đề thi vào lớp 10, thi tốt nghiệp THPT (câu gián tiếp, điều kiện loại 3, by the time). Các mẹo dưới đây hợp với con từ khoảng 11–12 tuổi:
- Vẽ trục thời gian hai chấm: con vẽ mũi tên, chấm 1 là việc trước (had + V3), chấm 2 là việc sau (V2). Nhìn hình, con hết đoán mò.
- Trò "Trễ mất rồi!": cha mẹ mở đầu When I got to the station…, con nối tiếp: the train had left, my friends had gone home… Càng hài hước càng nhớ.
- Đọc truyện và săn "had + V3": truyện tiếng Anh dùng thì này nhiều khi nhân vật hồi tưởng. Con gạch chân 3 câu và nói việc nào xảy ra trước.
- Viết nhật ký "Trước khi…": con viết 3 câu dạng By 9 p.m., I had… về chính ngày của mình.
Bài tập thì quá khứ hoàn thành có đáp án
Bài 1: Chia động từ trong ngoặc
- When we got to the cinema, the film (already/start) ___.
- She (never/see) ___ snow before she went to Sa Pa.
- By the time Dad came home, we (finish) ___ dinner.
- After he (do) ___ his homework, he (go) ___ to bed.
- I was very hungry because I (not/eat) ___ anything since breakfast.
- ___ you (lock) ___ the door before you left?
- Tom said that he (lose) ___ his bike.
- If you (study) ___ harder, you would have passed the test.
- It was the first time I (ride) ___ a horse.
- The train (leave) ___ when we arrived at the station, so we waited for the next one.
Bài 2: Nối hoặc viết lại câu theo gợi ý
- The bell rang. Then the students went out. (After…)
- Lan cleaned her room. Then her mom came home. (…before…)
- I finished the test. Then the teacher collected the papers. (By the time…)
- "I have finished my project," Minh said. (Minh said that…)
- I didn't know the answer, so I didn't tell you. (If…)
Bài 3: Tìm và sửa lỗi sai
- She had went to school before it rained.
- By the time we arrived, the shop closed.
- You had better to stay at home today.
- Had you saw that film before?
- I had visited Da Lat last summer with my family.
Bài 4: Chọn quá khứ đơn hay quá khứ hoàn thành
- When I arrived at the party, Nam (went / had gone) home, so I didn't see him.
- When the teacher came in, the students (stood / had stood) up to greet her.
- She (lived / had lived) in Hue for ten years before she moved to Hanoi.
- Yesterday I (got / had got) up at 6 and (went / had gone) jogging.
- I (didn't recognise / hadn't recognised) him because he (changed / had changed) a lot.
Đáp án
- Bài 1: 1. had already started — 2. had never seen — 3. had finished — 4. had done … went — 5. hadn't eaten — 6. Had … locked — 7. had lost — 8. had studied — 9. had ridden — 10. had left
- Bài 2: 1. After the bell had rung, the students went out. — 2. Lan had cleaned her room before her mom came home. — 3. By the time the teacher collected the papers, I had finished the test. — 4. Minh said that he had finished his project. — 5. If I had known the answer, I would have told you.
- Bài 3: 1. had went → had gone — 2. closed → had closed — 3. had better to stay → had better stay — 4. saw → seen — 5. had visited → visited (chỉ một việc với mốc "last summer")
- Bài 4: 1. had gone — 2. stood (đứng dậy ngay sau khi cô vào) — 3. had lived — 4. got … went (chuỗi việc nối tiếp) — 5. didn't recognise … had changed
Câu hỏi thường gặp về thì quá khứ hoàn thành
Sau before và after dùng thì gì?
Sau before thường dùng quá khứ đơn, mệnh đề còn lại dùng quá khứ hoàn thành: He had left before I came. Sau after thì ngược lại, mệnh đề sau after có thể dùng quá khứ hoàn thành: After he had eaten, he left. Vì before/after đã chỉ rõ thứ tự, dùng quá khứ đơn cho cả hai vế cũng được chấp nhận.
"Had had" có đúng ngữ pháp không?
Đúng. Chữ had thứ nhất là trợ động từ của thì quá khứ hoàn thành, chữ had thứ hai là V3 của động từ have (có, ăn, trải qua). Ví dụ: She had had a cold for a week before she saw a doctor. Trong văn nói, người bản xứ thường rút gọn thành She'd had….
Thì quá khứ hoàn thành khác hiện tại hoàn thành ở điểm nào?
Cả hai đều nói về việc "đã xong" so với một mốc. Hiện tại hoàn thành lấy mốc là bây giờ (I have finished), còn quá khứ hoàn thành lấy mốc là một lúc trong quá khứ (I had finished by then). Khi chuyển câu gián tiếp, have/has + V3 lùi thành had + V3.
Có bắt buộc dùng quá khứ hoàn thành khi kể chuyện không?
Không bắt buộc. Khi các việc được kể đúng theo thứ tự xảy ra, chỉ cần quá khứ đơn: I got up, had breakfast and went to school. Quá khứ hoàn thành chỉ cần khi con muốn quay ngược lại một việc xảy ra trước đó: When I got to school, I realised I had left my book at home.
Tổng kết
Thì quá khứ hoàn thành giúp sắp xếp thứ tự sự việc trong quá khứ: công thức S + had + V3/ed dùng chung cho mọi chủ ngữ, đi cùng before, after, by the time, và là chìa khoá của câu gián tiếp lùi thì, câu điều kiện loại 3. Nhắc con phân biệt nó với "had better" và đừng dùng thay quá khứ đơn khi chỉ có một việc. Xem lại vị trí của Past Perfect trong sơ đồ tư duy 12 thì trong tiếng Anh, ôn lại thì quá khứ tiếp diễn nếu cần, rồi học tiếp bài sau: thì quá khứ hoàn thành tiếp diễn (Past Perfect Continuous).
Tài liệu tham khảo: Raymond Murphy, English Grammar in Use (Cambridge University Press); Michael Swan, Practical English Usage (Oxford University Press); Cambridge Dictionary — English Grammar Today. Cập nhật: 10/2026.
