Tóm tắt nhanh: Thì hiện tại hoàn thành (Present Perfect) dùng cho việc đã xảy ra trong quá khứ nhưng còn liên quan đến hiện tại: kết quả còn thấy được, kinh nghiệm "đã từng", hoặc trạng thái bắt đầu trong quá khứ và kéo dài đến nay. Công thức: S + have/has + V3/ed; phủ định thêm not sau have/has, câu hỏi đảo have/has lên đầu. Dấu hiệu nhận biết: already, just, yet, ever, never, for, since, so far, recently. Thì này không đi với mốc thời gian quá khứ cụ thể như yesterday hay last year.

Thì hiện tại hoàn thành là gì?

Thì hiện tại hoàn thành (Present Perfect) là thì diễn tả một hành động đã xảy ra trong quá khứ nhưng người nói quan tâm đến kết quả hoặc ý nghĩa của nó ở hiện tại, không quan tâm chính xác xảy ra lúc nào. Thì này được tạo bởi trợ động từ have/has và quá khứ phân từ (V3/ed) của động từ chính.

Ví dụ: I have lost my key. (Tôi làm mất chìa khoá rồi, giờ vẫn chưa tìm thấy.) — She has visited Ha Long Bay twice. (Cô ấy đã đến vịnh Hạ Long hai lần.)

Tiếng Việt không có thì tương ứng, nên đây là thì khiến học sinh Việt Nam bối rối nhiều nhất. Mẹo hình dung: hiện tại hoàn thành là một cây cầu nối quá khứ với hiện tại. Nếu câu chuyện đã "đóng lại" hoàn toàn trong quá khứ, con dùng quá khứ đơn; nếu nó vẫn còn "chạm" đến bây giờ, con dùng hiện tại hoàn thành.

Công thức thì hiện tại hoàn thành

Công thức gồm hai phần: have (đi với I, you, we, they và danh từ số nhiều) hoặc has (đi với he, she, it và danh từ số ít), cộng với V3/ed. Have/has ở đây là trợ động từ, nên khi phủ định và hỏi con không cần mượn do/does.

Thì hiện tại hoàn thànhPresent Perfect
Công thức
Khẳng định
Shave/hasV3/edO
She has finished her homework.Cô ấy đã làm xong bài tập.
I have just eaten.Tôi vừa mới ăn.
Phủ định
Shave/hasnotV3/edO
I haven't seen that film yet.Tôi chưa xem bộ phim đó.
He hasn't called me.Cậu ấy chưa gọi cho tôi.
Nghi vấn
Have/HasSV3/edO?
Have you ever been to Hue? – Yes, I have.Bạn đã từng đến Huế chưa? – Rồi.
Has she finished? – No, she hasn't.Cô ấy xong chưa? – Chưa.
Câu hỏi Wh-
Wh-have/hasSV3/ed?
How long have you studied English?Bạn học tiếng Anh bao lâu rồi?
Where have you been?Nãy giờ bạn ở đâu vậy?
Khi nào dùng?
Đã xảy ra, kết quả còn ở hiện tại
I have lost my key.Tôi làm mất chìa khoá rồi.
Kinh nghiệm (đã từng)
I have visited Hue twice.Tôi đã đến Huế hai lần.
Bắt đầu trong quá khứ, kéo dài đến nay
We have lived here for five years.Chúng tôi sống ở đây được 5 năm.
Việc vừa mới xảy ra, tin tức mới
The rain has just stopped.Trời vừa tạnh mưa.
Dấu hiệu nhận biết
already, just, yet, ever, neverfor + khoảng thời gian (for 2 years)since + mốc thời gian (since 2020)so far, recently, lately, up to nowThis is the first time…
Lưu ý: V3 = quá khứ phân từ. Có quy tắc: thêm -ed (play → played).
Bất quy tắc: go → gone, eat → eaten, see → seen, do → done.
Viết tắt: I've, you've, he's, she's; haven't, hasn't. Trả lời ngắn: Yes, I have / No, she hasn't.

