こんにちは、すなおです!
「You could have told me!」「I should have studied…」――海外ドラマや映画、日常会話でめちゃくちゃ出てくる could have / would have / should have + 過去分詞。学校で習ったはずなのに、いざ使うとなると難しく感じて、なかなか使いこなせない形ですよね。
- ✅ could / would / should have、結局どう違うの?
- ✅ なんで
haveが付くの? - ✅ could have=「したかも」? 意味が複数あって混乱する
- ✅ coulda / shoulda みたいな崩れた発音が聞き取れない
でも大丈夫。3つは 「過去のもしも(実際はそうじゃなかった)を振り返る形」という同じ仲間。過去の“振り返り方”だけが違うと分かれば、一気にスッキリします。

「すべきだった」「できたのに」…どれも似てて、could と would と should の使い分けが正直あいまいで…。

そこは1枚のイメージで解決できるよ。「過去のもしも」を3つの角度から見てるだけなんだ。順番に整理しよう!
コアイメージ|“過去のもしも(実際はそうじゃなかった)”
助動詞 + have + 過去分詞 は、ぜんぶ 「過ぎたことを振り返って、“本当はこうできた/こうしてた/こうすべきだった”と語る形」です。ポイントは、実際にはそうならなかったこと。下の1枚でイメージをつかみましょう。

💡 Point!
have + 過去分詞=「過去を振り返る」の目印。そこに乗る助動詞で“振り返り方”が変わります。
・could have=できたのに
・would have=(もし〜なら)してたのに
・should have=すべきだったのに
どれも「実際はそうじゃなかった」のがミソです。

have+過去分詞が“過去を振り返る”の目印で、前に付く助動詞で意味が変わるんですね…!丸暗記してたけど、これなら納得です。
could / would / should have 違いマップ
細かい説明の前に、まずは全体像から。3つの違いは “振り返り方”です。
可能性・能力はあった(でもしなかった/+「〜できたでしょ」と軽く責める)
「もし〜だったら」の結果(条件が違えば、そうしてた・そうなってた)
そうするのが正しかった(でもしなかった)=後悔・非難
| 形 | 意味(〜のに) | 気持ち |
|---|---|---|
| could have+pp | 〜できたのに | 可能性/軽い非難 |
| would have+pp | (もし〜なら)〜してたのに | 仮定の結果 |
| should have+pp | 〜すべきだったのに | 後悔・強めの非難 |
では、1つずつ見ていきましょう。
could have +過去分詞|“〜できたのに”
could have は、「やろうと思えばできた(可能性・能力はあった)。でも実際はしなかった」。相手に対して使うと 「〜できたでしょ/〜してくれてもよかったのに」と軽く責めるニュアンスにもなります。
I could have won, but I made a mistake.(勝てたのに、ミスしちゃった)You could have told me!(教えてくれてもよかったのに!=軽く責める)
💡 もう1つの顔:「〜したかも」(過去の推量)
could have には「〜したかもしれない」という過去の推量の意味もあります。He could have missed the train.(電車に乗り遅れたのかも)
※この“したかも”の仲間たちは、このあとの📎で紹介します。

could have って「できたのに」だけじゃなく「したかも」もあるのか…!場面によって意味が変わるんだ。
would have +過去分詞|“(もし〜なら)〜してたのに”
would have は、「もし〜だったら、〜してた・〜だったのに」。現実とは違う“もしも”の結果を表します(実際はそうならなかった)。if とセットで使うことが多いです。
If you'd asked, I would have helped.(頼んでくれてたら、手伝ったのに)I would have come, but I was sick.(行きたかったけど、体調が悪くて行けなかった)
※ If you'd asked の 'd は had の短縮です(=If you had asked)。would の短縮ではないので注意。
💡 これは「仮定法」の世界
would have は、「もし過去が違ってたら…」という仮定法(過去完了)の結果部分そのもの。if の文との組み合わせを深掘りしたい人は → 仮定法 完全ガイドへ。
should have +過去分詞|“〜すべきだったのに”
should have は、「〜すべきだった(のにしなかった)」。後悔や、相手への強めの非難を表します。3つの中でいちばん「やっちゃった…」感が強い形です。
I should have studied harder.(もっと勉強すべきだった…=後悔)You should have told me earlier.(もっと早く言うべきだったでしょ=非難)
💡 もう1つの顔:「〜してるはず」(当然の推量)
should have には「(当然)〜してるはず」の意味もあります。The train should have arrived by now.(電車はもう着いてるはず)
【核心】同じ場面で3つ並べてみる
いちばん違いが分かるのは、同じ状況に3つを当てはめてみること。「友達が連絡なしで来なかった」場面で比べてみましょう。
| 形 | 例文 | ニュアンス |
|---|---|---|
| could have | You could have texted me. |
連絡できたよね(手段はあった) |
| should have | You should have texted me. |
連絡すべきだったでしょ(責める) |
| would have | (If you had known about the change,) you would have texted me. |
(予定が変わったって知ってたら)連絡くれてたよね(仮定の結果) |
※ text は動詞で「(スマホで)メッセージを送る」。日本語の「連絡」より狭く、電話は含みません。
※ would have の文では、(If you had known about the change,)=「もし予定が変わったって知ってたら」のような if の部分を言わずに省略することが会話ではよくあります。

