Thì quá khứ hoàn thành tiếp diễn (Past Perfect Continuous): khái niệm, công thức, bài tập có đáp án
Hướng dẫn đầy đủ thì quá khứ hoàn thành tiếp diễn: khái niệm, 5 cách dùng, công thức, phân biệt với quá khứ hoàn thành, dấu hiệu nhận biết, 6 bài tập có đáp án và 10 câu hỏi thường gặp.

Thì quá khứ hoàn thành tiếp diễn là gì?
Thì quá khứ hoàn thành tiếp diễn (Past Perfect Continuous) nhấn mạnh quá trình và độ dài của một hành động đã diễn ra liên tục trước một hành động hoặc một mốc thời gian khác trong quá khứ.
Có thể hiểu đây là "quá khứ" của thì hiện tại hoàn thành tiếp diễn: thay vì nói "đã làm liên tục cho đến bây giờ", ta nói "đã làm liên tục cho đến lúc đó trong quá khứ".
5 cách dùng thì quá khứ hoàn thành tiếp diễn

1. Hành động kéo dài liên tục đến một thời điểm trong quá khứ
Ví dụ
She had been waiting for two hours when the bus finally came. / By noon, they had been working for six hours.
Nhấn mạnh độ dài của hành động trước một mốc hoặc việc xảy ra sau; hay có for và since.
2. Giải thích nguyên nhân bằng một quá trình liên tục
Ví dụ
His eyes were red because he had been crying. / The road was wet. It had been raining all night.
Quá trình diễn ra liên tục trước đó giải thích cho tình trạng ở quá khứ.
3. Hành động vừa kết thúc và còn để lại dấu vết
Ví dụ
She was out of breath because she had been running.
Hành động đã dừng, nhưng kết quả của nó còn thấy rõ ở thời điểm quá khứ đang nói tới.
4. Hành động lặp lại trong một giai đoạn trước mốc quá khứ
Ví dụ
He had been going to the gym every day before he hurt his back.
Chỉ thói quen lặp lại trong một giai đoạn dẫn tới một sự việc khác.
5. Tường thuật trong câu gián tiếp
Ví dụ
She said she had been studying English for three years.
Câu trực tiếp "I have been studying..." lùi thành quá khứ hoàn thành tiếp diễn.
Công thức thì quá khứ hoàn thành tiếp diễn

