Thì quá khứ hoàn thành (past perfect)

B1 · Trung cấpCác thì quá khứ

Khi kể chuyện quá khứ, thì quá khứ hoàn thành đưa bạn lùi thêm một bước, về những việc “đã… rồi” trước đó.

Bạn sẽ học được gì

  • Cấu trúc: had + quá khứ phân từ (I had finished, she had left), dùng had cho mọi chủ ngữ
  • Khi nào dùng: một việc xảy ra trước một thời điểm khác trong quá khứ
  • Các từ hay đi kèm: already, just, never, by the time, và vị trí của chúng trong câu
  • Câu phủ định với hadn't và câu hỏi với Had + chủ ngữ + quá khứ phân từ

Quá khứ của quá khứ

Thì quá khứ hoàn thành (past perfect) dùng khi bạn đang kể một chuyện trong quá khứ và muốn lùi thêm một bước, về việc đã xảy ra trước đó nữa. “Khi tôi đến ga, tàu đã chạy rồi”: việc tàu chạy xảy ra trước việc tôi đến. Tiếng Việt thể hiện thứ tự này bằng “đã… rồi”, “vừa mới”, hoặc bằng “trước khi”, “sau khi”. Tiếng Anh thể hiện bằng chính động từ: “When I arrived, the train had already left.”

Cấu trúc là had + quá khứ phân từ (V3), và had giống nhau với mọi chủ ngữ: “the train had left”, “she had gone”, “I had been”. Vì động từ tiếng Việt không bao giờ đổi dạng, phần khó nhất là quá khứ phân từ: nhiều động từ là động từ bất quy tắc (left, gone, eaten, seen). Sau had không dùng dạng quá khứ đơn hay dạng nguyên mẫu: had eaten, không phải had ate hay had eat.

Câu phủ định và câu hỏi dùng chính had, không dùng did: “I hadn't seen that film before last night.” “Had you ever visited Rome before that trip?” Tiếng Việt nói “chưa xem”, “chưa bao giờ xem”; tiếng Anh đặt not sau had: hadn't seen. Trong câu hỏi, had đứng trước chủ ngữ.

"When I arrived, the train had already left."
"She had finished dinner by the time I called."

Làm rõ thứ tự sự việc

Nếu bạn kể hai việc bằng thì quá khứ đơn, người nghe hiểu là chúng xảy ra theo đúng thứ tự đó hoặc cùng lúc. Với when, điều này có thể đổi hẳn nghĩa câu: “When I arrived, the train left” nghĩa là tàu chạy đúng lúc (hoặc ngay sau khi) bạn đến. Nếu tàu đã chạy từ trước, bạn cần thì quá khứ hoàn thành.

Đây là cái bẫy lớn nhất. Câu “Khi tôi đến, tàu đã chạy rồi” rất dễ bị dịch thành “When I arrived, the train already left” (coi “đã… rồi” là already) hoặc “the train has already left” (coi “đã… rồi” là thì hiện tại hoàn thành). “Đã… rồi” không tự quyết định thì nào: khi việc xảy ra trước một thời điểm khác trong quá khứ, tiếng Anh cần had: “the train had already left”.

Nếu after hoặc before đã làm rõ thứ tự, thì quá khứ hoàn thành thường không bắt buộc: “After I ate, I left” đúng như “After I had eaten, I left”. Ngược lại, khi không có thời điểm quá khứ nào khác làm mốc, không cần had. “Hôm qua tôi đã gọi cho bạn” chỉ đơn giản là “I called you yesterday”.

"When I arrived, the train left. (Nghĩa là: tôi vừa đến thì tàu chạy.)"
"When I arrived, the train had left. (Rõ ràng: tàu đã chạy trước khi tôi đến.)"

Những từ hay đi kèm

Already (đã… rồi), just (vừa mới) và never (chưa bao giờ, chưa từng) rất hay đi với thì quá khứ hoàn thành. Chú ý vị trí: trong tiếng Việt, “vừa mới”, “chưa bao giờ” đứng ngay trước động từ, còn trong tiếng Anh các từ này đứng giữa had và quá khứ phân từ: “had already left”, “had never seen”, “had just left”. “Chưa bao giờ” ở đây không phải never + động từ nguyên mẫu: “I had never seen snow”, không phải “I never see snow”.

By the time giới thiệu thời điểm muộn hơn làm mốc, tương đương với “lúc… thì… đã…” hoặc “đến lúc…”: “Lúc chúng tôi đến nơi thì các cửa hàng đã đóng cửa rồi” → “By the time we got there, the shops had closed.” Đừng nhầm với until (“cho đến khi”), nghĩa là việc kéo dài đến tận thời điểm đó: “Tôi đợi đến 6 giờ” → “I waited until six.” Trong tiếng Việt, “đến” vừa là “tới nơi” vừa là “cho đến”, nên hai ý này rất dễ lẫn.

"I had never seen snow before that winter."
"By the time we got there, the shops had closed."

Tiếng Anh trong đời sống

"She had already eaten by the time I got home."
"I hadn't realized how late it was."
"Had you ever been abroad before that trip?"
"By the time the ambulance arrived, he had recovered."

Lưu ý

✗When I arrived, the train left.
✓When I arrived, the train had left.

Với hai động từ ở thì quá khứ đơn, câu nghe như tàu chạy đúng lúc bạn đến. Nếu tàu đã chạy từ trước, had cho biết việc nào xảy ra trước.

✗When I arrived, the train already left.
✓When I arrived, the train had already left.

Dịch từng chữ “tàu đã chạy rồi”. Việc đã xảy ra trước một thời điểm khác trong quá khứ cần had.

