should have / could have / would have 違い|助動詞+have p.p. の意味を整理

英語の should have / could have / would have は、どれも見た目が似ているので混同しやすい表現です。

でも、先に結論を言うと、違いはかなりはっきりしています。

should have は「それが正しかったのにしなかった」
could have は「することは可能だった」
would have は「条件がそろえばそうなっただろう」

この3つは、過去を振り返りながら、話し手の気持ちや判断を足す表現です。

「〜したはず」「〜できたのに」「〜しただろうに」がごちゃごちゃになっている人は、まずこの記事の最初の表だけ押さえてください。

目次

should have / could have / would have の違いをまず表で整理

スクロールできます
表現核心イメージよくある訳こんなときに使う
should have + 過去分詞正解・当然・望ましかったこと〜すべきだったのに / 〜すればよかった / 〜したはずだ後悔・反省・軽い非難・期待
could have + 過去分詞可能だったこと〜できたのに / 〜だったかもしれない可能性・未実現の行動・過去の推測
would have + 過去分詞条件つきで起きた結果〜しただろうに / 〜だっただろうに仮定法・たられば・未実現の結果

最重要ポイントは、次の3つです。

  • should have =「その行動が正しかった」
  • could have =「その行動は可能だった」
  • would have =「その条件ならそうなった」

まずはこの3本柱で整理すると、かなり迷いにくくなります。

助動詞+have p.p. とは何か

この形は、ざっくり言うと 「今の位置から、過去のことを振り返ってコメントする形」 です。

たとえば、ただの過去なら次のようになります。

  • I called her.
    彼女に電話した。

これに助動詞を入れると、単なる事実ではなく、話し手の判断が入ります。

  • I should have called her.
    電話すべきだったのに。
  • I could have called her.
    電話することはできたのに。
  • I would have called her.
    そういう条件なら電話しただろうに。

つまり、同じ「電話する」という出来事でも、
正しかったのか可能だったのか条件つきの結果なのかで、使う助動詞が変わります。

なお、p.p.past participle(過去分詞) のことです。

代表例は次の通りです。

  • go → gone
  • eat → eaten
  • do → done
  • see → seen
  • take → taken

形はいつも、

助動詞 + have + 過去分詞

です。

should have の意味と使い方

should have は、まず 「〜すべきだったのに」 と覚えるのが基本です。

ただし、実際には意味が2つあります。

  • 後悔・反省・軽い非難
  • 〜したはずだ、という期待や見込み

ここを分けて理解すると、かなりすっきりします。

should have = 〜すべきだったのに

これは最もよく使う意味です。

「それが正しい行動だったのに、実際はそうしなかった」というニュアンスです。

例文を見てみましょう。

  • I should have studied harder.
    もっと勉強すべきだったのに。
  • We should have left earlier.
    もっと早く出発すべきだったのに。
  • You should have told me the truth.
    本当のことを私に話すべきだったのに。

この用法では、後悔・反省・相手への軽い非難が入ることが多いです。

自分に対して使えば後悔になり、
相手に対して使えば「そうしてほしかったのに」という感じになります。

shouldn’t have = 〜するべきではなかったのに

否定になると意味もよく出ます。

  • I shouldn’t have said that.
    あんなこと言うべきではなかった。
  • He shouldn’t have spent so much money.
    そんなにお金を使うべきではなかった。

これは、実際にはしてしまったけれど、しない方がよかったという形です。

整理するとこうです。

スクロールできます
意味
should have doneするべきだったのに、しなかった
shouldn’t have doneするべきではなかったのに、してしまった

should have = 〜したはずだ

should have には、もう1つ大事な意味があります。

それが 「〜したはずだ」 です。

  • She should have arrived by now.
    彼女はもう着いているはずだ。
  • The train should have left already.
    電車はもう出発しているはずだ。

このときの should have は、後悔ではなく、予定・常識・状況から見た見込みです。

見分け方はシンプルです。

「〜すべきだったのに」と言えそうなら後悔系
「〜したはずだ」と自然なら見込み系

たとえば次の文は見込みです。

  • He should have finished work by now.
    彼はもう仕事を終えているはずだ。