同じ場面で並べると一発ですね…!could=できた、should=すべきだった、would=(もし〜なら)してた。“振り返り方”が違うだけなんだ!
発音|“ア”に縮めて聞き取る(coulda / woulda / shoulda)
ネイティブは have を弱いあいまい母音 /ə/ に縮めて言います。だから速い会話では could have が /kʊdə/(参考:クダ)みたいに聞こえます。音で知っておくとリスニングがラクになります。
💡 “have→/ə/”でこう聞こえる(5つまとめて)
・could have /kʊd hæv/ → coulda /kʊdə/(参考:クダ)
・would have /wʊd hæv/ → woulda /wʊdə/(参考:ウダ)
・should have /ʃʊd hæv/ → shoulda /ʃʊdə/(参考:シュダ)
・must have /mʌst hæv/ → musta /mʌstə/(参考:マスタ)
・might have /maɪt hæv/ → mighta /maɪtə/(参考:マイタ)
※どれも会話で頻出。have が /ə/ に縮む、と知ってるだけで聞き取れます(書くときは省略しないのが基本)。
こういう“音が弱く縮む・消える”現象をリダクションと言います。仕組みから知りたい人は 英語のリダクション完全ガイド|消える音3パターン をどうぞ。
could / would / should have 定着クイズ
“振り返り方”で選べるか試してみましょう。( )はどっち?
Q1. I ( could / should ) have studied harder. (もっと勉強しておくべきだった…)
Q2. If I had known, I ( would / should ) have come. (もし知ってたら、来てたのに)
Q3. You ( could / would ) have called me. You had time! (電話くれてもよかったでしょ。時間あったんだから!)
Q4. She isn’t here. She ( could / should ) have missed the bus. (彼女まだ来てないね。バスに乗り遅れたのかも)
Q5. The package ( could / should ) have arrived by now. (荷物、もう届いてるはずなんだけど)
▶ 答えを見る
Q1. should(「すべきだった」の後悔は should have。could have だと「勉強できたのに」で意味がズレる)
Q2. would(「もし〜だったら」の結果は would have。If+had+過去分詞 とセット=仮定法)
Q3. could(「できたのに(してくれなかった)」の軽い非難は could have。”you had time”=手段・可能性はあった、がヒント)
Q4. could(「〜したかも」の弱い推量は could have の“もう1つの顔”。should have だと「当然乗り遅れてるはず」と強い推量になり、「〜のかも」に合わない)
Q5. should(「当然〜してるはず」は should have の“もう1つの顔”。could have だと「届いたかも」の弱い推量になり、「〜はず」に合わない)
まとめ|“過去のもしも”を3つの角度で
3つは丸暗記しなくて大丈夫。「過去のもしも(実際はそうじゃなかった)」を、3つの角度から見てるだけです。

- could have:〜できたのに(可能性・能力/軽い非難)+「〜したかも」
- would have:(もし〜なら)〜してたのに(仮定の結果=仮定法)
- should have:〜すべきだったのに(後悔・非難)+「〜してるはず」
- 発音:have は「ア」に縮む(coulda / woulda / shoulda / musta / mighta)

「〜のに」で丸暗記しないこと。could=できた/would=(もし〜なら)してた/should=すべきだった、で“振り返り方”を選べば、もう迷わないよ!
関連記事|助動詞をもっと深く学びたい人へ
- 助動詞 完全ガイド|コアイメージで使い分けマスター(could を含む9つの助動詞を整理)
- must have と can’t have の使い方(“過去を推理する”ファミリーのまとめ)
- may と might の違い(might / may have =過去の推量はこちら)
- 「could」3パターンで完璧に使いこなす!(could の基本はこちら)
- can / be able to / be capable of の違い
- 仮定法 完全ガイド(would have の if 構文を深掘り)


コメント
[…] また、couldで過去の表現をしたい際に使われるcould haveについてcould haveは過去の話に必須!〜3つの使い方〜の記事で詳しく解説しているのでよければこちらも参考にしてみてください! […]