Động từ khuyết thiếu với have (modal perfects)

B2 · Trung cao cấpĐộng từ khuyết thiếu

Should have, could have và would have tương ứng với “lẽ ra nên…”, “lẽ ra đã có thể…” và “thì đã…”: nói về những điều đã không xảy ra – một cơ hội bị bỏ lỡ, một quyết định sai hay một khả năng chỉ có trong tưởng tượng.

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

  • Should have + quá khứ phân từ (V3) để nói về tiếc nuối hoặc lời trách (“lẽ ra nên…”, “đáng lẽ phải…”)
  • Could have + V3 cho một khả năng đã có nhưng không được tận dụng (“lẽ ra đã có thể…”)
  • Would have + V3 cho một kết quả giả định, thường đi với if (“nếu… thì đã…”)
  • Shouldn't have để trách một việc đã thật sự xảy ra (“lẽ ra không nên…”)

Nhìn lại những điều đã không xảy ra

Should have, could have và would have luôn gồm ba phần: động từ khuyết thiếu + have + quá khứ phân từ (V3). Mỗi động từ khuyết thiếu mang một nghĩa riêng: tiếc nuối hoặc trách, khả năng bị bỏ lỡ, hoặc kết quả giả định. “You should have called me — I was worried.” “I could have helped you, but I didn't know you needed it.”

Tiếng Việt có sẵn những từ diễn đạt đúng các ý này: “Lẽ ra bạn nên gọi cho mình”, “Lẽ ra mình đã có thể giúp bạn”. Vấn đề là động từ tiếng Việt không đổi: thời gian quá khứ chỉ nằm ở “lẽ ra” và “đã”. Trong tiếng Anh, should, could và would không có dạng quá khứ riêng cho ý này, nên quá khứ phải nằm ở have + V3. Cầu nối dễ nhớ: “lẽ ra nên” = should have, “lẽ ra đã có thể” = could have, “thì đã” = would have.

Bẫy lớn nhất vì vậy là để động từ trơn hoặc chia ở thì quá khứ đơn sau động từ khuyết thiếu: “You should call me” (lời khuyên cho bây giờ), “He should apologized”, “You shouldn't said that” (sai). Hãy luôn kiểm tra đủ ba phần: modal + have + V3.

"You should have called me — I was worried."
"I could have helped you, but I didn't know you needed it."

Should have: tiếc nuối và lời trách

Should have diễn tả sự tiếc nuối vì đã không làm việc gì đó, hoặc trách một quyết định: “He should have apologized sooner.” = “Lẽ ra anh ấy nên xin lỗi sớm hơn.”

Shouldn't have thì ngược lại: trách một việc đã thật sự xảy ra. “You shouldn't have spent all that money.” = “Lẽ ra bạn không nên tiêu hết chỗ tiền đó.” (Và bạn đã tiêu rồi.)

Thiếu have là sai nghĩa: “You should call me” là lời khuyên cho hiện tại hoặc tương lai (“Bạn nên gọi cho mình”), không phải lời trách về quá khứ. Còn “He should apologized” thì sai ngữ pháp.

Cẩn thận với “lẽ ra phải…”: chữ “phải” dễ khiến bạn dùng had to. Nhưng “Lẽ ra bạn phải báo cho mình” vẫn là should have, thường thêm really để nhấn mạnh: “You really should have told me.” Câu “You had to tell me” nói về một nghĩa vụ có thật trong quá khứ (“Hồi đó bạn buộc phải nói với mình”), không phải lời trách.

Cũng đừng nhầm với “chắc là… rồi”: đó là suy đoán, dùng must have. “Chắc bạn quên rồi” → “You must have forgotten”. Câu “You must have called me” không phải lời trách, mà là “chắc là bạn đã gọi cho mình”.

"He should have apologized sooner."
"You shouldn't have spent all that money."

Could have: cơ hội bị bỏ lỡ

Could have nói về một khả năng hay cơ hội đã có trong quá khứ nhưng không được tận dụng, thường kèm lý do: “We could have won if we'd played better.” = “Lẽ ra chúng tôi đã có thể thắng nếu chơi tốt hơn.”