Hiện tại hoàn thành với to be và câu bị động

Với động từ to be, V3 là been: I have been busy all week. (Cả tuần nay tôi bận.) Khi muốn nói một việc đã được làm, con dùng dạng bị động have/has + been + V3. Dạng bị động này rất hay xuất hiện trong bài tập viết lại câu ở lớp 8–9 và đề thi vào lớp 10.

Hiện tại hoàn thành — to be và bị độngPresent Perfect: "be" & passive
Công thức
Với động từ to be
Shave/hasbeenN/Adj
My grandma has been ill since Monday.Bà tôi bị ốm từ thứ Hai.
We have been friends for six years.Chúng tôi là bạn được 6 năm rồi.
Câu bị động
Shave/hasbeenV3/ed
The bridge has been repaired.Cây cầu đã được sửa xong.
The letters haven't been sent yet.Những lá thư chưa được gửi đi.
Lưu ý: Cẩn thận dạng viết tắt: "She's finished" = She has finished (vì theo sau là V3); "She's tired" = She is tired.

Ôn thêm cách chuyển câu chủ động sang bị động ở mọi thì với sơ đồ tư duy câu bị động.

Khi nào dùng thì hiện tại hoàn thành?

Thì hiện tại hoàn thành có 5 cách dùng chính. Điểm chung của tất cả là thời gian chưa đóng lại hoặc kết quả còn ở hiện tại. Nếu trong câu có mốc quá khứ đã kết thúc (yesterday, in 2020, two days ago), gần như chắc chắn con phải dùng quá khứ đơn thay vì thì này.

1. Việc đã xảy ra, kết quả còn ở hiện tại

Người nói không quan tâm việc xảy ra lúc nào, chỉ quan tâm tình trạng bây giờ. Ví dụ "Tôi gãy chân rồi" nghĩa là bây giờ chân vẫn đang gãy. Đây là cách dùng phổ biến nhất trong giao tiếp hằng ngày ở nhà và ở trường.

  • Someone has eaten my cake! — Ai đó ăn mất bánh của con rồi! (bây giờ không còn bánh)
  • I have broken my glasses, so I can't read. — Con làm vỡ kính rồi nên không đọc được.

2. Kinh nghiệm: đã từng hoặc chưa từng

Dùng để kể về trải nghiệm trong cuộc đời tính đến hiện tại, không nêu thời điểm. Thường đi với ever (trong câu hỏi), never, before, once, twice, many times. Con hay gặp mẫu này khi giới thiệu bản thân hoặc hỏi bạn bè về sở thích du lịch, món ăn.

  • Have you ever tried bánh xèo? – Yes, many times. — Bạn đã bao giờ ăn bánh xèo chưa? – Ăn nhiều lần rồi.
  • My son has never seen snow. — Con trai tôi chưa bao giờ thấy tuyết.

3. Bắt đầu trong quá khứ, kéo dài đến hiện tại

Trạng thái bắt đầu từ trước và đến bây giờ vẫn còn đúng. Câu thường đi với for, since hoặc câu hỏi How long…?. Cách dùng này đặc biệt hay đi với động từ trạng thái như know, have (có), be, live, like.

  • I have known Minh since grade 1. — Tôi quen Minh từ hồi lớp 1.
  • They have had their dog for three years. — Họ nuôi con chó được ba năm rồi.

4. Việc vừa mới xảy ra, tin tức mới

Khi thông báo một tin mới, người bản xứ mở đầu bằng hiện tại hoàn thành (thường có just, recently), rồi chuyển sang quá khứ đơn khi kể chi tiết. Các bản tin tiếng Anh rất hay dùng cách này.

  • The school has just announced the exam results. — Trường vừa công bố kết quả thi.
  • I've cut my finger. I did it while I was cooking. — Mẹ bị đứt tay rồi. Lúc đang nấu ăn thì bị.

