仮定法過去完了・混合仮定法|意味・作り方・違いを解説

「もしもっと勉強していたら、試験に合格していたのに」「もし昨日早く寝ていたら、今こんなに眠くないのに」

英語では、このように過去の事実とは異なることを想像する場合に、仮定法過去完了を使います。

また、過去の出来事が現在に影響していることを表す場合には、混合仮定法を使います。

この記事では、仮定法過去完了と混合仮定法の基本形・意味・作り方・違いを、例文とともにわかりやすく解説します。

1.仮定法過去完了とは?

仮定法過去完了とは、過去の事実とは異なることを仮定して、その結果を想像する表現です。

例えば、「もしもっと勉強していたら、試験に合格していたのに」という文を考えてみましょう。

実際には十分に勉強しなかったため、試験に合格できなかった状況を想定しています。

If I had studied harder, I would have passed the exam.
もしもっと一生懸命勉強していたら、試験に合格していたのに。

この文では、過去の事実とは異なる条件を表すために、if節にhad studied、主節にwould have passedが使われています。

▼仮定法過去との違い

種類表す内容日本語の意味
仮定法過去現在の事実とは異なる仮定などもし〜なら、…するのに
仮定法過去完了過去の事実とは異なる仮定もし〜していたら、…していただろうに

仮定法過去は主に現在のこと、仮定法過去完了は過去のことを表す点が大きな違いです。

2.仮定法過去完了の基本形

仮定法過去完了は、次の形で作ります。

If+主語+had+過去分詞, 主語+would / could / might+have+過去分詞.
=「もし〜していたら、…していただろうに/できただろうに/したかもしれないのに」

文の部分形役割
if節had+過去分詞過去の事実とは異なる条件
主節would / could / might+have+過去分詞仮定した場合の過去の結果
If I had left earlier, I would have caught the train.
もっと早く出発していたら、その電車に間に合っていたのに。
If she had known the truth, she would have told us.
もし彼女が真実を知っていたら、私たちに話していただろうに。
If it had not rained, we would have played soccer.
もし雨が降っていなかったら、私たちはサッカーをしていたのに。

いずれも、実際には起こらなかった過去の状況を想像しています。

💡 ポイント

仮定法過去完了では、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|〜していただろうに

過去の条件が違っていた場合、どのような結果になっていたかを表します。

If I had had enough money, I would have bought the bag.
十分なお金があったら、そのバッグを買っていただろうに。

実際には十分なお金がなく、バッグを買わなかった状況を想定しています。

② could have|〜できただろうに

過去の条件が違っていた場合、何かができた可能性を表します。

If I had practiced more, I could have won the game.
もっと練習していたら、その試合に勝てたかもしれないのに。

「もっと練習していれば、勝つことができた」という可能性を表しています。

③ might have|〜したかもしれないのに

過去の条件が違っていた場合、何かが起こったかもしれないことを表します。

If I had invited her, she might have come to the party.
もし彼女を招待していたら、パーティーに来たかもしれないのに。

招待していたとしても、実際に来たかどうかは分からないというニュアンスです。

4.仮定法過去完了の否定文

仮定法過去完了では、if節と主節のどちらも否定形にできます。

① if節を否定する場合

if節を否定するときは、had not(hadn’t)+過去分詞を使います。

If I hadn’t missed the bus, I would have arrived on time.
もしバスに乗り遅れていなかったら、時間どおりに到着していたのに。

この文では、実際にはバスに乗り遅れたことを想定しています。

② 主節を否定する場合

主節を否定するときは、would not have(wouldn’t have)+過去分詞などを使います。

If I had known the truth, I wouldn’t have said that.
もし真実を知っていたら、そんなことは言わなかったのに。

否定する位置によって意味が変わるため、if節と主節を分けて考えましょう。

5.混合仮定法とは?

混合仮定法とは、仮定する条件と、その結果が表す時間が異なる仮定法です。

特によく使われるのが、過去の事実とは異なる条件を仮定して、現在の結果を表す形です。

例えば、「もし昨日早く寝ていたら、今こんなに眠くないのに」という文を考えてみましょう。
過去の行動が違っていれば、現在の状態も違っていたことを表しています。

If I had gone to bed earlier last night, I wouldn’t be so sleepy now.
もし昨夜もっと早く寝ていたら、今こんなに眠くないのに。

この文では、if節が過去のこと、主節が現在のことを表しています。

▼混合仮定法の基本形
If+主語+had+過去分詞, 主語+would / could / might+動詞の原形.
=「もし過去に〜していたら、今…なのに」

文の部分形表す時間
if節 had+過去分詞過去
主節would / could / might+動詞の原形現在
If I had studied English harder, I could speak it better now.
もし以前もっと一生懸命英語を勉強していたら、今もっと上手に話せるのに。
If she had taken that job, she would live in Tokyo now.
もし彼女があの仕事に就いていたら、今は東京に住んでいるだろうに。
If I had saved more money, I would have enough to buy a car now.
もしもっと貯金していたら、今は車を買えるだけのお金があるのに。
💡 ポイント

混合仮定法では、過去の条件と現在の結果を組み合わせることができます。

if節にはhad+過去分詞、現在の結果を表す主節にはwould / could / might+動詞の原形を使います。

6.仮定法過去完了と混合仮定法の違い

2つの違いは、主節が表す時間にあります。

比較項目仮定法過去完了混合仮定法(過去→現在)
if節過去の仮定過去の仮定
主節過去の結果現在の結果
主節の形would have+過去分詞would+動詞の原形
意味〜していたら、…していただろうに〜していたら、今…なのに

① 仮定法過去完了|過去の条件 → 過去の結果

If I had studied harder, I would have passed the exam.
もっと一生懸命勉強していたら、試験に合格していたのに。

過去の勉強と、過去の試験結果について述べています。

② 混合仮定法|過去の条件 → 現在の結果

If I had studied harder, I would have a better job now.
もっと一生懸命勉強していたら、今はもっと良い仕事に就いているだろうに。

過去の勉強と、現在の仕事について述べています。
なお、混合仮定法には「現在の状態が違っていれば、過去の結果も違っていた」という逆の組み合わせもあります。

If I were taller, I could have reached the shelf yesterday.
もし私の背がもっと高ければ、昨日その棚に手が届いたのに。

このように、if節と主節がそれぞれどの時点を表しているかを確認することが大切です。

7.仮定法過去完了の作り方|3ステップ

仮定法過去完了の英文は、次の3ステップで作れます。

STEP 1
過去の事実とは異なる条件を考える

まずは、過去に実際には起こらなかったことを想像します。

「もっと早く出発していたら、電車に間に合っていたのに」

実際には早く出発せず、電車に間に合わなかった状況を想定します。

↓
STEP 2
if節をhad+過去分詞にする

過去の条件を「If+主語+had+過去分詞」で表します。

If I had left earlier,

「もしもっと早く出発していたら」という意味です。

↓
STEP 3
主節にwould have+過去分詞を使う

仮定した場合の過去の結果を表します。

I would have caught the train.

「電車に間に合っていたのに」という意味です。

If I had left earlier, I would have caught the train.
もっと早く出発していたら、電車に間に合っていたのに。

混合仮定法にする場合は、主節を現在の結果を表す形に変えます。

If I had left earlier, I would be at the office now.
もっと早く出発していたら、今ごろ会社に着いているのに。

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を省略する倒置表現について解説します。

コメント

タイトルとURLをコピーしました