今回は、現在完了と一緒に使えない表現をまとめたいと思います。

なにそれ?
下記でわかりやすくまとめます。3分程度で読めますよ!
完了形と使えない表現一覧
まずは、完了形と一緒に使えない表現を一覧で示します。
全て過去を点で表す表現だというコトに注目してください。
- ~ago: ~前
- yesterday: 昨日
- last~: 昨~ (last yearなど)
- just now: たった今 (=ほんの少し前)
- when~: いつ~、~するとき
例文はコチラです。
上記の表現がある時は現在完了形を使わず、過去形を使います。
<NG>
He has finished his homework yesterday.
(彼は昨日彼の宿題を終えた???)
<OK>
He finished his homework yesterday.
(彼は昨日彼の宿題を終えた)
現在完了と過去を点で表す表現が併用できない理由
現在完了は、ひとことで言えば「過去+現在」の表現です。
「過去から続いている行為/状態が現在どうなっているか?」を示すのが現在完了形です。

どういうこと?
たとえば次の例文を見てください。
「継続:ずっと~している」という用法で使われていますが、
これは「過去から現在に至るまである行為がずっと続いている」ことを意味します。
He has been in Tokyo for 3 months.
(彼は三か月間ずっと東京にいる)
「過去から続いている行為/状態が現在どうなっているか?」を示すのが現在形なので、
過去を点で表す表現とは相性が悪いのです。
その証拠に、過去を線で表す表現は、現在完了形と併用OKです。
さらに、現在完了では「いまどうなっているか?」に力点が置かれるので、
現在を点で表す表現も、現在完了形と併用OKです。
- before: 以前 (=今より以前に = 現在~過去を線で表現)
- since: ~以来 (=過去から現在までを線で表現)
- now: いま
丸暗記も悪くはないですが、理屈を理解すると一発で覚えられますね!
なお、whenと現在完了が併用される例外については、下記の記事で紹介しています。
<過去記事>【サクッと理解】whenと現在完了形が一緒に使われる場合とは?
コメント
[…] とがあるのに対し、earlierは現在とのつながりを意識しないため、現在完了不可。現在完了の詳細についてはコチラの記事をご覧ください:現在完了と一緒に使えないときの表現とは?) […]
[…] 【完全版】現在完了と一緒に使えないときの表現とは? […]