ここで「彼は仕事を終えるべきだったのに」だと不自然です。
だから、この should have は 見込みだと判断できます。

should have のコアイメージ

should have を一言でまとめるなら、「本来そうであるのが自然だった」 です。

そこから、

  • 実際はしなかった → 後悔・非難
  • 当然もうそうなっている → 見込み・期待

という2方向に広がります。

could have の意味と使い方

could have も、意味が1つだけではありません。

よく出るのは次の2つです。

  • 〜できたのに
  • 〜だったかもしれない

つまり、could have は 可能性 が中心です。

could have = 〜できたのに

これは「その気になればできた」「条件はあった」という意味です。

  • I could have helped you.
    あなたを手伝えたのに。
  • We could have won the game.
    その試合は勝てたのに。
  • She could have passed the test.
    彼女は試験に受かれたのに。

この用法では、実際にはしなかった・できなかったことが背景にあります。

should have との違いはここです。

  • I should have called you.
    電話するのが正しかったのに。
  • I could have called you.
    電話すること自体は可能だったのに。

前者は 正しさ、後者は 可能性 に重点があります。

could have = 〜だったかもしれない

could have は、過去についての推測でも使えます。

  • She could have forgotten my message.
    彼女は私のメッセージを忘れたのかもしれない。
  • It could have been worse.
    もっとひどいことになっていたかもしれない。
  • He could have taken the wrong train.
    彼は間違った電車に乗ったのかもしれない。

この意味の could have は、may have / might have に近いことがあります。

ただし、could have は文脈によって
「可能だったのに」
「かもしれない」 のどちらにもなれるので、前後関係が大事です。

could have のコアイメージ

could have は、まとめると 「その可能性はあった」 です。

そこから、

  • 実行可能だった → 〜できたのに
  • 起きた可能性がある → 〜だったかもしれない

という2つの意味が生まれます。

would have の意味と使い方

would have は、3つの中でいちばん 「条件」 と結びつきやすい表現です。

基本は 「もし〜なら、〜しただろうに」 です。

would have = 〜しただろうに / 〜だっただろうに

  • I would have gone with you.
    あなたと一緒に行っただろうに。
  • She would have been happy.
    彼女はうれしかっただろうに。
  • They would have arrived earlier.
    彼らはもっと早く着いただろうに。

この形は、現実には起きなかった過去の結果を表します。

つまり、たられば の世界です。

if がある形で考えるとわかりやすい

would have は、仮定法過去完了でよく使います。

  • If I had known the truth, I would have told you.
    もし本当のことを知っていたら、あなたに話しただろうに。
  • If we had left earlier, we would have caught the train.
    もっと早く出ていたら、その電車に乗れただろうに。

このとき、

if節 = 条件
would have節 = その結果

です。

初心者はここをセットで覚えると理解しやすいです。

if が省略されることも多い

会話では、if の部分が出てこないこともよくあります。

  • I would have helped, but I was busy.
    手伝っただろうけど、忙しかった。
  • I would have called you, but I lost your number.
    電話しただろうけど、番号をなくした。

このように、後ろに but で理由が来ると、
「本当はそうするつもりだったが、できなかった」というニュアンスが出ます。

would have は「気持ち」や「意志」がにじむこともある

would have は単なる結果だけでなく、
その条件なら自分はそうしたつもりだった
という気持ちが入ることがあります。

  • I would have gone, but I had to work.
    行きたかったし、条件が合えば行ったのに。

このため、could have よりも 意志 が感じられやすいです。

should have / could have / would have の使い分け

ここがいちばん大事です。

迷ったら、次の順番で考えてください。

1. 正しい行動を言いたいなら should have

「それをするのがよかった・当然だった」と言いたいなら should have です。

  • I should have apologized.
    謝るべきだった。

これは、正解の行動に目が向いています。

2. 可能だったことを言いたいなら could have

「やろうと思えばできた」と言いたいなら could have です。

  • I could have apologized.
    謝ることはできた。

これは、能力・状況・チャンスがあったことに目が向いています。

3. 条件つきの結果を言いたいなら would have

