ノックです。
みなさんは「have you ~ ?」と「did you ~ ?」の違いって説明できますか?
「そういえばイマイチ説明できないな〜」って人が多いと思います。
なので今回はズバリ!
「 have you ~ ?」と「did you ~ ?」の違いについて書きたいと思います。
それではいきましょう!
「did you ~ ?」ってなに?
ではまずは「did you ~ ?」から見ていきましょう。
「did you ~ ?」とは一言でいうと、 過去形です。それに疑問を足した形。
例を出します。
Did you change your clothes?
服変えた?
もうすでに終わったことの事実を相手に問う場合に使われます。
Did + you + 動詞の原形~?
という文型になっています。
「have you ~ ?」ってなに?
次に「have you ~ ?」を見ていきましょう。
これは一言で言うと、 現在完了形です。それに疑問を足したもの。
例から見ていきましょう。
Have you read my book?
私の本読んだ?
こちらも、すでに終わっていることを聞きたいときに使われます。
Have + you + 動詞の過去分詞形~?
という文型になっています。
「have you ~ ?」と「did you ~ ?」の違い
英語を勉強している人が躓きやすいのが「have you ~ ?」と「did you ~ ?」の違いです。
日本語訳ではあまり明確な違いがない…というか全く同じように「…~った?」「…~した(しましたか)?」と訳されている場合もある!
日本人がこのように混乱してしまう理由は、この二つが英語独特の時制の考え方に基づいて使い分けられているからです。
そのように、 明確な違いがあるのにも関わらず、日本人が見分けられないのが問題なのです。
では、見分けられるように、例をとって説明していきましょう。
同じ事実を示す文
例えば、日本語訳で「宿題終わった?」と聞きたい時に、
- Did you finish your homework?
- Have you finished your homework?
の二通りのフレーズが使えます。
どちらも同じ訳で、「宿題終わった?」となります。
どちらも、過去の出来事に関する同じ事実に関して聞いていることは間違いありません。
では、この二つの違いは何でしょうか?
・過去から現在に至るまでの状況を聞いてる場合は、「have you ~ ?」が使われる
・過去の事実を聞いている場合は「did you ~ ?」が使われる
つまり、どういうことかというのを説明していきます。
過去形に関する考え方
過去形(Did you finish your homework?)からみていきましょう。
ここでは、「宿題をした」という過去の事実を、過去→現在→未来と続く 時間軸の中の
「 ただの1点」
と捉えているところに特徴があります。
このように、「宿題をした」という出来事が、ある一定の地点に定まっており、時間軸の他のどの部分にも伸びていない、ただの一点になります。
「宿題終わった?」と聞く側の頭の中では、この1点のイメージがもう出来上がっている感じです。
現在完了形に関する考え方
対して、現在完了形(Have you finished your homework?)は、
「宿題をした」という過去の事実を、過去→現在→未来と続く 時間軸の中の
「 過去から現在にいたるまでのいつか」
と捉えているところに特徴があります。

ちょっとややこしくなりましたが…。
「宿題終わった?」と聞く側の頭の中では、「既に数分前に宿題を終えている。」といった状態なのか、もうずっと昔に終えてしまったのか、どの地点で「宿題をした」という事実を納めたのか、イメージがつかない状態です。
日本語訳では、それでも「宿題終わった?」という訳になるので、このような細かいニュアンスが伝わりずらいのです。
このようなニュアンスをなんとか伝えるために、「もう宿題をやりおえた?」だとか、「宿題はやってしまいましたか?」などという「苦し紛れ」の訳を見かけますが、真相はこういうことです。
実は両方に使える文章が沢山ある
このように見ていくと、同じ日本語の訳「~した?」「~やった?」などで終わるものは、両方のパターンで訳せて、どちらも正しいのではないか?という疑問が出てきますね。
それは… 正しいです。
日本語で「~た?」で終わる多くの文章の多くは、どちらで訳しても問題がない場合が多いです。
例:
お姉ちゃんとケンカした?
Did you have an argument with your sister? 〇
Have you had an argument with your sister? 〇
お弁当を買いましたか?
Did you buy the lunchbox? 〇
Have you bought the lunchbox? 〇
髪型を変えましたか?
Did you change your hairstyle? 〇
Have you changed your hairstyle? 〇
携帯を壊しましたか?
Did you break my cell phone? 〇
Have you broken my cell phone? 〇
でも、これは日本語の訳文に「 時制」を決める文章が含まれていないからです。
一体どういうことなのか、下に説明していきます。
必ず「did you ~ ?」にならなければならないもの
上に説明した通り、「did you ~ ?」は、過去の事実を、過去→現在→未来と続く時間軸の中の「ただの1点」と捉えているところに特徴があるといいました。
そのため、 時間を指定する単語(節)
- When you went to the supermarket,
- at that time
- then
- yesterday
- 1 week ago
- 3 years ago
などと一緒に聞かれる文章は、必ず「did you ~ ?」にならなければなりません。
例:
When you went to the supermarket, did you meet Mr. Sakuragi?
(スーパーに行ったとき、桜木さんと会いましたか?)
Did you see my notebook at that time?
(その時、私のノートブックみた?)
Did you watch that film yesterday?
(昨日その映画みた?)
Did you do that job 3 years ago?
(その仕事を3年前にやったのですか?)
このように、時間を制限するもの、指定するものと一緒に使われるときは、自然に「did you ~ ?」になるんですね。
必ず「have you ~ ?」にならなければならないもの
「宿題をした」という過去の事実を、過去→現在→未来と続く時間軸の中の「過去から現在にいたるまでのいつか」と捉えています。これが、「did you ~ ?」にも使える文章の特徴です。
Did youに使えない、必ず現在完了形(「have you ~ ?」)にならなければならないものは、「過去の一点から現在に至るまで継続しているもの」です。過去形になりえない理由は、「まだ終わっていないから」です。

あるいは、たった今終わったもの。「司法試験に合格した今に至るまでずっと勉強を続けてきた」など、今まで継続してきたことが明確になっている場合は、 過去形は使えません。

過去→現在→未来と続く時間軸の中で、「1点」として表現させるものではなく、過去から現在への矢印を引くことができるからですね。
したがって、 現在までの継続を示す単語(節)と一緒に使われている場合、必ず現在完了形にしなければいけません。
例えば、
- since then
- since 2 years ago
- by now
例:
Have you been chatting with Mr. Sakuragi since then?
(そのときからずっと桜木さんとおしゃべりしていたのですか?)
Have you known her since 2 years ago?
(2年前から彼女を知っていたのですか?)
Have you been misunderstanding by now?
(今まで誤解していたのですか?)
sinceが使われている場合は大概現在完了です。
まとめ
いかがでしたか?
理解できましたでしょうか?
「have you ~ ?」と「did you ~ ?」の違いは、英語圏独特の時制の考え方に基づいているので、日本人には分かりにくいですが、ぜひ皆さんも使いこなせるように、「 コンセプト」、「 考え方」からしっかりと学んでいってくださいね。
ではまた。