Ngữ pháp tiếng Anh

Thì quá khứ hoàn thành tiếp diễn: công thức, cách dùng và bài tập

Còn gọi là: past perfect continuous, past perfect progressive, had been V-ing, quá khứ hoàn thành tiếp diễn dấu hiệu

Thì quá khứ hoàn thành tiếp diễn (had been + V-ing) nói về một hành động đã kéo dài liên tục đến một thời điểm hoặc một hành động khác trong quá khứ, nhấn mạnh quãng thời gian. Hay đi với for, since, before, when, by the time. Động từ chỉ trạng thái (know, like, own…) không chia tiếp diễn, phải dùng quá khứ hoàn thành.

Công thức Thì quá khứ hoàn thành tiếp diễn

3 dạng, xếp từ hay gặp nhất.

  1. 1

    Khẳng định

    S + had been + V-ing

    Had dùng cho mọi ngôi, viết tắt là 'd. Hành động kéo dài trước một mốc trong quá khứ.

    • I had been waiting for 30 minutes when the bus finally came.Mình đã đợi suốt 30 phút thì xe buýt mới tới.
    • They had been living in Huế for ten years before they moved to Hà Nội.Họ đã sống ở Huế mười năm trước khi chuyển ra Hà Nội.
    • Her eyes were red because she'd been crying.Mắt cô ấy đỏ hoe vì đã khóc.
  2. 2

    Phủ định

    S + had not (hadn't) + been + V-ing

    Not đứng sau had, trước been.

    • He hadn't been sleeping well, so he felt tired at school.Dạo đó cậu ấy ngủ không ngon nên đến lớp thấy mệt.
    • We hadn't been practising long when it started to rain.Tụi mình mới tập được một lúc thì trời đổ mưa.
  3. 3

    Nghi vấn

    (Wh-) + Had + S + been + V-ing?

    Đưa had lên trước chủ ngữ. Hay đi với How long để hỏi hành động đã kéo dài bao lâu.

    • How long had you been studying English before you took the IELTS test?Cậu đã học tiếng Anh bao lâu trước khi thi IELTS?
    • Had she been working there long when she got promoted?Cô ấy đã làm ở đó lâu chưa thì được thăng chức?

Khi nào dùng?

  1. 1.Hành động kéo dài liên tục đến một thời điểm, một hành động khác trong quá khứ (nhấn mạnh quãng thời gian).

    • By the time the teacher arrived, we had been sitting in the classroom for an hour.Đến lúc cô giáo tới thì tụi mình đã ngồi trong lớp cả tiếng rồi.
  2. 2.Giải thích nguyên nhân của một kết quả nhìn thấy trong quá khứ.

    • The ground was wet because it had been raining all night.Đất ướt vì trời đã mưa cả đêm.
    • He was out of breath. He had been running.Cậu ấy thở hổn hển. Cậu ấy vừa chạy xong.
  3. 3.Là dạng lùi thì của hiện tại hoàn thành tiếp diễn trong câu tường thuật.

    • “I have been learning the guitar for two years,” she said. → She said she had been learning the guitar for two years.Cô ấy nói là đã học đàn ghi-ta được hai năm.

Dấu hiệu nhận biết

Thấy những chữ này trong câu là nghĩ ngay tới cấu trúc này.

  • for + khoảng thời gian
  • since + mốc thời gian
  • how long
  • before
  • when
  • by the time
  • until then
  • all day / all night

Phân biệt

had been V-ing (quá khứ hoàn thành tiếp diễn) và had V3 (quá khứ hoàn thành)

Had been V-ing nhấn mạnh quá trình, hành động kéo dài bao lâu. Had V3 nhấn mạnh kết quả, việc đã xong, hoặc có số lượng cụ thể (đã viết 3 bài, đã đọc xong cuốn sách).

  • She had been writing emails all morning.Cô ấy đã ngồi viết email suốt cả buổi sáng.
  • She had written ten emails by lunchtime.Đến giờ ăn trưa cô ấy đã viết xong mười email.

had been V-ing và was V-ing (quá khứ tiếp diễn)

Was V-ing chỉ nói hành động đang diễn ra tại một lúc trong quá khứ. Had been V-ing nói hành động đã kéo dài bao lâu trước lúc đó, nên có for, since, how long thì dùng had been V-ing.

  • When I called, he was playing games.Lúc mình gọi thì cậu ấy đang chơi game.
  • When I called, he had been playing games for three hours.Lúc mình gọi thì cậu ấy đã chơi game ba tiếng liền rồi.

had been V-ing và have/has been V-ing

Has/have been V-ing kéo dài đến hiện tại. Had been V-ing kéo dài đến một mốc trong quá khứ. Câu có mốc quá khứ (when he came, last year) thì dùng had.

  • I have been waiting for an hour. Where are you?Mình đợi cả tiếng rồi đấy. Cậu đang ở đâu?
  • I had been waiting for an hour when he finally showed up.Mình đã đợi cả tiếng thì cậu ấy mới xuất hiện.

Bẫy đề thi

Những chỗ đề hay gài và học sinh hay sai.

  1. 1

    I had been knowing him for years before we became friends.

    I had known him for years before we became friends.

    Know là động từ chỉ trạng thái, không chia tiếp diễn. Dùng quá khứ hoàn thành had known.

  2. 2

    She had been reading three novels before the holiday ended.

    She had read three novels before the holiday ended.

    Có số lượng cụ thể, việc đã xong (three novels) thì dùng quá khứ hoàn thành, không dùng tiếp diễn.

  3. 3

    We were waiting for two hours when the plane landed.

    We had been waiting for two hours when the plane landed.

    Có for two hours, nói hành động kéo dài trước một mốc quá khứ, nên dùng had been V-ing.

  4. 4

    He had being working all day, so he was exhausted.

    He had been working all day, so he was exhausted.

    Sau had là been (V3 của be), không dùng being.

  5. 5

    Nam has been studying for five hours when his mum came home.

    Nam had been studying for five hours when his mum came home.

    Mốc là một chuyện quá khứ (came home), nên lùi về had been, không dùng has been.

Bài tập thì quá khứ hoàn thành tiếp diễn

9 câu kiểu đề thi, có giải thích.

Athena

Thử xem, mình đợi em.

Câu 1When I got to the cinema, my friends ______ for me for twenty minutes.

Câu 2The road was flooded because it ______ heavily for two days.

Câu 3By the end of the summer, Lan ______ five books in English.

Câu 4Tìm lỗi sai: (A) By the time we (B) arrived, the children (C) have been playing outside (D) for hours.

Câu 5Tìm lỗi sai: They (A) were close friends (B) because they (C) had been knowing each other (D) since primary school.

Câu 6Chọn câu gần nghĩa nhất: “Minh started playing football at 2 p.m. He was still playing when it got dark at 6 p.m.”

Câu 7Điền vào chỗ trống: “Last week our town finally got clean water. People ______ for a new water system for years. Everyone was so happy on opening day.”

Câu 8Điền vào chỗ trống: “When Mai finally passed her driving test, she felt very proud. She ______ for it for six months. All that hard work had paid off.”

Câu 9Điền vào chỗ trống: “The old man was sitting outside the hospital. A nurse asked him how long he ______ there. He said he had arrived early in the morning.”

Hỏi đáp

Thì quá khứ hoàn thành tiếp diễn có dấu hiệu gì?
Hay đi với for, since, how long cùng một mốc quá khứ như when, before, by the time. Ví dụ: had been waiting for an hour when he came.
Quá khứ hoàn thành và quá khứ hoàn thành tiếp diễn khác nhau thế nào?
Had V3 nhấn mạnh việc đã xong hoặc có số lượng cụ thể. Had been V-ing nhấn mạnh hành động kéo dài bao lâu.
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 + hadn't been + V-ing. Nghi vấn: Had + S + been + V-ing?

Cập nhật 11/11/2026