「もしもっと勉強していたら、試験に合格していたのに」「もし昨日早く寝ていたら、今こんなに眠くないのに」
英語では、このように過去の事実とは異なることを想像する場合に、仮定法過去完了を使います。
また、過去の出来事が現在に影響していることを表す場合には、混合仮定法を使います。
この記事では、仮定法過去完了と混合仮定法の基本形・意味・作り方・違いを、例文とともにわかりやすく解説します。
1.仮定法過去完了とは?
仮定法過去完了とは、過去の事実とは異なることを仮定して、その結果を想像する表現です。
例えば、「もしもっと勉強していたら、試験に合格していたのに」という文を考えてみましょう。
実際には十分に勉強しなかったため、試験に合格できなかった状況を想定しています。
この文では、過去の事実とは異なる条件を表すために、if節にhad studied、主節にwould have passedが使われています。
▼仮定法過去との違い
| 種類 | 表す内容 | 日本語の意味 |
| 仮定法過去 | 現在の事実とは異なる仮定など | もし〜なら、…するのに |
| 仮定法過去完了 | 過去の事実とは異なる仮定 | もし〜していたら、…していただろうに |
仮定法過去は主に現在のこと、仮定法過去完了は過去のことを表す点が大きな違いです。
2.仮定法過去完了の基本形
仮定法過去完了は、次の形で作ります。
If+主語+had+過去分詞, 主語+would / could / might+have+過去分詞.
=「もし〜していたら、…していただろうに/できただろうに/したかもしれないのに」
| 文の部分 | 形 | 役割 |
| if節 | had+過去分詞 | 過去の事実とは異なる条件 |
| 主節 | would / could / might+have+過去分詞 | 仮定した場合の過去の結果 |
いずれも、実際には起こらなかった過去の状況を想像しています。
仮定法過去完了では、if節にhad+過去分詞、 主節にwould / could / might+have+過去分詞を使います。
現在の完了形ではなく、過去の事実とは異なる仮定を表すことが重要です。
3.would have・could have・might haveの使い分け
仮定法過去完了の主節では、would haveだけでなく、could haveやmight haveも使われます。
| 表現 | 意味 | ニュアンス |
| would have+過去分詞 | 詞 〜していただろうに | 仮定した場合の結果 |
| could have+過去分詞 | 〜できただろうに | 過去の能力・可能性 |
| might have+過去分詞 | 〜したかもしれないのに | 不確かな可能性 |
① would have|〜していただろうに
過去の条件が違っていた場合、どのような結果になっていたかを表します。
実際には十分なお金がなく、バッグを買わなかった状況を想定しています。
② could have|〜できただろうに
過去の条件が違っていた場合、何かができた可能性を表します。
「もっと練習していれば、勝つことができた」という可能性を表しています。
③ might have|〜したかもしれないのに
過去の条件が違っていた場合、何かが起こったかもしれないことを表します。
招待していたとしても、実際に来たかどうかは分からないというニュアンスです。
4.仮定法過去完了の否定文
仮定法過去完了では、if節と主節のどちらも否定形にできます。
① if節を否定する場合
if節を否定するときは、had not(hadn’t)+過去分詞を使います。
この文では、実際にはバスに乗り遅れたことを想定しています。
② 主節を否定する場合
主節を否定するときは、would not have(wouldn’t have)+過去分詞などを使います。
否定する位置によって意味が変わるため、if節と主節を分けて考えましょう。
5.混合仮定法とは?
混合仮定法とは、仮定する条件と、その結果が表す時間が異なる仮定法です。
特によく使われるのが、過去の事実とは異なる条件を仮定して、現在の結果を表す形です。
例えば、「もし昨日早く寝ていたら、今こんなに眠くないのに」という文を考えてみましょう。
過去の行動が違っていれば、現在の状態も違っていたことを表しています。
この文では、if節が過去のこと、主節が現在のことを表しています。
▼混合仮定法の基本形
If+主語+had+過去分詞, 主語+would / could / might+動詞の原形.
=「もし過去に〜していたら、今…なのに」
| 文の部分 | 形 | 表す時間 |
| if節 | had+過去分詞 | 過去 |
| 主節 | would / could / might+動詞の原形 | 現在 |
混合仮定法では、過去の条件と現在の結果を組み合わせることができます。
if節にはhad+過去分詞、現在の結果を表す主節にはwould / could / might+動詞の原形を使います。
6.仮定法過去完了と混合仮定法の違い
2つの違いは、主節が表す時間にあります。
| 比較項目 | 仮定法過去完了 | 混合仮定法(過去→現在) |
| if節 | 過去の仮定 | 過去の仮定 |
| 主節 | 過去の結果 | 現在の結果 |
| 主節の形 | would have+過去分詞 | would+動詞の原形 |
| 意味 | 〜していたら、…していただろうに | 〜していたら、今…なのに |
① 仮定法過去完了|過去の条件 → 過去の結果
過去の勉強と、過去の試験結果について述べています。
② 混合仮定法|過去の条件 → 現在の結果
過去の勉強と、現在の仕事について述べています。
なお、混合仮定法には「現在の状態が違っていれば、過去の結果も違っていた」という逆の組み合わせもあります。
このように、if節と主節がそれぞれどの時点を表しているかを確認することが大切です。
7.仮定法過去完了の作り方|3ステップ
仮定法過去完了の英文は、次の3ステップで作れます。
まずは、過去に実際には起こらなかったことを想像します。
「もっと早く出発していたら、電車に間に合っていたのに」
実際には早く出発せず、電車に間に合わなかった状況を想定します。
過去の条件を「If+主語+had+過去分詞」で表します。
If I had left earlier,
「もしもっと早く出発していたら」という意味です。
仮定した場合の過去の結果を表します。
I would have caught the train.
「電車に間に合っていたのに」という意味です。
混合仮定法にする場合は、主節を現在の結果を表す形に変えます。
8.仮定法過去完了・混合仮定法でよくある間違い
① if節に過去形を使ってしまう
過去の事実とは異なる仮定を表す場合、if節にはhad+過去分詞を使います。
❌ 誤った文
If I studied harder, I would have passed the exam.
⭕ 正しい文
If I had studied harder, I would have passed the exam.
もっと一生懸命勉強していたら、試験に合格していたのに。
過去の事実とは異なる仮定を表すため、had+過去分詞を使います。
② wouldの後ろにhaveを入れ忘れる
仮定法過去完了で過去の結果を表すときは、would have+過去分詞を使います。
❌ 誤った文
If I had left earlier, I would caught the train.
⭕ 正しい文
If I had left earlier, I would have caught the train.
もっと早く出発していたら、電車に間に合っていたのに。
過去の結果には、would have+過去分詞を使います。
③ 混合仮定法の主節を過去の形にしてしまう
混合仮定法では、過去の条件から現在の結果を表す場合があります。
❌ 意図した意味と異なる文
If I had studied harder, I would have had a better job.
⭕ 現在の結果を表す文
If I had studied harder, I would have a better job now.
もっと一生懸命勉強していたら、今はもっと良い仕事に就いているだろうに。
現在の結果を表す場合は、would+動詞の原形を使います。ここでのhaveは「持っている」という意味の一般動詞です。
9.練習問題
仮定法過去完了と混合仮定法の違いを確認しましょう。
問題1|空欄に適切な形を入れましょう。
If I( )harder, I would have passed the exam.
(study)
回答を見る
had studied
過去の事実とは異なる仮定なので、if節にはhad+過去分詞を使います。
問題2|正しい語を選びましょう。
If she had left earlier, she(would catch / would have caught)the train.
回答を見る
would have caught
過去の結果を表しているため、would have+過去分詞を使います。
問題3|空欄に適切な形を入れましょう。
If I had saved more money, I( )rich now.
(be)
回答を見る
would be
過去の条件から現在の結果を表す混合仮定法です。現在の結果にはwould+動詞の原形を使います。
問題4|日本語に合う英文を作りましょう。
もし昨夜もっと早く寝ていたら、今こんなに眠くないのに。
回答を見る
If I had gone to bed earlier last night, I wouldn’t be so sleepy now.
過去の条件にはhad gone、現在の結果にはwouldn’t beを使います。
問題5|誤った英文を正しく書き換えましょう。
If I had known the truth, I would told you.
回答を見る
If I had known the truth, I would have told you.
過去の結果を表すため、would have+過去分詞にします。
10.まとめ
仮定法過去完了と混合仮定法は、過去の出来事と結果の関係を表す重要な文法です。
・仮定法過去完了:過去の事実とは異なる仮定と、過去の結果を表す
・混合仮定法:過去の条件と現在の結果など、異なる時点を組み合わせる
・仮定法過去完了のif節にはhad+過去分詞を使う
・過去の結果にはwould / could / might+have+過去分詞を
・使う現在の結果にはwould / could / might+動詞の原形を使う
・if節と主節が、それぞれいつのことを表しているか確認する
まずは、「過去→過去」なのか「過去→現在」なのかを意識して英文を読むことが大切です。
次の記事では、未来の実現可能性が低い仮定を表す「仮定法未来」と、ifを省略する倒置表現について解説します。


コメント