“Có thể” trong tiếng Việt ứng với nhiều từ tiếng Anh (can, could, may), nên dễ dịch thành “We could win”. Hãy phân biệt: nếu đã làm được thật, dùng managed to hoặc was/were able to (“We managed to win”). Nếu có cơ hội mà không làm được, luôn dùng could have. Could không có have là khả năng chung trong quá khứ (“I could swim at five”) hoặc một lời đề nghị ở hiện tại (“I could help you” = “Mình có thể giúp bạn”).

Dạng phủ định couldn't have nghĩa là “không thể nào… được”: “We couldn't have won without you.” = “Không có bạn thì chúng tôi đã không thể thắng.” Đây cũng là một quá khứ giả định, giống would have.

Could have cũng có thể là lời trách nhẹ: “They could have told us sooner.” = “Lẽ ra họ có thể báo cho chúng ta sớm hơn chứ.”

Và could have còn dùng để phỏng đoán về quá khứ: “She could have missed the bus.” = “Có thể cô ấy đã lỡ xe buýt.” Ngữ cảnh cho biết đó là cơ hội bị bỏ lỡ hay một phỏng đoán.

"We could have won if we'd played better."
"They could have told us sooner."

Would have: một quá khứ giả định

Would have miêu tả điều lẽ ra đã xảy ra trong một quá khứ khác, chỉ có trong tưởng tượng. Mẫu điển hình là câu điều kiện với if + had: “If I had known, I would have come earlier.” = “Nếu mình biết thì mình đã đến sớm hơn.”

Bẫy lớn với người Việt: câu điều kiện tiếng Việt không đổi hình thức, chỉ có “nếu… thì đã…”. Tiếng Anh thì mỗi vế có dạng riêng: vế có if dùng had + V3 (thì quá khứ hoàn thành: “If I had known”), vế còn lại dùng would have + V3. Không nói “If I knew, I came earlier”. “If I would have known” đôi khi nghe thấy trong tiếng Anh Mỹ khi nói, nhưng bị coi là không chuẩn.

Bỏ have đi thì câu chuyển sang hiện tại: “I would come earlier” nghĩa là “Mình sẽ đến sớm hơn”, không khớp với vế if ở quá khứ.

"If I had known, I would have come earlier."
"I wouldn't have said that if I'd known it would upset you."

Tiếng Anh trong đời sống

"You shouldn't have worked so late."
"I could have helped you, but I didn't know."
"I wouldn't have believed it if I hadn't seen it myself."
"She could have won the race, but she twisted her ankle."

Lưu ý

✗He should apologized sooner.
✓He should have apologized sooner.

Không được thiếu have: modal + have + V3. Tiếng Việt chỉ cần “lẽ ra”, nhưng trong tiếng Anh quá khứ nằm ở have + V3.

✗You shouldn't said that.
✓You shouldn't have said that.

“Lẽ ra bạn không nên nói thế” = You shouldn't have said that. Shouldn't cũng cần have trước V3.

✗You had to tell me earlier.
✓You should have told me earlier.

Dịch từ “Lẽ ra bạn phải nói với mình sớm hơn”. Lời trách về quá khứ là should have, không phải had to.

✗I could help you, but I didn't know you needed it.
✓I could have helped you, but I didn't know you needed it.

Với một cơ hội đã bỏ lỡ (“lẽ ra mình đã có thể giúp bạn”), cần could have + V3. I could help you là lời đề nghị ở hiện tại.

✗If I knew, I came earlier.
✓If I had known, I would have come earlier.

Câu “Nếu tôi biết thì tôi đã đến sớm hơn” nói về quá khứ, nên vế if dùng had + V3 và vế còn lại dùng would have + V3.

✗If I had known, I would come earlier.
✓If I had known, I would have come earlier.

Với một quá khứ giả định (“thì đã đến”), cần would have + V3. I would come là hiện tại: “mình sẽ đến”.

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

“Lẽ ra bạn nên gọi cho mình”, “Lẽ ra bạn không nên nói thế”: quá khứ chỉ nằm ở “lẽ ra”, động từ giữ nguyên