5. Khoảng thời gian chưa kết thúc và cấu trúc "the first time"

Dùng với today, this morning, this week, this year khi khoảng thời gian đó vẫn đang diễn ra. Ngoài ra, sau This is / It is the first (second, third…) time và sau so sánh nhất (the best… I have ever…), tiếng Anh dùng hiện tại hoàn thành.

  • This is the first time I have eaten sushi. — Đây là lần đầu tiên tôi ăn sushi.
  • It's the best film I have ever seen. — Đó là bộ phim hay nhất tôi từng xem.

Động từ V3 và bảng động từ bất quy tắc

V3 (quá khứ phân từ) là phần khó nhất của thì hiện tại hoàn thành. Với động từ có quy tắc, V3 giống hệt V2: thêm -ed (work → worked, play → played, study → studied, stop → stopped). Quy tắc chính tả: tận cùng e chỉ thêm -d (live → lived); phụ âm + y đổi y thành i (cry → cried); động từ một âm tiết kết thúc bằng nguyên âm + phụ âm thì gấp đôi phụ âm (plan → planned).

Với động từ bất quy tắc, con phải học thuộc cột thứ ba. Cách học nhanh là chia thành 4 nhóm theo hình dạng:

  • A – A – A (cả ba cột giống nhau): cut – cut – cut, put – put – put, let – let – let, read – read – read (đọc khác: /riːd/ – /red/ – /red/).
  • A – B – B (V2 = V3): buy – bought – bought, make – made – made, have – had – had, find – found – found, teach – taught – taught.
  • A – B – A (V3 = V1): come – came – come, run – ran – run, become – became – become.
  • A – B – C (ba cột khác nhau): go – went – gone, see – saw – seen, eat – ate – eaten, write – wrote – written, do – did – done, take – took – taken.

Bảng đầy đủ kèm cách đọc có trong sơ đồ tư duy động từ bất quy tắc, còn cách đọc đuôi -ed (/t/, /d/, /ɪd/) con luyện với sơ đồ phát âm đuôi s, es, ed.

Khác biệt Anh – Mỹ: một số động từ có hai dạng V3 đều đúng, như learnt/learned, dreamt/dreamed (Anh Anh hay dùng -t). Động từ get có V3 là got trong Anh Anh nhưng thường là gotten trong Anh Mỹ.

Phân biệt for và since, been và gone

For hay since?

  • For + khoảng thời gian (bao lâu): for two hours, for three days, for a long time, for ages.
  • Since + mốc thời gian (từ khi nào): since 8 o'clock, since Monday, since 2020, since Tết.
  • Since + mệnh đề quá khứ đơn: I have lived here since I was born. (Tôi sống ở đây từ khi sinh ra.)

Mẹo hỏi nhanh: nếu trả lời được câu "bao lâu?" thì dùng for; nếu trả lời được câu "từ khi nào?" thì dùng since.

Been to hay gone to?

  • has gone to: Dad has gone to Hanoi. — Bố đã đi Hà Nội (và giờ vẫn đang ở đó, chưa về).
  • has been to: Dad has been to Hanoi. — Bố đã từng đến Hà Nội (và đã về rồi). Dạng này hay đi với ever, never, twice.

Vì vậy câu Where have you been? nghĩa là "Nãy giờ con ở đâu?" (con đã về rồi), còn Where has Mom gone? là "Mẹ đi đâu rồi?" (mẹ vẫn chưa về).

Dấu hiệu nhận biết thì hiện tại hoàn thành

