現在完了の使い方は?yesterday と一緒に使えない理由
入試対策講座|第55回
I lost my wallet yesterday. は正しいのに、I have lost my wallet yesterday. は間違いです。どちらも「財布をなくした」と訳せてしまう現在完了と過去形を、文の中の時を表す語を手がかりに使い分けます。
監修:原田高志(原田英語.com)
「昨日、財布をなくしてしまった」。日本語では、「昨日」と「〜てしまった」を、同じ文に入れられます。ところが英語では、現在完了と yesterday を、同じ文に入れられません。今日は、その理由と、時の語から決める見分け方を解きます。
なぜ現在完了は、yesterday と一緒に使えないのか
次の3つの英文を、日本語にしてみてください。
① I lost my wallet yesterday.
② I have lost my wallet.
③ I have lost my wallet yesterday.
日本語にすると、①②③は、どれも「財布をなくした」になりそうです。
ところが、③だけが間違いです。
正しい文と間違いの文を分けているのは、いったい何なのでしょうか。
考えられる答え
「過去のことが、いま終わった」という形なので、yesterday を足せそうに見えます。 ただ、③のとおり、足すと文が成り立ちません。現在完了は、過去形に何かを足した形ではなく、別の働きをする形です。
この分け方は正しく、入試でも点が取れます。ever や never があれば経験、already や yet があれば完了、for や since があれば継続、と見分けられます。 ただ、これだけでは、③が間違いの理由が説明できません。「財布をなくした」は完了のはずなのに、yesterday を足すだけで、なぜ間違いになるのかが残ります。
I have lost my wallet. は、「財布をなくして、いまもない」という、いまの状態を伝える形です。 ここに yesterday を置くと、話の中心が「昨日の1点」に移ります。「いま」とのつながりが切れるので、現在完了ではなく、過去形の I lost になります。
真相
現在完了は、過去の出来事を「いま」につなげて言う形。yesterday・last week・ago・when のように、過去の1点を指す語があると、「いま」とのつながりが切れるので、過去形を使う。
have[has]+過去分詞(過去の1点を示す語とは使わない)
文の中の「時を表す語」を見て、2ステップで決めます。
① 過去の1点を指す語はありますか?
・yesterday / last night / last year
・three days ago(〜前)
・in 2020 / then / just now
・When ...?(いつ〜?)という疑問文
1つでもあれば、過去形です。I saw him yesterday. / When did you come here?
② なければ、「いま」とつながる語を探します。
・経験 … ever / never / before / 〜 times
・完了 … already / just / yet
・継続 … for +期間(for three years)/ since +起点(since 2020)
どれかがあれば、現在完了です。I have never seen him. / She has lived here for three years.
財布の文で、2つの形の違いを見ます
・I lost my wallet. … 過去にやった、という事実だけを言います。いま見つかったかどうかは、この文からは分かりません。
・I have lost my wallet. … いまも財布がない、という状態までつたわります。
時の語を先に探す。それが、いちばん速い決め手です。
日本語の頭が、ここで邪魔をする
日本語には、「昨日、財布をなくしてしまった」のように、「昨日」と「〜てしまった」を同じ文に入れられる癖があります。時を表す語と、完了の形が、日本語では同居できるのです。
そのため、英語でも、yesterday と have lost を一緒に書きたくなります。
知らなかっただけで、あなたの理解力の問題ではありません。英語では、時の語が過去の1点を指していたら、過去形にする。それだけを覚えておけば足ります。
ここでつまずく
いちばん多いのは、過去の1点を指す語と、現在完了を並べる誤りです。
✕ I have seen him yesterday.
○ I saw him yesterday.
✕ He has come here three days ago.
○ He came here three days ago.
もう1つは、When ...? を現在完了で聞く誤りです。
✕ When have you finished your homework?
○ When did you finish your homework?
さらに、継続を表す文で since のあとに期間を置く誤りもあります。
✕ I have lived here since five years.
○ I have lived here for five years.(期間は for / 起点は since)
時の語から時制を決める力を手に入れる
文の中の yesterday・ago・for・since などから、過去形か現在完了かを、その場で決められるようになります。
空所補充でも誤文訂正でも、まず時の語を探せば、迷う時間が減ります。長文でも、筆者が「いま」の話をしているのか、「過去の1点」の話をしているのかが読めます。
例文で確かめる
I lost my wallet yesterday.
昨日、財布をなくしました。
yesterday は過去の1点を指す語なので、過去形。
I have lost my wallet, so I can't pay.
財布をなくしてしまったので、払えません。
いまも財布がない、という「いま」の話。
She has lived in Osaka for three years.
彼女は、3年間、大阪に住んでいます。
for three years は期間を表し、いまもつづく現在完了。
When did you finish your homework?
いつ、宿題を終えましたか。
When ...? の疑問文は、過去形で聞く。
Before
現在完了を「過去形のていねいな言い方」と覚えていて、時の語を見ずに、勘で選んでいた。yesterday と一緒に書いて、誤文訂正で取りこぼしていた
After
yesterday・ago・when があれば過去形、for・since・already・ever があれば現在完了と、時の語を見て、その場で決められる。「いま」の話かどうかを、文の中の語から確かめられる
For Teachers
明日の授業、この15分で「現在完了と過去形の使い分け(yesterday・ago・when と一緒に使えない理由)」が終わります
導入の問いかけ(3分)
- 「「昨日、財布をなくしました、を英語にしてください」と言って、何人かに黒板へ書かせます」
- 「「I have lost my wallet. と I lost my wallet. は、どちらも日本語では『財布をなくした』です。いま、財布は手元にありそうですか、なさそうですか」と聞きます」
- 「「I have seen him yesterday. は間違いです。何が合わないと思いますか」と問いかけます」
板書はこの1行だけ
yesterday・ago・last ~・When ...? → 過去形/ever・already・yet・for・since → 現在完了
ペアワーク/全体討論(5分)
「隣の人と、次の2文の誤りを探して直してください。①I have visited Kyoto last year. ②When have you finished your homework? 答えを書く前に、『時を表す語は何か』を相手に言ってから直します」5分。
- ①は I visited Kyoto last year.、②は When did you finish your homework? です。①を I have visited Kyoto. に直したペアには、「last year をどうしましたか。消して、意味は同じですか」と声をかけてください。
レベル別ミニ問題(5分)
空所に入れなさい。She ( ) in Osaka since 2020. (lives / lived / has lived / is living)
答え:has lived ※since 2020(2020年から)があるので、いまもつづく現在完了
誤りを1か所直しなさい。I have met her three days ago.
答え:have met → met ※three days ago(3日前)は過去の1点を指すので、過去形にする
出口チケット(2分)
「昨日、宿題を終えた」と「宿題をもう終えた」を、それぞれ英語で書いてください
AIに貼ると、この項目だけを狙った練習問題が、あなた用に出てきます。
あなたは大学入試英語の指導者です。現在完了と過去形の使い分けを確かめる練習問題を6問作ってください。条件は次のとおりです。①yesterday・ago・last year・When など、過去の1点を指す語がある問題を3問、for・since・already・ever など、現在完了になる語がある問題を3問にする。②そのうち2問は、時の語が無く、前後の文の「いま」とのつながりで決まる問題にする。③空所補充を4問、誤文訂正を2問にする。④解答には、「時を表す語は何か」で一言理由を添える。⑤私が答えるまで解答を見せない。
動画で見る
確認クイズ
-
Q1. ( ) に入れるのに最も適切なものはどれか。I ( ) this movie yesterday.(私は昨日、この映画を見ました)
-
Q2. ( ) に入れるのに最も適切なものはどれか。We ( ) each other for five years.(私たちは、5年間、おたがいを知っています)
よくある質問
現在完了と過去形は、何が違うのですか?
現在完了は、過去の出来事を「いま」とつなげて言う形です。過去形は、過去の1点の出来事として言います。yesterday や ago のような過去の1点を指す語があれば、過去形を使います。
just now は、現在完了と一緒に使えますか?
使えません。just now は「ついさっき」という過去の1点を指すので、過去形と使います。I saw him just now. のように言います。just だけなら、I have just finished. のように、現在完了と使えます。
for と since は、どう使い分けますか?
for のあとには期間を置き、since のあとには起点を置きます。for three years(3年間)、since 2020(2020年から)です。どちらも、いまもつづく話なので、現在完了と使います。