Sau bài này bạn sẽ
- chia đúng have / has been + V-ing ở câu khẳng định, phủ định và câu hỏi.
- dùng thì này cho việc kéo dài đến nay (for, since, How long) và việc vừa dừng còn để lại dấu hiệu.
- phân biệt với hiện tại hoàn thành và không dùng tiếp diễn với động từ trạng thái.
Khi nào dùng?
Công thức: have / has been + V-ing. Dùng khi nói:
- Việc bắt đầu trong quá khứ, vẫn đang tiếp diễn, nhấn mạnh bao lâu (for, since, How long, all day): I have been learning English for eight years.
- Việc vừa mới dừng, còn để lại dấu hiệu: Your eyes are red. Have you been crying?
Công thức
| Dạng câu | Công thức | Ví dụ |
|---|---|---|
| Khẳng định | S + have / has been + V-ing | She has been working since 8 a.m. |
| Phủ định | S + haven't / hasn't been + V-ing | They haven't been sleeping well. |
| Nghi vấn | Have / Has + S + been + V-ing? | Have you been waiting long? |
| Trả lời ngắn | Yes, S + have / has. No, S + haven't / hasn't. | Yes, I have. / No, I haven't. |
Hoàn thành hay hoàn thành tiếp diễn?
- Hoàn thành (
have + V3) nhấn mạnh kết quả, số lượng: I have written two essays this week. - Hoàn thành tiếp diễn nhấn mạnh quá trình, thời gian, việc có thể chưa xong: I have been writing essays all morning.
- Có số lượng, số lần (how many, three times) → chỉ dùng hoàn thành.
- Động từ trạng thái (know, believe, like, want, own, belong, understand, have = sở hữu) không dùng tiếp diễn: I have known her for years, không nói have been knowing.
- Với live, work, study, teach + for / since, hai thì thường đều đúng, nghĩa gần như nhau: She has lived / has been living here since 2019.
Ví dụ
I've been learning English for about eight years.
Tôi học tiếng Anh được khoảng tám năm rồi.vẫn đang học, nhấn mạnh thời gian
She's been working as a nurse since 2017.
Cô ấy làm y tá từ năm 2017.since + mốc
It's been raining all week, so the streets are flooded.
Trời mưa cả tuần nay nên đường ngập.all week: kéo dài đến nay
You look tired. Have you been sleeping badly?
Trông bạn mệt quá. Dạo này bạn ngủ không ngon à?dấu hiệu ở hiện tại
I've been reading a book about climate change. I've read half of it so far.
Tôi đang đọc một cuốn sách về biến đổi khí hậu. Đến giờ tôi đọc được một nửa.quá trình (tiếp diễn) và kết quả (hoàn thành)
How long have you been living in Hanoi?
Bạn sống ở Hà Nội bao lâu rồi?câu hỏi How long
More and more young people have been choosing to work from home recently.
Gần đây ngày càng nhiều người trẻ chọn làm việc tại nhà.xu hướng gần đây — IELTS Writing
We haven't been getting much sleep since the baby was born.
Từ khi em bé chào đời, chúng tôi không ngủ được mấy.phủ định
I've known my best friend for fifteen years.
Tôi quen bạn thân được mười lăm năm rồi.know là động từ trạng thái → không dùng tiếp diễn
My hands are dirty because I've been repairing my bike.
Tay tôi bẩn vì tôi vừa sửa xe đạp.việc vừa dừng, còn dấu hiệu
Lỗi hay gặp
Sai: I am waiting for you for an hour.
Đúng: ✓ I have been waiting for you for an hour.
Có for và việc kéo dài đến nay → hoàn thành tiếp diễn, không dùng hiện tại tiếp diễn.
Sai: I have been knowing him since 2010.
Đúng: ✓ I have known him since 2010.
know là động từ trạng thái, không có dạng tiếp diễn.
Sai: She has been writing three emails this morning.
Đúng: ✓ She has written three emails this morning.
Nói số lượng đã xong (three emails) → dùng hoàn thành.
Sai: He has working here since May.
Đúng: ✓ He has been working here since May.
Thiếu been: công thức là has been + V-ing.
Bài tập có đáp án
Tự làm trước, rồi bấm “Xem đáp án” để đối chiếu và đọc giải thích.
Câu 1 · Chọn đáp án
Minh is exhausted. He ______ football in the sun for two hours.
- A. is playing
- B. has been playing
- C. plays
Xem đáp ánẨn đáp án
has been playing
for two hours: kéo dài đến lúc nói và để lại dấu hiệu (mệt) → has been playing. is playing không đi với for + khoảng thời gian đến nay.
Câu 2 · Chọn đáp án
I ______ Mr Tuan for ten years. He was my first English teacher.
- A. have been knowing
- B. have known
- C. know
Xem đáp ánẨn đáp án
have known
know là động từ trạng thái → không dùng tiếp diễn; for ten years đến nay → have known.
Câu 3 · Chọn đáp án
Your shoes are wet. ______ in the rain?
- A. Have you been walking
- B. Do you walk
- C. Have you walking
Xem đáp ánẨn đáp án
Have you been walking
Giày ướt là dấu hiệu của việc vừa làm → Have you been walking. Have you walking thiếu been.
Câu 4 · Điền vào chỗ trống
Why are you out of breath? ______ you been ______ (run)?
Xem đáp ánẨn đáp án
Have / running
Câu hỏi hoàn thành tiếp diễn: Have + you + been + V-ing (run → running, gấp đôi n).
Câu 5 · Điền vào chỗ trống
So far, I ______ (read) four books this month.
Xem đáp ánẨn đáp án
have read
Có số lượng đã xong (four books) → hiện tại hoàn thành have read, không dùng tiếp diễn.
Câu 6 · Điền vào chỗ trống
My aunt ______ (own) this café since 2021.
Xem đáp ánẨn đáp án
has owned
own (sở hữu) là động từ trạng thái → has owned, không dùng has been owning.
Câu 7 · Sắp xếp thành câu
Chúng tôi đã đợi xe buýt được hai mươi phút rồi.
beenfor twenty minuteshavewaitingwefor the bus
Xem đáp ánẨn đáp án
We have been waiting for the bus for twenty minutes.
Khẳng định: S + have been + V-ing; wait for the bus, cụm thời gian thường đứng cuối.
Câu 8 · Sắp xếp thành câu
Bạn học tiếng Anh được bao lâu rồi?
havebeenhow longlearningyouEnglish
Xem đáp ánẨn đáp án
How long have you been learning English?
Câu hỏi: How long + have + chủ ngữ + been + V-ing?
Câu 9 · Tìm và sửa lỗi
Tìm và sửa lỗi sai.
Hoa has studying for her exam since Monday.
Xem đáp ánẨn đáp án
has studying → has been studying
Thiếu been: has been studying. Với study + since, has studied cũng đúng.
Câu 10 · Tìm và sửa lỗi
Tìm và sửa lỗi sai.
She is working here for three years now.
Xem đáp ánẨn đáp án
is working → has been working
for three years now: kéo dài đến nay → has been working (hoặc has worked), không dùng hiện tại tiếp diễn.
Làm bài kiểm tra có chấm điểm của bài này và lưu tiến độ trên Mock Test.
Kiểm tra bài học