Các từ dưới đây là dấu hiệu quen thuộc của thì hiện tại hoàn thành. Vị trí của chúng trong câu là điểm đề thi hay kiểm tra:

  • just (vừa mới), already (đã… rồi), never (chưa bao giờ), ever (đã từng): đứng giữa have/has và V3. I have just finished. She has already left. He has never flown. Already cũng có thể đứng cuối câu để nhấn mạnh hoặc tỏ ý ngạc nhiên: Have you finished already?
  • yet (chưa / đã… chưa): dùng trong câu phủ định và câu hỏi, đứng cuối câu. I haven't finished yet. Have you finished yet?
  • ever: chủ yếu trong câu hỏi (Have you ever…?) và sau so sánh nhất. Không dùng ever trong câu khẳng định thông thường.
  • still (vẫn chưa): đứng trước haven't/hasn't. She still hasn't replied.
  • for, since, so far, up to now, until now, recently, lately: thường đứng cuối câu; so far và recently cũng có thể đứng đầu câu.
  • This is the first time…, It's the second time…, the + so sánh nhất + I have ever…
  • How long…?, How many times…?

Lưu ý: never đã mang nghĩa phủ định nên không đi với not. Viết I have never been there, không viết "I haven't never been there".

Những lỗi sai thường gặp khi dùng thì hiện tại hoàn thành

  • ❌ I have seen him yesterday. → ✅ I saw him yesterday. (có mốc quá khứ cụ thể thì dùng quá khứ đơn)
  • ❌ I live here since 2020. → ✅ I have lived here since 2020. (trạng thái kéo dài đến nay dùng hiện tại hoàn thành, lỗi do dịch từng chữ từ tiếng Việt)
  • ❌ She has went home. → ✅ She has gone home. (sau have/has phải là V3, không phải V2)
  • ❌ We have been friends since five years. → ✅ We have been friends for five years. (five years là khoảng thời gian, dùng for)
  • ❌ When have you arrived? → ✅ When did you arrive? (câu hỏi When hỏi thời điểm cụ thể nên dùng quá khứ đơn)
  • ❌ Have you finished yet your homework? → ✅ Have you finished your homework yet? (yet đứng cuối câu)
  • ❌ I have ever been to Da Lat. → ✅ I have been to Da Lat. (ever không dùng trong câu khẳng định thường)
  • ❌ He have lost his bag. → ✅ He has lost his bag. (he/she/it đi với has)

Thì hiện tại hoàn thành khác quá khứ đơn như thế nào?

Câu trả lời ngắn: thì quá khứ đơn dùng khi hành động đã kết thúc tại một thời điểm xác định trong quá khứ; hiện tại hoàn thành dùng khi thời điểm không quan trọng hoặc không nêu, và hành động còn liên quan đến hiện tại. Hãy so sánh từng cặp:

  • I have lost my key. — Tôi làm mất chìa khoá rồi. (giờ vẫn chưa có chìa)
  • I lost my key yesterday, but I found it this morning. — Hôm qua tôi làm mất chìa, nhưng sáng nay tìm thấy rồi.
  • My aunt has lived in Hue for ten years. — Dì tôi sống ở Huế được 10 năm. (vẫn đang sống ở đó)
  • My aunt lived in Hue for ten years. — Dì tôi từng sống ở Huế 10 năm. (bây giờ không sống ở đó nữa)
  • Have you seen Tom today? — Hôm nay bạn có gặp Tom không? (hôm nay chưa hết)
  • Did you see Tom this morning? — Sáng nay bạn có gặp Tom không? (nói vào buổi chiều, buổi sáng đã qua)

Mẹo kiểm tra: đọc câu và tự hỏi "có mốc quá khứ đã kết thúc không?". Có yesterday, last…, …ago, in 2019, when I was… → quá khứ đơn. Không có, hoặc có for/since/ever/yet → hiện tại hoàn thành.

Một lưu ý về tiếng Anh Mỹ: trong giao tiếp thân mật, người Mỹ đôi khi dùng quá khứ đơn với just, already, yet (Did you eat yet?). Tuy nhiên, Swan và Murphy đều khuyên người học dùng hiện tại hoàn thành trong các câu này, và đáp án đề thi ở Việt Nam cũng theo chuẩn đó.