| Dạng câu | Công thức | Ví dụ |
|---|---|---|
| Khẳng định (+) | S + had been + V-ing | I had been studying for two hours. |
| Phủ định (−) | S + had not (hadn't) been + V-ing | I hadn't been studying. |
| Nghi vấn (?) | Had + S + been + V-ing ? | Had you been studying? |
| Trả lời ngắn | Yes, S + had. / No, S + hadn't. | Yes, I had. / No, I hadn't. |
Câu hỏi với từ để hỏi (Wh-questions)
| Cấu trúc | Ví dụ |
|---|---|
| Wh-word + had + S + been + V-ing ? | How long had you been waiting? / What had they been doing? |
| Who/What + had been + V-ing (hỏi chủ ngữ) | Who had been using my car? |
Quá trình hay kết quả? Phân biệt với quá khứ hoàn thành
Quá khứ hoàn thành tiếp diễn nhấn mạnh quá trình, còn quá khứ hoàn thành nhấn mạnh kết quả. Động từ chính thêm -ing như ở các thì tiếp diễn khác.

| Trọng tâm | Quá khứ hoàn thành (had + V3) | Quá khứ hoàn thành tiếp diễn (had been + V-ing) |
|---|---|---|
| Nhấn mạnh | Kết quả, số lượng, việc đã xong | Quá trình, độ dài, tính liên tục |
| Ví dụ | She had read three books. | She had been reading all afternoon. |
| Câu hỏi | How many...? | How long...? |
| Động từ chỉ trạng thái | I had known him for years. | (không dùng) |
Quy tắc thêm -ing
| Trường hợp | Ví dụ |
|---|---|
| Hầu hết động từ: + ing | work → working; play → playing |
| Tận cùng là e: bỏ e rồi + ing | make → making; write → writing |
| Một nguyên âm + một phụ âm (nhấn ở âm cuối): gấp đôi phụ âm | run → running; sit → sitting |
| Tận cùng là ie: đổi thành y rồi + ing | lie → lying; die → dying |
Dấu hiệu nhận biết thì quá khứ hoàn thành tiếp diễn
Quá khứ hoàn thành tiếp diễn thường đi kèm for, since, how long và một mốc hoặc việc khác trong quá khứ.

For và since
- for + khoảng thời gian: for two hours, for a week
- since + mốc quá khứ: since 6 a.m., since Monday
Từ nhấn mạnh sự liên tục
- all day, all morning, all night, the whole week
Liên từ chỉ mốc so sánh
- before, by the time, when, until then
- Ví dụ: By the time he arrived, I had been waiting for an hour.
So sánh quá khứ hoàn thành tiếp diễn và hiện tại hoàn thành tiếp diễn
| Hiện tại hoàn thành tiếp diễn | Quá khứ hoàn thành tiếp diễn | |
|---|---|---|
| Công thức | have/has been + V-ing | had been + V-ing |
| Mốc so sánh | Hiện tại | Một thời điểm trong quá khứ |
| Ví dụ | I have been waiting for an hour. | I had been waiting for an hour when he came. |
So sánh quá khứ hoàn thành tiếp diễn và quá khứ tiếp diễn
| Quá khứ tiếp diễn | Quá khứ hoàn thành tiếp diễn | |
|---|---|---|
| Ý nghĩa | Đang diễn ra tại một thời điểm trong quá khứ | Đã diễn ra liên tục trước một thời điểm hoặc việc trong quá khứ |
| Ví dụ | At 8 p.m. I was studying. | At 8 p.m. I had been studying for two hours. |
| Nhấn mạnh | Việc đang xảy ra | Độ dài của quá trình trước đó |
Những lỗi thường gặp
Mẹo ghi nhớ nhanh
- Công thức đủ ba phần: had + been + V-ing.
- Có for, since, how long, all day kèm một mốc hoặc việc trong quá khứ thì nghĩ đến thì này.
- Nói về số lượng hoặc việc đã xong thì dùng quá khứ hoàn thành, không dùng tiếp diễn.
- Động từ chỉ trạng thái (know, like, want...) không chia tiếp diễn.
- Nhớ đây là "quá khứ" của hiện tại hoàn thành tiếp diễn: have been → had been.
Bài tập thực hành
Hãy tự làm các bài tập sau trước khi xem đáp án ở phần cuối bài. Mỗi bài có mức độ tăng dần.
Bài tập 1: Chia động từ trong ngoặc
Chia động từ ở thì quá khứ hoàn thành tiếp diễn.
- She ____ (wait) for two hours when the bus finally came.
- They ____ (work) all day, so they were exhausted.
- How long ____ you ____ (learn) English before you moved to London?
- His eyes were red because he ____ (cry).
- I ____ (not sleep) well, so I felt tired.
- It ____ (rain) for three hours when we left.
- ____ she ____ (study) before the exam?
- He ____ (play) football all afternoon, so he was covered in mud.
- By noon, we ____ (drive) for six hours.
- The neighbours ____ (make) noise all night, so I couldn't sleep.
Bài tập 2: Chọn đáp án đúng
Chọn A, B hoặc C.
- When he arrived, I ____ for an hour. (A. waited / B. had been waiting / C. have been waiting)
- She was tired because she ____ all day. (A. worked / B. had been working / C. is working)
- How long ____ they ____ before the show began? (A. have / waited / B. had / been waiting / C. did / wait)
- The ground was wet. It ____ all night. (A. rained / B. had been raining / C. has been raining)
- I ____ him for years before we met in person. (A. had known / B. had been knowing / C. know)
- He ____ in London for two years when he got the job. (A. lives / B. had been living / C. has been living)
- By lunch, she ____ five emails. (A. had been writing / B. had written / C. writes)
- They ____ for the bus for 30 minutes when it finally came. (A. waited / B. had been waiting / C. were waiting)
Bài tập 3: Tìm và sửa lỗi sai
Mỗi câu có một lỗi. Hãy viết lại câu đúng.
- She had working all day.
- I had been knowing him for years.
- When he arrived, I have been waiting for an hour.
- They had been play football since morning.
- How long you had been waiting?
- She had been writing five letters before lunch.
Bài tập 4: Chuyển sang phủ định và nghi vấn
Viết lại mỗi câu thành dạng phủ định và dạng nghi vấn.
- He had been working.
- They had been waiting for an hour.
- She had been studying English.
- I had been running.
Bài tập 5: Sắp xếp các từ thành câu hoàn chỉnh
Sắp xếp các từ sau thành câu đúng.
- been / she / had / waiting / for / an hour
- long / how / had / you / been / learning / English
- been / it / had / raining / all night
- he / arrived / I / had / when / waiting / been
Bài tập 6: Viết về bản thân
Viết 5 câu về một lần bạn mệt hoặc bực vì đã làm điều gì đó liên tục rất lâu (ví dụ: I was exhausted because I had been studying all day.), dùng for hoặc since ít nhất một lần.
Đáp án
Bài tập 1
- had been waiting
- had been working
- had ... been learning
- had been crying
- had not (hadn't) been sleeping
- had been raining
- Had ... been studying
- had been playing
- had been driving
- had been making
Bài tập 2
- B. had been waiting
- B. had been working
- B. had / been waiting
- B. had been raining
- A. had known (động từ chỉ trạng thái)
- B. had been living
- B. had written (nhấn mạnh số lượng)
- B. had been waiting
Bài tập 3
- She had been working all day. (thiếu been)
- I had known him for years. (know là động từ chỉ trạng thái)
- When he arrived, I had been waiting for an hour. (mốc quá khứ nên dùng had been)
- They had been playing football since morning. (thêm -ing)
- How long had you been waiting? (đảo had lên trước chủ ngữ)
- She had written five letters before lunch. (nhấn mạnh số lượng nên dùng quá khứ hoàn thành)
Bài tập 4
- He hadn't (had not) been working. / Had he been working?
- They hadn't (had not) been waiting for an hour. / Had they been waiting for an hour?
- She hadn't (had not) been studying English. / Had she been studying English?
- I hadn't (had not) been running. / Had I been running?
Bài tập 5
- She had been waiting for an hour.
- How long had you been learning English?
- It had been raining all night.
- I had been waiting when he arrived.
Bài tập 6
Đáp án mở. Gợi ý: I was exhausted because I had been studying all day. My eyes hurt because I had been looking at the screen for hours. By the time my friend arrived, I had been waiting for 40 minutes. It had been raining since morning, so the road was wet. We had been walking for two hours when we found the hotel.
Tổng kết
Câu hỏi thường gặp
Thì quá khứ hoàn thành tiếp diễn dùng khi nào?
Dùng cho hành động kéo dài liên tục đến một thời điểm trong quá khứ, để giải thích nguyên nhân bằng một quá trình, cho hành động vừa kết thúc còn dấu vết, và trong câu gián tiếp.
Công thức thì quá khứ hoàn thành tiếp diễn là gì?
Khẳng định: S + had been + V-ing. Phủ định: S + had not been + V-ing. Nghi vấn: Had + S + been + V-ing? Had been dùng cho mọi chủ ngữ.
Khác gì so với quá khứ hoàn thành?
Quá khứ hoàn thành nhấn mạnh kết quả, số lượng (She had read three books). Quá khứ hoàn thành tiếp diễn nhấn mạnh quá trình, độ dài (She had been reading all afternoon).
Khác gì so với hiện tại hoàn thành tiếp diễn?
Hiện tại hoàn thành tiếp diễn nối quá khứ với hiện tại (have been waiting for an hour). Quá khứ hoàn thành tiếp diễn nối với một mốc trong quá khứ (had been waiting for an hour when he came).
Có cần có mốc hoặc việc khác trong quá khứ không?
Có. Thì này luôn cần một việc hoặc một mốc thời gian khác trong quá khứ làm điểm so sánh, ví dụ when he arrived, by noon, before the exam.
Có dùng với động từ chỉ trạng thái không?
Không. Know, like, love, want, belong... dùng quá khứ hoàn thành: I had known him for years.
Phân biệt for và since trong thì này?
for + khoảng thời gian (for two hours); since + mốc thời gian bắt đầu trong quá khứ (since 6 a.m.).
Dùng thế nào trong câu gián tiếp?
"I have been studying English for three years" khi tường thuật ở quá khứ thành: She said she had been studying English for three years.
Làm sao hỏi một việc đã kéo dài bao lâu trước một mốc quá khứ?
Dùng How long had + S + been + V-ing?: How long had you been waiting when the bus came?
Làm sao để nhớ lâu và dùng đúng thì này?
Hãy nhớ đây là quá khứ của hiện tại hoàn thành tiếp diễn (have been → had been), viết câu về các việc bạn đã làm liên tục trước một sự kiện, và làm lại bài tập sau 1 ngày, 3 ngày, 7 ngày.