【現在完了形のhave[has] been -ingってどう?】現在完了形との違い

こんにちは。せいじです。(@seiz_suzuki)
今日は「現在完了/現在完了進行形」の違いを深掘りしていきます😊
多くの方がこれらの違いについて疑問を持っているかと思いますが、僕なりにネイティブの意見なども取り入れて「これが最適解かな」というものを考えました🙌
早速、深掘っていきましょう
- 現在完了の簡単な復習
- 完了形と進行形の違い
- どういう考え方が大事か
継続を言いたいなら完了進行形

「現在完了形」という名前を聞いてしまいますと、「完了を表すもの」としての認識が強くなってしまいます💦
実際は以下の三用法があります👇
- 完了(結果)
- 経験
- 継続
ゆえに「have+過去分詞」という形の中に、3つの用法が含まれていると考えるほうがいいですね😊
違いは明白です✨
- 完了:just, already, yet など
- 経験:before, never, twice など
- 継続:How long, for, since など
これらが使われているかどうかで、ほとんどそれぞれの用法が使い分けできます👍
逆に言えば、
I have cooked curry and rice.
という文を見た際には、「ん?完了用法なのか、それとも経験用法なのか?」と迷ってしまうということです☝️(作り終わったのか、作ったことがあるのか)
ただし、こうした “微妙な文” が出ることはほとんどありませんし、文脈でほぼ理解できると思っていていいでしょう😊
継続用法の基本的な違い
とてもシンプルに言えば、
- 状態動詞なら ▶︎ have+過去分詞
- 動作動詞なら ▶︎ have+been+-ing
例えば、
- I have been playing the piano / for two hours.(ピアノを2時間弾いている)▶︎ 動作動詞
- We have known each other / since we were kids.(私たちは子どもの頃からの知り合いです)▶︎ 状態動詞
「know/live/like」など、そもそも論として「-ing」が取りにくい状態動詞は、基本的に「have[has]+過去分詞」の形、つまり❷で大丈夫です🙌
一方で、動作動詞である場合、僕は基本的に現在完了進行形を使うようにしています。
動作動詞なら完了進行形
再掲👇
- 状態動詞なら ▶︎ have+過去分詞
- 動作動詞なら ▶︎ have+been+-ing
- I have been waiting / for her / for 30 minutes. (30分前からずっと彼女を待っている)
- Seiji has been studying English / for three hours. (せいじは3時間英語を勉強し続けている)
- It hasn’t been raining / since this morning. (朝からずっと雨は降っていない)
- How long have you been learning to drive? (どのくらいの間、運転の練習をしているの?)
よく「今でも続けていることを強調したい場合は、完了進行形ですよね?」と聞いてくる方もいますが、僕のスタンスとしては基本的に「今でも続けていること」が前提にあります✨
それをいちいち使い分けるくらいなら、「以前から続けていて今でも続けている場合、動作動詞なら完了進行形」と決めておいた方が楽ですね🙌
最大の疑問は「live」
そもそも論として、「I’m living / in Tokyo.」は実はOKなんです😊
「今まさに東京に住んでいるよ」という意味合いがあり(currently的な)、僕もこちらで言うことのほうが多いです✨
人によっては「live」を使う際、「一時的に滞在している場合を強調したいならば、現在完了進行形で言う」というネイティブもいます😊
「一時的に滞在していて、もうちょっとしたら帰る」みたいなニュアンスですね✨
その時は現在完了進行形だ、と。
「過去のある時点で住んでいたことがある」という場合は、以下のように言うことが多いです✨
I lived / in Osaka / for three years.(大阪には3年間住んでいました)
「過去に住んでいた経験がある」場合はこんな感じ👇
- lived:住んでいた ○
- used to live:かつて住んでいた ○
- have lived:住んだことがある △(onceなどがないと伝わりづらい)
- had lived / had been living:ある時点まで住んでいた △(過去形と合わせるならOK)
「live」は厄介に思えますが、僕はこう言うようにしています👇
- 今までずっと住んでいる場合「have been living」現在完了進行形
- 過去に住んだことがある場合「lived / used to live」などの単純過去
もしかしたらネイティブによっては「ちょっと違うかも」という回答が来るかもしれません。
まとめ
現在完了形と現在完了進行形の違いについてです👇
- 状態動詞なら「have+過去分詞」
- 動作動詞なら「have+been+-ing」
- かといって動作動詞を「have+過去分詞」で書いても間違いではない
- 完了進行形は「今」を強調しているわけではないが、現在も続けているならこちらを使うほうが無難
- 「live」は状態動詞とも取れるが、現在完了進行形を使うようにする
- 過去「住んでいたことがある」なら単純過去か「used to live」が無難





