英語の学習で混乱しやすいのが、have been doing と have done の使い分けです。
どちらも「過去から今につながる」形ですが、見るポイントが違います。
ざっくり言うと、
- have been doing は、動作の続き方・途中感を見せたいとき
- have done は、結果・完了・経験・状態を伝えたいとき
です。
この記事では、初心者でも迷いにくいように、
「何に注目している形なのか」 を中心に、例文つきでわかりやすく整理します。
なお、ここでいう have done は、動詞 do だけの話ではなく、
have/has + 過去分詞 で作る現在完了形全体を指しています。
たとえば have finished / have written / have seen なども同じ仲間です。
まず結論
最初に、違いをひと目でつかめる表を見ておきましょう。
| 形 | 基本イメージ | 何を目立たせる? | 例 |
|---|---|---|---|
| have been doing | 過去から今まで動作が続いている / さっきまで続いていた | 動作そのもの・長さ・途中感 | I have been studying for three hours. |
| have done | 今につながる結果がある / 終わった / 経験がある / 状態が続いている | 結果・完了・経験・事実 | I have finished my homework. |
迷ったら、まず次の2つを考えると整理しやすいです。
1. 今見せたいのは「活動そのもの」か、「結果」か
2. 動作動詞か、状態動詞か
この2つを押さえるだけでも、かなり判断しやすくなります。
現在完了進行形 have been doing の意味
1. 今も続いている動作を表す
have been doing は、過去に始まった動作が今も続いているときによく使います。
例文を見てみましょう。
- I have been studying English for two hours.
2時間ずっと英語を勉強しています。 - She has been waiting since noon.
彼女は正午からずっと待っています。 - They have been living here for ten years.
彼らは10年間ここに住み続けています。
この形では、「どれくらい続いているか」 が大事になりやすいです。
そのため、for / since / how long と相性が良いです。
💡 イメージとしては、線で伸びている感じです。
「始まった → 続いている → 今もつながっている」という見え方になります。
2. さっきまでしていて、今その影響が見える
現在完了進行形は、今はちょうど終わったかもしれないけれど、その活動のあとが今見えているときにも使えます。
- I’m tired because I have been working all day.
一日中働いていたので疲れています。 - She has been crying.
彼女は泣いていたようです。 - It has been raining.
雨が降っていたのです。
この使い方では、結果そのものよりも、
「その活動があったこと」 に意識が向いています。
たとえば、
- I have cleaned the room.
→ 部屋がきれいになった、という結果が中心 - I have been cleaning the room.
→ 掃除という作業をしていたことが中心
という違いになります。
3. 一時的・途中の感じが出やすい
現在完了進行形は、今まさに続いている途中感や、一時的な感じを出しやすい形です。
- I have been staying with my aunt this week.
今週はおばの家に泊まっています。 - I have been going to bed late recently.
最近ずっと寝るのが遅いです。
この形を使うと、
「そういう状態に今なっている最中」
という空気が出やすくなります。
現在完了 have done の意味
1. 完了・結果を表す
現在完了の大事な使い方のひとつが、終わったことの結果が今にあるという表し方です。
- I have finished my homework.
宿題を終えました。 - She has written the report.
彼女はレポートを書き終えました。 - We have cleaned the kitchen.
私たちはキッチンを掃除しました。
この形では、「もう終わった」
「その結果、今こうなっている」
という見え方が強くなります。
たとえば I have lost my key. なら、
単に「なくした」という過去の出来事ではなく、
今も鍵がないことが大事です。
2. 経験を表す
現在完了は、これまでにしたことがあるかを表すときにもよく使います。
- I have been to Kyoto three times.
京都に3回行ったことがあります。 - Have you ever tried natto?
納豆を食べたことがありますか。 - She has never seen snow.
彼女は一度も雪を見たことがありません。
この用法では、いつしたかよりも、
経験があるかどうかが中心です。
そのため、ever / never / before などと一緒に使われやすいです。
3. 継続する状態を表す
ここが、現在完了進行形とのいちばん大事な違いのひとつです。
現在完了は、状態が今まで続いていることも表せます。
- I have known him for ten years.
彼を10年間知っています。 - We have loved this town since childhood.
私たちは子どものころからこの町を愛しています。 - She has had this car for five years.
彼女はこの車を5年間持っています。
これらは、know / love / have のような状態動詞が使われています。
このタイプの動詞は、ふつう進行形にしません。
そのため、
- × I have been knowing him for ten years.
- × She has been having this car for five years.
のような形は、通常は不自然です。
状態が続くなら have done、動作が続くなら have been doing
という整理をしておくと、かなり迷いにくくなります。
have been doing と have done の比較
ニュアンス比較表
| 伝えたいこと | 自然な形 | 例 | ニュアンス |
|---|---|---|---|
| 今も続いている勉強 | have been doing | I have been studying all morning. | 勉強という活動が続いている |
| 書き終えたという結果 | have done | I have written the email. | メールが完成した |
| 何冊読んだか | have done | She has read five books this month. | 数・達成が大事 |
| どれくらい読み続けているか | have been doing | She has been reading all day. | 長さ・活動が大事 |
| ずっと知っている状態 | have done | I have known her since high school. | 状態の継続 |
| 最近ずっと働いている | have been doing | I have been working a lot lately. | 最近の活動の継続 |
例文で確認する
同じ場面でも、どちらを使うかで見せたいポイントが変わります。
1. write の場合
- I have written my essay.
エッセイを書き終えた。 - I have been writing my essay.
エッセイを書いているところだ / ずっと書いていた。
1つ目は完成が大事です。
2つ目は作業中だったことが大事です。
2. read の場合
- She has read ten pages.
10ページ読んだ。 - She has been reading for an hour.
1時間ずっと読んでいる。
前者はどれだけ終わったか、
後者はどれだけ続いたかに注目しています。
3. work の場合
- I have worked here since 2020.
2020年からここで働いています。 - I have been working here since 2020.
2020年からここで働き続けています。
このように、動詞によってはどちらも使われることがあります。
ただし、have been working のほうが、
今も続いている途中感がやや出やすいです。
4. know の場合
- I have known him for years.
彼のことは何年も前から知っています。 - × I have been knowing him for years.
know は状態動詞なので、通常は進行形にしません。
ここは、現在完了進行形にしないのがポイントです。
迷ったときの選び方
迷ったら、次の順番で考えると選びやすいです。
1. 「結果」を言いたいなら have done
- 宿題が終わった
- レポートを書いた
- 3冊読んだ
- その映画を見たことがある
こういうときは、have done が基本です。
キーワード
- 完了
- 結果
- 経験
- 回数
- 数量
2. 「活動の途中・継続」を言いたいなら have been doing
- ずっと勉強している
- 最近ずっと働きすぎている
- 朝から待っている
- さっきまで掃除していた
こういうときは、have been doing が自然です。
キーワード
- 続いている
- どれくらい続いているか
- 最近の活動
- 疲れ・濡れ・汚れなど、活動のあとが見える
3. 「状態が続く」なら have done
- know
- like
- love
- have
- believe
- want
このような状態動詞では、通常、have done を選びます。
4. 「何個・何回」と「どれくらい」を見分ける
これはとても便利な見分け方です。
- 何個・何回 → have done
- どれくらいの時間 → have been doing
例:
- I have written three emails today.
今日はメールを3通書いた。 - I have been writing emails all morning.
今日は朝からずっとメールを書いている。
数を言うなら現在完了、長さを言うなら現在完了進行形
と覚えると、実戦で役立ちます。
よくある間違い
1. 状態動詞を進行形にしてしまう
誤り
- I have been knowing her for years.
- He has been liking this band since high school.
自然な形
- I have known her for years.
- He has liked this band since high school.
2. 完了を言いたいのに進行形にしてしまう
誤り
- I have been finishing my homework.
自然な形
- I have finished my homework.
「終わった」という完了を言いたいなら、進行形より現在完了のほうが合います。
3. 数量を言うのに進行形にしてしまう
やや不自然になりやすい例
- I have been reading five books this month.
自然な形
- I have read five books this month.
five books のように、達成した量が中心なら現在完了が自然です。
4. 完了形と過去の特定時点を一緒にしてしまう
誤り
- I have finished it yesterday.
- She has been busy last week.
自然な形
- I finished it yesterday.
- She was busy last week.
yesterday / last week / in 2020 のような、
終わった過去の時点をはっきり言うときは、現在完了ではなく過去形を使います。
練習問題
問題
次の日本語に合うように、have done と have been doing のどちらが自然か考えてみてください。
- 私は朝からずっとこのレポートを書いています。
- 私はそのレポートを書き終えました。
- 私は彼を10年間知っています。
- 彼女は今日3杯コーヒーを飲みました。
- 最近ずっと雨が降っています。
答え
- I have been writing this report since this morning.
→ 続いている活動なので have been doing - I have written the report.
→ 完了した結果なので have done - I have known him for ten years.
→ know は状態動詞なので have done - She has had three cups of coffee today.
→ 数量が中心なので have done - It has been raining lately.
→ 最近の継続する活動なので have been doing
まとめ
最後に、ポイントを短く整理します。
✅ have been doing
→ 動作の継続・途中感・最近の活動を見せたいとき
✅ have done
→ 結果・完了・経験・状態の継続を伝えたいとき
✅ 迷ったらこの基準で考える
- 活動そのものを見せたい → have been doing
- 結果や事実を見せたい → have done
- 状態動詞なら → have done
- 何個・何回なら → have done
- どれくらい続いているかなら → have been doing
英語では、同じ「今につながる過去」でも、
どこに焦点を当てるかで形が変わります。
単に日本語訳で覚えるよりも、
- 結果を見るのか
- 活動を見るのか
- 状態なのか動作なのか
を意識したほうが、実際の会話や英作文でずっと使いやすくなります。
「終わったこと」を言いたいのに進行形を使っていないか、
「ずっと続いている動作」なのに結果形に寄りすぎていないか。
この2点を確認するだけで、かなり自然な英語になります。