「もし条件がそろっていたら、そうなった」と言いたいなら would have です。

  • I would have apologized if I had seen him.
    彼に会っていたら謝っただろうに。

これは、仮定の結果に目が向いています。

3つを並べると違いがよく見える

たとえば「電話」にすると違いが見えやすいです。

  • I should have called you.
    電話すべきだったのに。
    電話するのが正解だった
  • I could have called you.
    電話することはできたのに。
    電話は可能だった
  • I would have called you if I had known.
    知っていたら電話しただろうに。
    条件があれば電話した

日本語ではどれも少し似て見えますが、
英語では注目しているポイントが違うのです。

「〜したのに」を英語で言うときの考え方

日本語の「〜したのに」は便利ですが、英語では1つに決まりません。

どの意味の「のに」なのかを見分ける必要があります。

後悔の「のに」なら should have

  • もっと早く寝ればよかったのに。
    → I should have gone to bed earlier.

可能性の「のに」なら could have

  • もっと早く寝ることはできたのに。
    → I could have gone to bed earlier.

仮定の結果の「のに」なら would have

  • もっと早く寝ていたら、元気だっただろうに。
    → I would have felt better if I had gone to bed earlier.

このように、日本語からそのまま訳すのではなく、意味の向きを見ることが大切です。

よくある間違い

ここでは、学習者が特につまずきやすい点を整理します。

have の後ろを原形にしてしまう

誤り

  • should have go
  • could have do
  • would have eat

正しくは

  • should have gone
  • could have done
  • would have eaten

have の後ろは 過去分詞 です。

if節に would have を入れてしまう

誤り

  • If I would have known, I would have helped.

正しくは

  • If I had known, I would have helped.

仮定法過去完了では、

  • if節 → had + 過去分詞
  • 結果節 → would have + 過去分詞

が基本です。

should of / could of / would of と書いてしまう

会話では should’ve / could’ve / would’ve が「〜of」のように聞こえることがあります。

でも、書くときは have が正解です。

  • should have
  • could have
  • would have

of は誤りなので注意してください。

会話でよく出る短縮形

会話では次の形がとてもよく使われます。

  • should’ve
  • could’ve
  • would’ve

発音ではかなり短くなりますが、意味は同じです。

ただし、初心者のうちはまず 省略しない形 で理解するのがおすすめです。

その方が構造を見失いません。

迷ったときの最終チェック

最後に、1秒で見分けるためのコツをまとめます。

should have

  • それが正解だった
  • 後悔している
  • 軽く責めている
  • あるいは「もう〜したはずだ」と見込んでいる

could have

  • それは可能だった
  • チャンスはあった
  • または「〜だったかもしれない」と推測している

would have

  • 条件があればそうなった
  • 現実には起きなかった
  • 「たられば」の結果を言っている

この3つを一言で言うなら、こうです。

should have = 正しさ
could have = 可能性
would have = 仮定の結果

まとめ

should have / could have / would have の違いは、次のように整理すると覚えやすいです。

スクロールできます
表現覚え方
should haveそうするのがよかった
could haveそうすることは可能だった
would haveその条件ならそうなった

最後に、例文を3つ並べて終わります。

  • I should have studied harder.
    もっと勉強すべきだった。
  • I could have studied harder.
    もっと勉強することはできた。
  • I would have studied harder if I had known the result.
    結果を知っていたら、もっと勉強しただろうに。

この3文を見分けられるようになれば、
助動詞+have p.p. の基本はかなり整理できています。

丸暗記ではなく、
正しさなのか、可能性なのか、条件つきの結果なのか
を見て判断していきましょう。

この記事を書いた人

英語表現の意味・違い・使い分け、英語例文・英語メール・会話フレーズ、英会話のコツ・勉強法、英検・TOEIC・TOEFLの対策方法、英語学習アプリ・オンライン英会話・英語コーチングなどの情報を発信しています。
自身の英語学習経験と、教材・学習サービスの利用経験をもとに、初心者にもわかりやすく、実際に役立つ情報を重視して記事を作成しています。記事は辞書・公式情報・教材情報などを確認し、必要に応じて内容を更新しています。

目次