✗She realized she has forgotten her passport.
✓She realized she had forgotten her passport.

Câu chuyện đang ở quá khứ (realized), nên việc quên xảy ra trước đó dùng had forgotten, không dùng has forgotten.

✗I didn't had seen that film before.
✓I hadn't seen that film before.

“Trước đó tôi chưa xem phim ấy” → hadn't seen. Phủ định chỉ cần hadn't, không kết hợp did với had.

✗He had never see snow before.
✓He had never seen snow before.

Sau had là quá khứ phân từ (dạng thứ ba: see, saw, seen), không phải dạng nguyên mẫu.

✗He had never ate sushi before that day.
✓He had never eaten sushi before that day.

Ate là dạng quá khứ đơn; quá khứ phân từ là eaten. Với động từ bất quy tắc, hãy học cả ba dạng: eat, ate, eaten.

So sánh với tiếng Việt

“Khi tôi đến, tàu đã chạy rồi”: “đã… rồi” cho biết việc này xảy ra trước

Trong tiếng Anh, ý “trước một việc khác trong quá khứ” nằm ở had + quá khứ phân từ: “When I arrived, the train had already left.” Nếu dịch “đã… rồi” thành already + quá khứ đơn (“the train already left”) hay thành thì hiện tại hoàn thành (“the train has already left”), thứ tự sự việc không còn rõ hoặc câu bị sai thì.

Động từ tiếng Việt không đổi: “ăn”, “thấy”, “đi” giữ nguyên ở mọi thời điểm

Tiếng Anh có ba dạng động từ, và sau had luôn là dạng thứ ba (quá khứ phân từ): eat – ate – eaten, see – saw – seen, go – went – gone. “He had never eaten sushi”, không phải “had never ate”; “I had never seen snow”, không phải “had never see”. Hãy học thuộc cả ba dạng của động từ bất quy tắc.

“Chưa”, “chưa bao giờ”, “vừa mới” đứng trước động từ: “tôi chưa làm xong”, “cô ấy chưa bao giờ thấy”, “anh ấy vừa mới đi”

Trong tiếng Anh, not, never, already, just đứng sau had và trước quá khứ phân từ: “I hadn't finished”, “she had never seen”, “he had just left”. Không nói “I didn't had finished” hay “I not yet finished”: phủ định chỉ cần hadn't.

“Lúc chúng tôi đến, bữa tiệc đã bắt đầu rồi”: “đến” ở đây là tới nơi, không phải until

“Lúc… thì… đã…” tương ứng với by the time: “By the time we arrived, the party had already started.” Until dùng cho việc kéo dài đến một thời điểm: “Tôi đợi đến 6 giờ” → “I waited until six.” Đừng nói “Until we arrived, the party had started.”

💡 Đang kể chuyện quá khứ mà có việc “đã… rồi” từ trước? Dùng had + quá khứ phân từ.

💡 Already, never và just đứng giữa had và quá khứ phân từ: had already left.

💡 Phủ định: hadn't + quá khứ phân từ, không bao giờ là didn't had.

💡 “Lúc chúng tôi đến thì… đã…” = By the time we arrived, … had …

Tình huống thực tế: lỡ chuyến bay

"What happened at the airport?"

"By the time we got to the gate, the plane had already taken off."

"Oh no! Had you checked in online?"

"We had, but the traffic on the way there was terrible."

Luyện tập

Bài tập 1 · Chọn câu đúng

Choose the correct sentence.

Bài tập 2 · Việc nào xảy ra trước?

Which action happened FIRST in this sentence: 'She had finished dinner when I called.'?

Bài tập 3 · Chọn câu phủ định đúng

Choose the correct sentence.

Bài tập 4 · Chọn câu hỏi đúng

Choose the correct question.

Bài tập 5 · Chọn câu đúng

Choose the correct sentence.

Bài tập 6 · Chọn câu đúng

Choose the correct sentence.

Bài tập 7 · Chọn câu trả lời đúng

Which word often signals the need for past perfect?

Bài tập 8 · Chọn câu đúng

Choose the correct sentence.

Bài tập 9 · Hoàn thành câu với thì quá khứ hoàn thành

Complete: 'They ___ (already/leave) when we got there.' (past perfect)

Bài tập 10 · Hoàn thành câu phủ định ở thì quá khứ hoàn thành

Complete: 'I ___ (not/finish) my homework when my friend arrived.' (negative, past perfect)

Bài tập 11 · Xếp vào đúng nhóm: việc xảy ra trước hay mốc quá khứ sau đó

had left
left
had eaten
ate
had finished
finished

Đã xếp 0 / 6

Bài tập 12 · Lỗi thường gặp: dịch “đã… rồi” trong câu chuyện quá khứ

Vietnamese: “Khi tôi đến, tàu đã chạy rồi.” Which English sentence is correct?

Thử thách nhanh

Năm câu hỏi đa dạng để kiểm tra những gì bạn đã học.

Câu 1 / 5

Điểm: 0/0

Choose the correct sentence.

Bạn đã học

  • Thì quá khứ hoàn thành = had + quá khứ phân từ, had giống nhau với mọi chủ ngữ.
  • Thì này cho biết một việc đã xảy ra trước một thời điểm khác trong quá khứ; “đã… rồi” không tự quyết định thì.
  • Với when, had quyết định thứ tự sự việc; với after/before, had thường không bắt buộc.
  • Already, never và just đứng giữa had và quá khứ phân từ; by the time ≈ “lúc… thì… đã…”, không phải until.
  • Phủ định với hadn't, câu hỏi với Had…?, không bao giờ kèm did. Cẩn thận với quá khứ phân từ bất quy tắc.
Xem tất cả bài học trong mục này