Thì hiện tại hoàn thành (present perfect)

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

Thì hiện tại hoàn thành nối quá khứ với bây giờ: điều quan trọng là kết quả hay mối liên hệ với hiện tại, không phải thời điểm chính xác. Tiếng Việt diễn đạt ý này bằng “rồi”, “chưa”, “từng”, “vừa”.

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

  • Cấu trúc: have/has + quá khứ phân từ, V3 (I have finished, she has finished)
  • Dùng khi không nói hoặc không cần biết thời điểm chính xác: điều quan trọng là kết quả bây giờ
  • Rất hay đi với ever, never, already, yet, just, so far và for/since
  • Khác với thì quá khứ đơn, vốn cần (hoặc ngầm hiểu) một thời điểm cụ thể đã kết thúc

Việc trong quá khứ nhưng quan trọng với bây giờ

Thì hiện tại hoàn thành (present perfect) nối một việc xảy ra trong quá khứ với hiện tại: việc đó vừa mới xảy ra, kết quả của việc đó vẫn quan trọng bây giờ, hoặc việc đó xảy ra vào một lúc nào đó tính đến hôm nay, mà lúc nào thì không quan trọng.

Tiếng Việt không có dạng động từ riêng cho ý này; ta dùng các từ như “rồi”, “chưa”, “từng”, “vừa”: “Tôi mất chìa khóa rồi!” Tiếng Anh thì phải đổi động từ: “I've lost my keys.” Câu này có nghĩa là bây giờ bạn không có chìa khóa. Lưu ý: “đã” và “rồi” không tự động có nghĩa là thì hiện tại hoàn thành, cũng không phải là already. Hãy chọn thì theo ý nghĩa, không theo từ.

"I've lost my keys."
"She has finished her homework."
"They've never been to Italy."

Cách tạo thì hiện tại hoàn thành

Dùng have (I/you/we/they) hoặc has (he/she/it), rồi đến quá khứ phân từ của động từ chính (V3, cột thứ ba trong bảng động từ bất quy tắc). Nhiều quá khứ phân từ có quy tắc (-ed), nhưng nhiều động từ thông dụng lại bất quy tắc: go → gone, see → seen, do → done.

Lỗi rất hay gặp là dùng nhầm cột thứ hai (V2): “She has went”, “I have saw”. Sau have/has luôn là V3: has gone, have seen. Thì này không bao giờ tạo với be: “She has arrived”, không phải “She is arrived”. Và nhớ has với he/she/it: “He has finished”, không phải “He have finished”.

Dạng rút gọn: I've, you've, we've, they've, he's/she's/it's (= has). Phủ định: haven't/hasn't. Câu hỏi: đưa have/has lên trước chủ ngữ: “Have you finished?” (không phải “You finished?” hay “You have finished or not?”).

"I have finished the report."
"She has already left."
"We have never tried this before."

Từ tín hiệu

Ever và never hỏi và trả lời về trải nghiệm trong cả cuộc đời tính đến bây giờ. Already (chủ yếu trong câu khẳng định) và yet (trong câu hỏi và câu phủ định) cho biết việc đã xảy ra hay chưa. Just nghĩa là “vừa mới”. So far và up to now cho biết giai đoạn đó vẫn chưa kết thúc.

Các từ tiếng Việt tương ứng: “rồi” trong câu khẳng định đôi khi là already, nhưng thường không cần dịch (“Cô ấy đi rồi” → “She has left.” hoặc “She has already left.”). “… chưa?” ở cuối câu hỏi thường là yet ở cuối: “Bạn viết xong báo cáo chưa?” → “Have you finished the report yet?”. “Chưa” trong câu phủ định là not … yet: “I haven't finished yet.” (không phải “I not finish yet”). “Đã bao giờ… chưa?”, “từng” là ever: “Have you ever eaten sushi?”. Còn “chưa bao giờ” là never + V3: “I've never eaten sushi”, không phải “I never eat sushi” (câu này nghĩa là bạn không có thói quen ăn sushi).