Mẹo dạy con học thì hiện tại hoàn thành tại nhà

Thì hiện tại hoàn thành thường được dạy chính thức ở THCS, nhưng trẻ tiểu học vẫn có thể làm quen qua các câu ngắn như I've finished! hay Have you ever…?. Một số hoạt động cha mẹ có thể áp dụng:

  1. Trò "Have you ever…?": mỗi người viết 5 trải nghiệm lên giấy (đi máy bay, ăn sầu riêng, thấy biển). Lần lượt hỏi nhau Have you ever flown on a plane?, trả lời Yes, I have / No, I haven't. Ai có nhiều câu "Yes" nhất thắng.
  2. Kiểm tra việc nhà bằng "yet": mỗi tối, cha mẹ hỏi Have you done your homework yet? Have you packed your bag yet?. Con trả lời bằng câu đầy đủ với already hoặc not yet.
  3. Thẻ động từ bất quy tắc theo nhóm: làm thẻ 3 mặt V1 – V2 – V3, chia theo 4 nhóm A-A-A, A-B-B, A-B-A, A-B-C. Mỗi ngày học 5 thẻ thay vì cố thuộc cả bảng.
  4. Dòng thời gian của con: vẽ một đường thẳng từ năm con sinh ra đến hiện tại, đánh dấu các mốc (vào lớp 1, chuyển nhà, nuôi mèo). Từ đó con tập nói I have been at this school since 2022. I have had my cat for two years.
  5. Quan sát kết quả: khi thấy bát vỡ hay sàn ướt, cha mẹ hỏi What has happened? để con đoán Someone has broken a bowl!. Đây là cách dạy cách dùng "kết quả còn ở hiện tại" rất tự nhiên.

Với con lớp 8–12, cha mẹ nên cho con luyện thêm các dạng viết lại câu (started… ago → for, the last time → since, never… before → the first time), vì đây là dạng bài gần như năm nào cũng có trong đề thi vào lớp 10. Nếu chưa biết bắt đầu từ đâu, có thể tham khảo lộ trình học tiếng Anh theo từng cấp.

Bài tập thì hiện tại hoàn thành có đáp án

Bài 1: Chia động từ ở thì hiện tại hoàn thành

  1. I (lose) ___ my umbrella. Can I borrow yours?
  2. She (live) ___ in this town since 2019.
  3. ___ you ever (eat) ___ durian?
  4. We (not/finish) ___ our project yet.
  5. My grandparents (be) ___ married for 40 years.
  6. He (just/go) ___ out. He'll be back in an hour.
  7. How many books ___ you (read) ___ this month?
  8. This is the first time I (see) ___ snow.
  9. Lan (never/fly) ___ on a plane.
  10. They (already/write) ___ the report.

Bài 2: Hiện tại hoàn thành hay quá khứ đơn?

  1. I (visit) ___ Hue last summer.
  2. I (visit) ___ Hue three times.
  3. When ___ you (start) ___ learning English?
  4. My mom (work) ___ at this hospital for ten years, and she still loves it.
  5. My grandfather (work) ___ as a teacher for 30 years before he retired.
  6. ___ you (see) ___ my glasses? I can't find them.
  7. Nguyễn Du (write) ___ The Tale of Kieu.
  8. Look! Someone (break) ___ the window.

Bài 3: Điền for hoặc since

  1. ___ last Monday
  2. ___ three weeks
  3. ___ I was six
  4. ___ a long time
  5. ___ Christmas
  6. ___ ages

Bài 4: Viết lại câu sao cho nghĩa không đổi

  1. I started learning the piano two years ago. → I have…
  2. The last time I saw Nam was in 2023. → I haven't…
  3. I have never eaten sushi before. → This is the first time…
  4. It's the first time he has driven a car. → He has never…

