英文法:仮定法過去完了

問中 ( 正解:問|不正解:問 )
達成率
%


その他 文法一覧へ戻る リセット
このページの使い方
1
動画で見る
まず全体像をつかむ
2
解説で理解する
「なぜ」が分かる
3
クイズで定着
上のボタンから挑戦
英語漬け解説動画仮定法過去完了を動画でサクッと理解する
仮定法過去完了の解説動画

仮定法過去完了は「過去の事実と反対のこと」を想像して言う言い方です。「If 主語 had 過去分詞 …, 主語 would have 過去分詞 …」の形で、「あのとき〜していたら、〜だっただろうに」という後悔や反実仮想を表します。

1仮定法過去完了の基本の形と意味

🕰️
「過去の事実と反対」を言うのが仮定法過去完了!形は「If 主語 had 過去分詞 …, 主語 would have 過去分詞 …」。「あのとき〜していたら、〜だっただろうに」という意味になります。
If 主語 + had + 過去分詞
, 主語 + would have + 過去分詞

→ If I had studied harder, I would have passed the exam.(もっと熱心に勉強していたら、試験に合格していただろうに。)

POINT
「過去の話」なのに had + 過去分詞(過去完了)を使うのは、時制をわざと1つ前にずらして「これは現実ではない」と示すためです。実際には「勉強しなかった」「合格しなかった」という事実があります。
英語日本語
If I "
had studied
" harder, I "
would have passed
" the exam.
もっと熱心に勉強していたら、試験に合格していただろうに。
If it "
had not rained
", we "
would have gone
" hiking.
雨が降らなかったら、私たちはハイキングに行っていただろうに。
If he "
had left
" earlier, he "
would have caught
" the train.
彼がもっと早く出発していたら、その電車に間に合っていただろうに。
If she "
had known
" your address, she "
would have written
" to you.
彼女があなたの住所を知っていたら、あなたに手紙を書いていただろうに。
If I "
had had
" more money, I "
would have bought
" that bike.
もっとお金を持っていたら、私はあの自転車を買っていただろうに。

2仮定法過去との違い(時制のズレ)

🔀
「今」の話なら had なし、「過去」の話なら had あり!仮定法過去=現在の事実と反対。仮定法過去完了=過去の事実と反対。形が1段階だけ古くなります。
If I had time, I would help you.
(今、時間がないので手伝えない)
1つ過去へ
If I had had time, I would have helped you.
(あのとき時間がなくて手伝えなかった)
POINT
見分け方は簡単です。if節が過去形 → 仮定法過去(今の話)、if節が過去完了形(had + 過去分詞) → 仮定法過去完了(過去の話)。帰結節も would + 原形would have + 過去分詞 と必ず対応します。
▶ 直説法・仮定法過去・仮定法過去完了の比べ方を見る
種類if節(条件)帰結節(結果)いつの話
直説法(ただの条件)
If it rains,
I will stay home.
これからの話(起こりうる)
仮定法過去
If it rained,
I would stay home.
今の事実と反対
仮定法過去完了
If it had rained,
I would have stayed home.
過去の事実と反対
英語日本語
If I "
were
" rich, I "
would buy
" a big house.
(今)お金持ちなら、大きな家を買うのに。
If I "
had been
" rich, I "
would have bought
" a big house.
(あのとき)お金持ちだったら、大きな家を買っていただろうに。
If she "
knew
" the answer, she "
would tell
" us.
(今)彼女が答えを知っていれば、私たちに教えてくれるのに。
If she "
had known
" the answer, she "
would have told
" us.
(あのとき)彼女が答えを知っていたら、私たちに教えてくれただろうに。

3would / could / might have の使い分け

💡
形は同じ「have + 過去分詞」、変わるのは助動詞の意味だけ!would=〜しただろうに、could=〜できただろうに、might=〜したかもしれないのに。
結果の予想(〜しただろうに)
would have
可能・能力(〜できただろうに)
could have
控えめな推量(〜したかも)
might have
POINT
どれを選んでも 助動詞 + have + 過去分詞 の形は変わりません。would have は「していただろう」と言い切るのに対し、might have は「したかもしれない」と自信を弱めるのが違いです。
英語日本語
If you had asked me, I "
would have helped
" you.
私に頼んでくれていたら、手伝っていただろうに。
If you had asked me, I "
could have helped
" you.
私に頼んでくれていたら、手伝うことができただろうに。
If you had asked me, I "
might have helped
" you.
私に頼んでくれていたら、手伝ったかもしれないのに。
If we had left at noon, we "
could have arrived
" on time.
正午に出発していたら、時間通りに着けただろうに。
If he had taken the medicine, he "
might have gotten
" better.
彼がその薬を飲んでいたら、よくなったかもしれないのに。

4if の省略と倒置(Had I known …)

