could have と should have の違い:過去の「できたかも」と「すべきだった」を分けて覚える
could have と should have は、どちらも「過去を振り返る英語コンボ」です。ただし、見ているポイントが違います。
- could have + 過去分詞:過去に「できた可能性があった」「そうだったかもしれない」
- should have + 過去分詞:過去に「するべきだった」「そうしておけばよかった」
- 形はどちらも
助動詞 + have + 過去分詞 - 会話では、予定、連絡、買い物、移動、失敗の振り返りでよく使う
たとえば I could have called you. は「電話できたのに」という可能性の話です。I should have called you. は「電話すべきだった」という後悔や反省の話になります。
結論:could have は可能性、should have は後悔や判断
まずは、この1行で分けてください。
ここがポイント: could have は「できた・ありえた」、should have は「すべきだった・そうしておけばよかった」 と考えると、会話で選びやすくなります。
同じ called you を使っても、意味は変わります。
-
I could have called you.
電話できたのに。/電話することは可能だった。 -
I should have called you.
電話すべきだった。/電話しなかったことを反省している。
could have は「実際にはしなかったけれど、できる状態だった」に目が向きます。should have は「実際にはしなかったけれど、したほうがよかった」に目が向きます。
Cambridge Dictionary の文法解説でも、could have + -ed form は過去の可能性を表し、should have + -ed form は過去に理想的だったが起きなかったことを表す形として説明されています。
コアイメージ:could と should の土台から考える
難しく見えますが、中学英語の can と should の感覚を過去に向けるだけです。
could have のコアイメージ
could は can の仲間です。中心にあるのは「できる」「可能性がある」という感覚です。
そこに have + 過去分詞 がつくと、話の目線が過去に移ります。
could:できるかもしれないcould have done:過去に、できたかもしれない/できたのに
例:
We could have taken a taxi.
タクシーに乗ることもできたね。
この文は「タクシーに乗る選択肢があった」という意味です。必ずしも強い後悔ではありません。
should have のコアイメージ
should は「〜すべき」「〜したほうがいい」という助言や判断を表します。
そこに have + 過去分詞 がつくと、「過去にそうするべきだった」という意味になります。
should:〜すべき、〜したほうがいいshould have done:〜すべきだった、〜しておけばよかった
例:
We should have taken a taxi.
タクシーに乗るべきだったね。
こちらは「実際にはタクシーに乗らず、その判断がよくなかった」という反省が入ります。
比較で整理:どちらを選ぶ?
同じ場面でも、話し手が何を言いたいかで選ぶ表現が変わります。
| 表現 | 基本イメージ | よく使う場面 | 日本語の感覚 |
|---|---|---|---|
| could have | 過去の可能性・能力 | 別の選択肢があったとき | 〜できたのに/〜だったかもしれない |
| should have | 過去への助言・反省 | 判断ミスや後悔を言うとき | 〜すべきだった/〜しておけばよかった |
「できたのに」と言いたいなら could have
I could have helped you.
手伝うことはできたのに。
この文では「手伝う能力や時間があった」ことを伝えています。責めるよりも、可能性を振り返る感じです。
「すべきだった」と言いたいなら should have
I should have helped you.
手伝うべきだった。
こちらは「手伝わなかったのはよくなかった」という反省がはっきり出ます。
「かもしれない」の could have もある
could have は、過去について「そうだった可能性がある」と推測するときにも使います。
She could have missed the bus.
彼女はバスに乗り遅れたのかもしれない。
この場合は「できたのに」ではなく、「過去にそう起きた可能性がある」という意味です。British Council の過去の推量を扱う解説でも、could have は過去の可能性を表す形として扱われています。
例文で使い分けを確認
短い例文で、会話にそのまま使える形を見ていきます。
could have の例文
I could have joined the meeting.
その会議に参加することはできたよ。
使いどころ:予定や都合をあとから話すとき。
You could have asked me.
私に聞くこともできたのに。
使いどころ:相手に別の選択肢があったと伝えるとき。言い方によっては少し責める響きになります。
It could have been worse.
もっと悪くなっていたかもしれない。
使いどころ:失敗やトラブルのあと、「まだましだった」と言うとき。
should have の例文
I should have left earlier.
もっと早く出るべきだった。
使いどころ:遅刻や移動の失敗を振り返るとき。
You should have told me.
私に言ってくれればよかったのに。
使いどころ:連絡不足について話すとき。相手を責める響きが出やすいので、声のトーンに注意します。
We should have booked a table.
席を予約しておくべきだったね。
使いどころ:レストランや旅行先で、準備不足に気づいたとき。
日常会話での使い方
短い会話で見ると、違いがかなり分かりやすくなります。
カフェで席が空いていなかった場面
A: There are no seats.
席がないね。
B: We should have come earlier.
もっと早く来るべきだったね。
ここでは「早く来なかったこと」への反省なので should have が自然です。
友達を手伝えなかった場面
A: I moved all the boxes by myself.
箱を全部ひとりで運んだよ。
B: You could have called me.
電話してくれれば手伝えたのに。
ここでは「電話する選択肢があった」という意味なので could have が合います。ただし、言い方によっては「なぜ電話しなかったの?」に近く聞こえることがあります。
電車に乗り遅れた場面
A: We missed the train.
電車に乗り遅れたね。
B: We should have checked the time.
時間を確認しておくべきだったね。
この文は、次に同じ失敗をしないための反省として使えます。
よくある間違い
形が似ているので、初心者がつまずきやすいポイントを先に押さえておきましょう。
間違い1:should had にしない
should や could のあとに来るのは、過去形の had ではなく have です。
- 誤:
I should had called you. - 正:
I should have called you.
電話すべきだった。
形は必ず could / should + have + 過去分詞 です。
間違い2:could of / should of と書かない
会話では could've や should've が could of、should of のように聞こえることがあります。でも、正しい書き方は have です。
- 誤:
I could of helped you. - 正:
I could have helped you.
手伝うことはできたのに。
間違い3:後悔を言いたいのに could have だけで済ませない
I could have studied more. は「もっと勉強できたのに」です。後悔は感じられますが、中心は「可能だった」です。
はっきり「勉強すべきだった」と言いたいなら、次の文が分かりやすいです。
I should have studied more.
もっと勉強するべきだった。
まとめ:過去をどう見ているかで選ぶ
could have と should have は、どちらも過去の出来事を振り返る表現です。違いは、話し手の目線です。
could have:そのとき可能だったこと、ありえたことを見るshould have:そのとき取るべきだった行動を見る- 形は
could / should + have + 過去分詞 could of、should ofとは書かない- 相手に向けて
You should have...と言うと、責めているように聞こえることがある
まずは日常の小さな場面で使ってみるのがおすすめです。遅刻したら I should have left earlier.、別の選択肢があったなら We could have taken a taxi.。この2つを分けて言えるだけで、過去の話がかなり自然になります。