Đáp án

  • Bài 1: 1. have lost — 2. has lived — 3. Have … eaten — 4. haven't finished — 5. have been — 6. has just gone — 7. have … read — 8. have seen — 9. has never flown — 10. have already written
  • Bài 2: 1. visited (last summer) — 2. have visited (kinh nghiệm, số lần) — 3. did … start (hỏi When) — 4. has worked (vẫn đang làm) — 5. worked (đã nghỉ hưu) — 6. Have … seen (kết quả: vẫn chưa tìm thấy) — 7. wrote (tác giả đã mất, việc đã kết thúc) — 8. has broken (kết quả nhìn thấy ngay)
  • Bài 3: 1. since — 2. for — 3. since — 4. for — 5. since — 6. for
  • Bài 4: 1. I have learned (learnt) the piano for two years. — 2. I haven't seen Nam since 2023. — 3. This is the first time I have eaten sushi. — 4. He has never driven a car before.

Câu hỏi thường gặp về thì hiện tại hoàn thành

Dấu hiệu nhận biết thì hiện tại hoàn thành là gì?

Dấu hiệu rõ nhất là các từ just, already, yet, ever, never, for, since, so far, recently, up to now và cấu trúc "This is the first time…". Ngược lại, nếu câu có yesterday, last week, ago hoặc một năm cụ thể trong quá khứ thì không dùng hiện tại hoàn thành mà dùng quá khứ đơn.

Have been to và have gone to khác nhau thế nào?

Have been to nghĩa là đã từng đến một nơi và đã quay về: I have been to Phu Quoc. Have gone to nghĩa là đã đi đến đó và hiện chưa về: She has gone to Phu Quoc (bây giờ cô ấy đang ở Phú Quốc). Vì thế không nói "I have gone to…" về chính mình khi đang đứng nói chuyện.

Sau since dùng thì gì?

Mệnh đề chính dùng hiện tại hoàn thành, còn mệnh đề sau since thường dùng quá khứ đơn vì đó là một mốc đã qua: I have known her since we were in grade 3. Sau since cũng có thể là danh từ chỉ mốc thời gian: since 2021, since Monday, since last summer.

Có dùng thì hiện tại hoàn thành với "ago" được không?

Không. Ago chỉ một thời điểm cụ thể trong quá khứ, nên luôn đi với quá khứ đơn: I moved here three years ago. Muốn dùng hiện tại hoàn thành, con đổi sang for: I have lived here for three years. Đây là dạng viết lại câu rất phổ biến trong đề thi.

Vì sao thì hiện tại hoàn thành lại khó với người Việt?

Vì tiếng Việt không chia thì, chỉ dùng từ "đã", "rồi", "từng" cho cả quá khứ đơn lẫn hiện tại hoàn thành. Người học cần chuyển từ suy nghĩ "việc này xảy ra khi nào?" sang "việc này còn liên quan đến bây giờ không?". Luyện nhiều cặp câu so sánh là cách nhanh nhất để quen.

Tổng kết

Thì hiện tại hoàn thành là cây cầu nối quá khứ với hiện tại: S + have/has + V3/ed, dùng cho kết quả còn đến nay, kinh nghiệm đã từng, trạng thái kéo dài với for/since và việc vừa xảy ra. Ba điều con cần ghi nhớ: học chắc V3 bất quy tắc, phân biệt for/since và không bao giờ dùng thì này với mốc quá khứ cụ thể. Ôn lại bài trước về thì hiện tại tiếp diễn, xem vị trí của thì này trong sơ đồ tư duy 12 thì trong tiếng Anh, rồi học tiếp thì hiện tại hoàn thành tiếp diễn (Present Perfect Continuous).

Tài liệu tham khảo: Raymond Murphy, English Grammar in Use (Cambridge University Press); Michael Swan, Practical English Usage (Oxford University Press); Cambridge Dictionary — Grammar: Present perfect simple. Cập nhật: 10/2026.