Thì hiện tại hoàn thành tiếp diễn (present perfect continuous)

B1 · Trung cấpCác thì hiện tại

Thì hiện tại hoàn thành tiếp diễn nhấn mạnh độ dài của một hoạt động kéo dài từ quá khứ đến bây giờ – điều tiếng Việt nói bằng “Tôi học được hai tiếng rồi” hay “Tôi đang đợi, nửa tiếng rồi”.

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

  • Cấu trúc: have/has been + động từ-ing (I have been working, she has been working)
  • Dùng cho hành động bắt đầu trong quá khứ và vẫn còn tiếp diễn bây giờ
  • Cũng dùng để giải thích điều bạn thấy bây giờ bằng một hoạt động vừa mới dừng hoặc vẫn đang diễn ra
  • Rất hay đi với how long, for và since; cách dịch đúng “được… rồi”, “bao lâu rồi” và “từ…”

Nhấn mạnh độ dài và hoạt động đang tiếp diễn

Thì hiện tại hoàn thành tiếp diễn (present perfect continuous) cho biết một hoạt động đã kéo dài bao lâu tính đến bây giờ, hoặc trình bày hoạt động đó như lời giải thích cho điều bạn đang thấy hay cảm nhận.

Tiếng Việt có sẵn hai mảnh ghép của thì này, chỉ là dưới dạng từ: “đang” (vẫn tiếp diễn → -ing) và “được… rồi” (một khoảng thời gian tính đến bây giờ → have been). “Tôi đang học, được hai tiếng rồi” → “I've been studying for two hours.” Cái bẫy là động từ tiếng Việt giữ nguyên, nên người học hay viết “I study for two hours” hay “I am studying for two hours”. Với khoảng thời gian kéo dài đến bây giờ, tiếng Anh không dùng thì hiện tại đơn hay hiện tại tiếp diễn: cần have/has been + -ing.

"I've been studying for two hours."
"She's been working all day — that's why she's tired."

Cách tạo thì hiện tại hoàn thành tiếp diễn

Dùng have been hoặc has been, rồi đến động từ chính thêm -ing.

Cả ba phần đều bắt buộc: have/has + been + -ing. Tiếng Việt không có trợ động từ nào tương ứng, nên been rất hay bị bỏ sót: “I have working” là sai. Dạng rút gọn: I've been, she's been (= she has been), it's been. Phủ định: haven't been / hasn't been. Câu hỏi: đưa have/has lên trước chủ ngữ: “How long have you been waiting?”

Về chính tả: trong tiếng Anh Mỹ, động từ là practice (practicing), còn tiếng Anh Anh là practise (practising). Các bài tập trong bài này dùng dạng Mỹ.

"I have been waiting for an hour."
"He has been learning Spanish for a year."
"They haven't been sleeping well."

How long, for và since

Thì này đi rất tự nhiên với how long (trong câu hỏi), for + khoảng thời gian và since + mốc bắt đầu, để nói về một giai đoạn kéo dài đến bây giờ.

Tiếng Việt cũng phân biệt hai ý này: “được ba năm rồi”, “trong ba năm” → for three years; “từ sáng nay”, “từ năm 2018” → since this morning, since 2018. Vì vậy “since three years” luôn sai. Chú ý chữ “từ”: với việc kéo dài đến bây giờ, “từ” là since, không phải from (“from this morning” là sai ở đây).

Câu hỏi “Bạn đợi bao lâu rồi?” → “How long have you been waiting?”, không phải “How long do you wait?” (câu này hỏi về một thói quen) hay “How long you are waiting?”.

"How long have you been living here?"
"I've been working here for three years."
"It's been raining since morning."

Thì hiện tại hoàn thành tiếp diễn hay thì hiện tại hoàn thành?

Dạng tiếp diễn nhấn mạnh bản thân hoạt động và thời gian kéo dài; dạng đơn (have/has + quá khứ phân từ) nhấn mạnh kết quả hoặc việc đã xong. So sánh: “I've been reading this book” (bạn vẫn đang đọc, điều quan trọng là hoạt động) và “I've read this book” (đã đọc xong, điều quan trọng là kết quả). Gần giống “Dạo này tôi đang đọc cuốn này” và “Tôi đọc xong cuốn này rồi”.

Động từ chỉ trạng thái (know, believe, have với nghĩa “sở hữu”) giữ dạng đơn. “Tôi quen anh ấy nhiều năm rồi” → “I've known him for years”, không phải “I've been knowing him”. “Tôi có chiếc xe này từ năm 2015” → “I've had this car since 2015”, không phải “I've been having”.

Với các động từ như live, work hay study, khi có for/since, thường dùng được cả hai dạng: “I've lived here for five years” và “I've been living here for five years” gần như cùng nghĩa; dạng tiếp diễn chỉ nhấn mạnh hơn vào độ dài.

Và để giải thích điều bạn thấy bây giờ: nếu mặt đất ướt vì trời mưa suốt một lúc lâu cho đến vừa rồi, hãy nói “It's been raining.” Nếu nói về một thời điểm đã kết thúc (“hôm qua trời mưa”), là “It rained yesterday.” Tay bẩn cũng vậy: “Nãy giờ bạn làm gì thế?” → “What have you been doing?”

"I've been cleaning the kitchen. (nhấn mạnh hoạt động, có thể chưa xong)"
"I've cleaned the kitchen. (đã xong)"

Tiếng Anh trong đời sống

"Sorry for the mess — we've been renovating the living room."
"How long have you been waiting?"
"She's been feeling a bit under the weather lately."
"We've been talking about moving for months, but haven't decided yet."

