have / has been + -ing は「ずっと〜している」を表す

要点

文法の意味

現在完了進行形は「ずっと〜し続けている」という動作の継続を強調する

現在完了形が結果・状態を表すのに対し、現在完了進行形は動作そのものの継続を前に出します。know / like のような状態動詞はふつう進行形にしません。

文法の形

肯定・否定・疑問の3つの形があります。

肯定
主語 + have / has been + 動詞-ing

I have been studying for two hours.

否定
主語 + have / has not been + 動詞-ing

I haven't been sleeping well lately.

疑問
Have / Has + 主語 + been + 動詞-ing?

Has he been studying all day?

文法のルール

1

状態動詞(know / like など)は進行形にしない。現在完了形を使う。

I have been knowing him for 10 years.

I have known him for 10 years.

know は「知っている」という状態を表す動詞なので、継続を表すときは現在完了進行形ではなく現在完了(have known)を使います。

2

been の後ろは -ing 形。

He has been waited for an hour.

He has been waiting for an hour.

現在完了進行形は have been + -ing で作ります。been の後ろは原形(go)でも過去分詞(waited)でもなく、必ず -ing 形にします。