“Vừa”, “mới”, “vừa mới” + động từ → have just + V3: “Anh ấy vừa đến” → “He's just arrived.” Và với chuyến đi, trải nghiệm, “Bạn đã từng đến Nhật chưa?” dùng been, không dùng gone: “Have you ever been to Japan?” (gone nghĩa là người đó đã đi và chưa về: “She has gone home.”)

"Have you ever eaten sushi?"
"I haven't finished yet."
"He's just arrived."
"We've done a lot so far."

Thì hiện tại hoàn thành hay thì quá khứ đơn?

Thì hiện tại hoàn thành dùng khi không nói hoặc không cần biết thời điểm. Ngay khi bạn nêu một thời điểm cụ thể đã kết thúc (yesterday, in 2019, last week, two days ago), phải chuyển sang thì quá khứ đơn. Câu hỏi với when cũng dùng thì quá khứ đơn.

Nhiều người Việt được dạy mẹo “đã… rồi = have + V3”, và mẹo này gây lỗi theo hai hướng. Hướng thứ nhất: thêm have vào câu có thời điểm cụ thể: “Tôi xem phim đó tuần trước rồi” → “I have seen that movie last week” (sai) – phải là “I saw that movie last week”; “Bạn đến lúc nào?” → “When did you arrive?”, không phải “When have you arrived?”. Hướng thứ hai: câu tiếng Việt không có “đã… rồi” nên bạn quên thì hiện tại hoàn thành: “Năm nay bạn đọc được mấy quyển sách?” → “How many books have you read this year?” (năm nay chưa hết).

Việc bắt đầu trong quá khứ và vẫn còn đến bây giờ cũng dùng thì hiện tại hoàn thành, dù tiếng Việt chỉ nói “Tôi sống ở đây năm năm rồi” hay “từ năm 2019”: “I've lived here for five years.” For đi với khoảng thời gian (for five years, “được năm năm”), since đi với mốc bắt đầu (since 2019, “từ năm 2019”).

Nên biết: trong tiếng Anh Mỹ, người ta hay dùng thì quá khứ đơn với just, already và yet (“I just saw her.”, “Did you eat yet?”, “I lost my keys!”). Tiếng Anh Anh thường giữ thì hiện tại hoàn thành. Trong các bài tập của bài này, đáp án mong đợi là thì hiện tại hoàn thành.

"I have visited Paris. (không kèm thời điểm – trải nghiệm chung)"
"I visited Paris in 2019. (thời điểm cụ thể – thì quá khứ đơn)"

Tiếng Anh trong đời sống

"I've never seen anything like this."
"Have you finished the report yet?"
"She's just texted me — she's running late."
"We haven't decided where to go on vacation."

Lưu ý

✗I have seen that movie last week.
✓I saw that movie last week.

Thời điểm cụ thể đã kết thúc (last week) đòi hỏi thì quá khứ đơn, dù câu tiếng Việt có “đã… rồi”.

✗She has went home.
✓She has gone home.

Thì hiện tại hoàn thành cần quá khứ phân từ (gone, cột V3), không phải dạng quá khứ đơn (went, cột V2).

✗I live here for five years.
✓I've lived here for five years.

“Tôi sống ở đây năm năm rồi”: với việc 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 với for hoặc since, không dùng thì hiện tại đơn.

✗I never eat sushi before.
✓I've never eaten sushi before.

“Tôi chưa bao giờ ăn sushi”: nói về trải nghiệm tính đến bây giờ thì dùng have never + V3.

✗When have you arrived?
✓When did you arrive?

Câu hỏi với when hỏi về một thời điểm cụ thể, nên dùng thì quá khứ đơn.

✗Have you ever gone to Japan?
✓Have you ever been to Japan?

“Bạn đã từng đến Nhật chưa?” nói về trải nghiệm nên dùng been (đi rồi về). Gone nghĩa là người đó đã đi và vẫn đang ở đó.

✗They not arrive yet.
✓They haven't arrived yet.

“Họ chưa đến”: “chưa” không chỉ là not. Tiếng Anh cần haven't/hasn't + V3, và yet ở cuối câu.

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