Trong tiếng Anh, quá khứ phải nằm ở have + V3: “You should have called me”, “You shouldn't have said that”. Để động từ trơn (“You should call me”) là lời khuyên cho hiện tại; chia ở thì quá khứ đơn (“You should called me”, “You shouldn't said that”) là sai.

“Lẽ ra bạn phải nói với mình sớm hơn”: có chữ “phải”

“Phải” ở đây không phải had to. Lời trách về quá khứ luôn là should have: “You should have told me earlier.” (muốn mạnh hơn: “You really should have told me.”). “You had to tell me” nghĩa là hồi đó bạn bắt buộc phải nói, không phải lời trách.

“Nếu tôi biết thì tôi đã đến sớm hơn”: câu điều kiện tiếng Việt không đổi hình thức

Tiếng Anh dùng hai dạng khác nhau cho hai vế. Vế có if dùng thì quá khứ hoàn thành: “If I had known”. Vế còn lại dùng would have + V3: “I would have come earlier”. Các lỗi kinh điển là “If I knew, I came earlier” và “If I would have known…”.

“Lẽ ra bạn nên gọi cho mình” (trách) và “Chắc là bạn đã gọi lúc mình ra ngoài” (suy đoán)

Tiếng Anh dùng hai động từ khuyết thiếu khác nhau: should have để trách hoặc tiếc (“You should have called me”); must have để suy đoán điều gần như chắc chắn đã xảy ra (“You must have called me while I was out”). Đừng trộn lẫn: dùng must have là không hề trách ai cả.

💡 “Lẽ ra nên…” = should have + V3, không bao giờ should + động từ quá khứ.

💡 “Lẽ ra đã có thể…” = could have + V3; “lẽ ra phải…” khi trách vẫn là should have, không phải had to.

💡 “Nếu tôi biết” (về quá khứ) = If I had known; “thì tôi đã đến” = I would have come.

💡 Trách = should have; suy đoán (“chắc là… rồi”) = must have.

Tình huống thực tế: sau bữa tiệc bạn đã không đến

"You should have come to the party, it was great!"

"I know, I wish I had. I could have come, but I was too tired."

"That's a shame. You would have loved the food."

"Next time I definitely will."

Luyện tập

Bài tập 1 · Chọn câu đúng: tiếc nuối hoặc trách

Choose the correct sentence — regret or criticism about the past.

Bài tập 2 · Chọn câu đúng: khả năng không thành

Choose the correct sentence — unrealized past ability.

Bài tập 3 · Chọn câu đúng: quá khứ giả định

Choose the correct sentence — a hypothetical past.

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

Choose the correct negative.

Bài tập 5 · Chọn câu đúng: trách việc đã xảy ra

Choose the correct sentence — criticism of a past action that did happen.

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

Which modal perfect expresses regret about something NOT done?

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

Choose the correct sentence.

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: tiếc nuối

Complete (regret): 'I ___ (should/study) harder for that exam.'

Bài tập 10 · Hoàn thành câu: khả năng không thành

Complete (unrealized ability): 'She ___ (could/win) the race, but she twisted her ankle.'

Bài tập 11 · Xếp vào đúng nhóm

should have called
shouldn't have called
could have won
couldn't have won
would have helped
wouldn't have helped

Đã xếp 0 / 6

Bài tập 12 · Lỗi thường gặp: dịch từng chữ “nếu… thì đã…”

Vietnamese: “Nếu tôi biết thì tôi đã đến sớm hơn.” Which English translation 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

  • Should have (“lẽ ra nên”) diễn tả tiếc nuối hoặc lời trách; shouldn't have trách việc đã thật sự xảy ra.
  • Could have (“lẽ ra đã có thể”) nói về một khả năng không được tận dụng.
  • Would have (“thì đã”) nói về một kết quả giả định, thường đi với if + had.
  • Cả ba đều cần have + V3: quá khứ không nằm ở động từ khuyết thiếu (không nói should said, cũng không dùng could win cho một cơ hội đã lỡ).
  • Vế có if dùng had + V3, không dùng would have hay thì quá khứ đơn: If I had known…
Xem tất cả bài học trong mục này