Lưu ý

✗I am living here for ten years.
✓I have been living here for ten years.

“Tôi đang sống ở đây mười năm rồi”: với khoảng thời gian bắt đầu trong quá khứ và vẫn còn bây giờ, tiếng Anh dùng thì hiện tại hoàn thành tiếp diễn, không dùng thì hiện tại tiếp diễn.

✗She has been knowing him for years.
✓She has known him for years.

Động từ chỉ trạng thái như know không dùng dạng tiếp diễn: hãy dùng thì hiện tại hoàn thành. “Cô ấy quen anh ấy nhiều năm rồi” → She has known him for years.

✗I have working here for a year.
✓I have been working here for a year.

Thì hiện tại hoàn thành tiếp diễn cần been giữa have/has và động từ -ing. Tiếng Việt không có từ tương ứng, nên rất dễ quên.

✗I learn English since two years.
✓I've been learning English for two years.

Dịch từng chữ “Tôi học tiếng Anh hai năm rồi”: thì hiện tại không dùng được ở đây, và khoảng thời gian (“hai năm”) đi với for, không phải since.

✗It has been raining from this morning.
✓It has been raining since this morning.

“Trời mưa từ sáng”: với việc kéo dài đến bây giờ, “từ” là since. From chỉ dùng với to: from 8 to 10.

✗How long do you wait?
✓How long have you been waiting?

“Bạn đợi bao lâu rồi?” hỏi về khoảng thời gian tính đến bây giờ, nên bạn cần have/has been + -ing.

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

“Tôi học tiếng Anh được hai năm rồi”, “Tôi đang sống ở đây mười năm rồi”: tiếng Việt nói khoảng thời gian đến bây giờ mà động từ không đổi

Trong tiếng Anh, thì hiện tại không thể diễn tả việc bắt đầu trong quá khứ và vẫn còn đến bây giờ. Bạn cần thì hiện tại hoàn thành tiếp diễn: “I've been learning English for two years”, “I've been living here for ten years”. Câu dịch từng chữ “I am living here for ten years” sai về thì; còn “I learn English since two years” sai hai chỗ: thì của động từ và since thay cho for.

“Tôi đang đợi, được một tiếng rồi”: “đang” và “được… rồi” cùng xuất hiện

Hai chữ này là gợi ý tốt nhất của bạn: “đang” (vẫn tiếp diễn) ứng với -ing, còn “được… rồi” (kéo dài đến bây giờ) ứng với have been. Ghép lại: “I've been waiting for an hour.” Khi câu tiếng Việt có cả hai ý này, hãy nghĩ ngay đến have/has been + -ing.

“Bạn đợi bao lâu rồi?”, “Tôi đợi ba tiếng rồi”, “Tôi đợi từ tám giờ”

Câu hỏi là “How long have you been waiting?”, không phải “How long do you wait?”. Khoảng thời gian đi với for, mốc bắt đầu đi với since: “I've been waiting for three hours”, “I've been waiting since eight o'clock”. Mẹo: nếu trả lời câu hỏi “bao lâu?”, dùng for; nếu trả lời “từ khi nào?”, dùng since.

💡 Khi câu tiếng Việt có “đang” và “được… rồi” (hoặc “bao lâu rồi”), tiếng Anh dùng have/has been + -ing.

💡 Khoảng thời gian → for; mốc bắt đầu (“từ…”) → since. Không bao giờ nói “since two years” hay “from this morning”.

💡 Động từ chỉ trạng thái (know, believe, have = sở hữu) giữ dạng đơn: I've known him for years.

Tình huống thực tế: giải thích vì sao bạn mệt rã rời

"You look exhausted. What have you been doing?"

"I've been packing all morning — we're moving next week."

"How long have you been living in that apartment?"

"About four years now. Time flies."

Luyện tập

Bài tập 1 · Chọn dạng đúng

I ___ for two hours — I need a break.

Bài tập 2 · Chọn các dạng đúng

How long ___ you ___ English?

Bài tập 3 · Chọn dạng đúng

She's tired because she ___ all day.

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

Which sentence emphasizes the ongoing activity itself?

Bài tập 5 · Chọn dạng đúng

They ___ here since 2018.

Bài tập 6 · Chọn dạng đúng

Why are your hands so dirty? What ___?

Bài tập 7 · Sửa lỗi sai

Fix the mistake:

Bài tập 8 · Hoàn thành câu

Complete: We ___ (wait) for over an hour.

Bài tập 9 · Hoàn thành câu

Complete: He ___ (not/sleep) well lately.

Bài tập 10 · Sắp xếp các từ thành câu

??????

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

Which is correct?

Bài tập 12 · Lỗi thường gặp: dịch từng chữ “bao lâu rồi”

Vietnamese: “Bạn đợi bao lâu rồi?” Which English question 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

I ___ this project for three months.

Bạn đã học

  • Thì hiện tại hoàn thành tiếp diễn: have/has been + động từ-ing; cả ba phần đều bắt buộc.
  • Dùng cho hoạt động bắt đầu trong quá khứ và vẫn còn bây giờ, hoặc giải thích một kết quả thấy được bây giờ.
  • Câu tiếng Việt có “được… rồi”, “bao lâu rồi” thường dịch bằng thì này (riêng know và have = sở hữu thì dùng thì hiện tại hoàn thành): for + khoảng thời gian, since + mốc bắt đầu.
  • Thì này đi rất tự nhiên với how long, for và since.
  • Động từ chỉ trạng thái (know, believe) giữ dạng đơn: I've known him for years.
Xem tất cả bài học trong mục này