Mẹo quen thuộc “đã… rồi = thì hiện tại hoàn thành”: “Tôi xem phim đó tuần trước rồi”, “Cô ấy đi mười phút trước rồi”

Trong tiếng Anh, điều quyết định không phải là chữ “đã” hay “rồi”, mà là thời điểm đã kết thúc chưa. Có thời điểm cụ thể đã qua (yesterday, last week, in 2019, ago, this morning khi đã sang chiều) hoặc câu hỏi when thì dùng thì quá khứ đơn: “I saw that movie last week”, “She left ten minutes ago”, “When did you arrive?”. “I have seen that movie last week” là sai.

Tiếng Việt diễn đạt trải nghiệm và kết quả bằng từ, động từ giữ nguyên: “Tôi chưa bao giờ ăn sushi”, “Họ chưa đến”, “Tôi vừa nghe tin”

Tiếng Anh cần đổi động từ: “I've never eaten sushi”, “They haven't arrived yet”, “I've just heard the news”. Nếu giữ nguyên động từ (“I never eat sushi”, “They not arrive yet”, “I just hear the news”), câu sẽ sai hoặc mang nghĩa khác: “I never eat sushi” là nói về thói quen, không phải trải nghiệm.

“Tôi sống ở đây năm năm rồi”, “Tôi sống ở đây từ năm 2019”: tiếng Việt chỉ cần “rồi” hoặc “từ”

Trong tiếng Anh, việc bắt đầu trong quá khứ và vẫn còn bây giờ cần thì hiện tại hoàn thành: “I've lived here for five years”, không phải “I live here for five years” hay “since five years”. Khoảng thời gian (“được năm năm”) là for; mốc bắt đầu (“từ năm 2019”) là since: for five years, since 2019.

💡 Có thời điểm đã kết thúc (yesterday, last week, in 2019, ago) hoặc hỏi bằng when? Dùng thì quá khứ đơn, dù tiếng Việt có “đã… rồi”.

💡 Không có thời điểm cụ thể (trải nghiệm, kết quả, “rồi”, “chưa”, “từng”, “chưa bao giờ”): dùng thì hiện tại hoàn thành, dù động từ tiếng Việt không đổi.

💡 “Được năm năm rồi” → for five years; “từ năm 2019” → since 2019, luôn với thì hiện tại hoàn thành.

💡 “Tôi vừa đến” → I've just arrived.

Tình huống thực tế: kể chuyện mới cho một người bạn

"Have you seen the new café downtown?"

"Not yet — I've heard it's really good, though."

"We should go. Have you eaten lunch already?"

"No, I haven't. Let's go now, actually."

Luyện tập

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

I ___ my keys — can you help me find them? (British English)

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

___ you ever ___ to Japan?

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

She ___ this movie three times already.

Bài tập 4 · Chọn từ đúng

We haven't finished the report ___.

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

He ___ just ___ the news.

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

I've ___ eaten sushi.

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

How many books ___ this year?

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

Complete: She ___ (finish) her homework already.

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

Complete: They ___ (not/arrive) yet.

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: “chưa bao giờ” mà giữ nguyên động từ

Vietnamese: “Tôi chưa bao giờ ăn sushi.” (talking about your experience up to now) 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

We ___ already ___ dinner.

Bạn đã học

  • Thì hiện tại hoàn thành: have/has + quá khứ phân từ (V3), luôn với have, không bao giờ với be.
  • Dùng khi không nói thời điểm: điều quan trọng là kết quả hoặc mối liên hệ với bây giờ.
  • Thời điểm đã kết thúc (yesterday, in 2019) hoặc câu hỏi when cần thì quá khứ đơn, dù tiếng Việt có “đã… rồi”.
  • Trải nghiệm, kết quả và “rồi / chưa / từng / chưa bao giờ” dùng thì hiện tại hoàn thành; đừng giữ nguyên động từ như trong tiếng Việt.
  • “Tôi sống ở đây năm năm rồi” → I've lived here for five years (for đi với khoảng thời gian, since đi với mốc bắt đầu).
Xem tất cả bài học trong mục này