🔁
if を消したら、had を主語の前に出す!「Had 主語 過去分詞 …」の形。意味は「If 主語 had 過去分詞 …」とまったく同じです。
If I had known the truth, …
if を消して had を前へ
Had I known the truth, …
POINT
文頭が Had + 主語 + 過去分詞 で始まっていたら「あ、if が省略された仮定法過去完了だ」と気づきましょう。If it had not been for 〜(〜がなかったら) は倒置すると Had it not been for 〜 になります。
英語日本語
"
Had I known
" the truth, I would have told you.
真実を知っていたら、あなたに話していただろうに。
"
Had she been
" here, she would have helped us.
彼女がここにいたら、私たちを助けてくれただろうに。
"
Had it not been for
" your advice, I would have failed.
あなたの助言がなかったら、私は失敗していただろう。
"
Had you come
" earlier, you could have met him.
もっと早く来ていたら、彼に会えただろうに。

5混合仮定法(過去にああしていたら、今こうなのに)

🧩
過去の条件 + 今の結果 なら、形を混ぜる!if節は仮定法過去完了、帰結節は仮定法過去(would + 動詞の原形)にします。
If 主語 + had + 過去分詞
(過去の条件)
, 主語 + would + 動詞の原形
(今の結果)

→ If I had studied harder, I would be a doctor now.(もっと熱心に勉強していたら、今ごろ医者になっているのに。)

POINT
帰結節に now / today などの「今」を表す語があれば、混合仮定法のサインです。「would have + 過去分詞」にしないように注意しましょう。
英語日本語
If I had taken the train, I "
would be
" there now.
その電車に乗っていたら、今ごろそこにいるのに。
If she had studied medicine, she "
would be
" a doctor now.
彼女が医学を学んでいたら、今ごろ医者になっているのに。
If he had not eaten so much, he "
would not be
" sick today.
彼があんなに食べ過ぎていなければ、今日は具合が悪くないのに。
If we had saved money, we "
could buy
" a car now.
お金をためていたら、今、車を買えるのに。

6I wish / as if で使う仮定法過去完了

😢
「I wish 主語 had 過去分詞」=「〜していればよかったのに」過去にできなかったことへの後悔を表します。if がなくても「had + 過去分詞」なら仮定法です。
I wish I had studied harder.
I'm sorry I didn't study harder.

→ どちらも「もっと熱心に勉強しておけばよかった(実際はしなかった)」という意味です。

POINT
as if / as though + 主語 + had + 過去分詞 は「まるで〜だったかのように」。主節より前の出来事を表すときにこの形を使います。If only も I wish とほぼ同じ意味で、後悔の気持ちがより強くなります。
英語日本語
I wish I "
had studied
" harder.
もっと熱心に勉強しておけばよかった。
I wish she "
had come
" to the party.
彼女がパーティーに来てくれていたらよかったのに。
He talks "
as if he had seen
" the accident.
彼はまるでその事故を見たかのように話す。
She looked "
as if she had cried
".
彼女はまるで泣いていたかのような顔をしていた。
"
If only
" I had listened to your advice!
あなたの助言を聞いていさえすればよかったのに。

仮定法過去完了の よくある質問(FAQ)

仮定法過去と仮定法過去完了はどう見分けますか?

if節の動詞の形で見分けます。if節が過去形(If I had a car…)なら「今の事実と反対」の仮定法過去、if節が過去完了形(If I had had a car…)なら「過去の事実と反対」の仮定法過去完了です。帰結節も、would + 動詞の原形なら仮定法過去、would have + 過去分詞なら仮定法過去完了と対応しています。

If I had had のように had が2つ続くのはなぜですか?

1つ目の had は過去完了をつくる助動詞、2つ目の had は「持っていた」という意味の動詞 have の過去分詞です。つまり have の過去完了形が had had になります。同じように、If I had been … は be動詞の過去完了形です。

would have と could have と might have はどう使い分けますか?

would have + 過去分詞は「〜しただろうに」という結果の予想、could have + 過去分詞は「〜できただろうに」という可能性や能力、might have + 過去分詞は「〜したかもしれないのに」という控えめな推量を表します。意味が変わるだけで、形(have + 過去分詞)はすべて同じです。

Had I known … のように if がない文は何ですか?

仮定法では if を省略でき、そのとき had を主語の前に出す倒置が起こります。If I had known the truth, … と Had I known the truth, … は同じ意味です。かたい文章やあらたまった場面でよく使われます。

「もしあのとき〜していたら、今〜なのに」はどう書きますか?

if節は仮定法過去完了、帰結節は仮定法過去にする混合仮定法を使います。例えば If I had studied harder, I would be a doctor now.(もっと熱心に勉強していたら、今ごろ医者になっているのに)のようになります。帰結節に now や today があれば混合仮定法のサインです。

参考資料:文部科学省平成29年度学習指導要領

↑Topへ