メインコンテンツまでスキップ

仮定法過去完了

「もっと早く出ていれば」「バックアップを取っていれば」のように、過去の事実とは違う状況を振り返るときに仮定法過去完了を使います。今からは変えられない出来事を想像する形です。

if+had+過去分詞​

If I had left earlier, I would have caught the train.

もっと早く出ていれば、電車に間に合ったのに。

速度 1.0 / 自動選択 / en-US

基本はif + 主語 + had + 過去分詞, 主語 + would / could / might have + 過去分詞です。この文では、実際には早く出ず、電車に間に合わなかった過去を振り返っています。

結果の形例文日本語訳
would have
If you had called, I would have answered.
速度 1.0 / 自動選択 / en-US
電話してくれていれば、出たのに。
could have
If we had saved a copy, we could have restored the file.
速度 1.0 / 自動選択 / en-US
コピーを保存していれば、ファイルを復元できたのに。
might have
If we had tested more carefully, we might have found the bug.
速度 1.0 / 自動選択 / en-US
もっと注意深くテストしていれば、不具合を見つけられたかもしれません。

wouldは想定する結果、couldは可能だったこと、mightは控えめな可能性です。「その対応があれば必ず防げた」と断定できるかにも注意して選びます。

仮定法過去との違い​

If I knew the password, I could open the file.

パスワードを知っていれば、ファイルを開けるのですが。

速度 1.0 / 自動選択 / en-US

If I had known the password, I could have opened the file.

パスワードを知っていれば、そのときファイルを開けたのですが。

速度 1.0 / 自動選択 / en-US

前者は現在の状況、後者は過去の場面です。日本語だけでは区別が見えにくいので、「今」か「そのとき」かを先に決めます。

過去へのwish・if only​

I wish I had checked the date.

日付を確認しておけばよかった。

速度 1.0 / 自動選択 / en-US

If only I had saved the file.

ファイルを保存しておけばよかったのに。

速度 1.0 / 自動選択 / en-US

wish / if only + had + 過去分詞で、過去への後悔や願望を表します。I wish I had more time.のhadは単なる過去形ですが、I wish I had checked ...はhad + 過去分詞です。

過去の条件と現在の結果を組み合わせる​

If I had saved the file, I would have it now.

ファイルを保存していれば、今そのファイルがあるのに。

速度 1.0 / 自動選択 / en-US

条件は過去なのでhad saved、結果は現在なのでwould + 原形です。ここでのhaveは「持っている」という動詞の原形で、would have + 過去分詞の完了の形ではありません。

時点が違う条件と結果を組み合わせる形を混合仮定と呼びます。何についていつのことを述べるかを、nowなどで明確にします。

if節を述べない過去の仮定​

過去の条件も、前置詞句や前後の文脈で伝えられます。

Without your help, we couldn't have finished on time.

あなたの助けがなければ、私たちは時間どおりに終えられなかったでしょう。

速度 1.0 / 自動選択 / en-US

I would have joined the call, but I was in another meeting.

別の会議に出ていなければ、通話に参加していたでしょう。

速度 1.0 / 自動選択 / en-US

最初の文はIf you hadn't helped us, ...に相当する条件、次の文は「別の会議がなければ」という条件を含みます。条件が見えないときは、何を想定しているかを確認します。

I would've・I'd have・that'd have​

I would've joined the call, but I was in another meeting.

別の会議に出ていなければ、通話に参加していたでしょう。

速度 1.0 / 自動選択 / en-US

I'd have joined the call, but I was in another meeting.

別の会議に出ていなければ、通話に参加していたでしょう。

速度 1.0 / 自動選択 / en-US

That'd have helped, but we didn't have time to try it.

それは役に立ったでしょうが、試す時間がありませんでした。

速度 1.0 / 自動選択 / en-US

I would'veとI'd haveは、どちらもここではI would haveです。That'd have helpedはThat would have helpedになります。'dはhadの短縮にも使いますが、標準的なこの形ではwould + have + 過去分詞と読み取ります。

I'd already checked the logs when you called.

あなたから電話があったときには、すでにログを確認していました。

速度 1.0 / 自動選択 / en-US

このI'd checkedはI had checkedで、事実の時間関係を表す過去完了です。短縮形やhad + 過去分詞だけを見て、仮定法だと決めつけません。短縮形の聴き取りは英会話の解説で練習できます。

should haveとの違い​

We should've tested thoroughly.

徹底的にテストしておくべきでした。

速度 1.0 / 自動選択 / en-US

この文は、実際の対応への反省を表す助動詞の完了形です。「〜していれば、〜だった」という条件と結果を述べているわけではありません。後悔を表せる点は共通しますが、I wish we had tested ...やIf we had tested ..., we would have ...とは文の形・意味を分けて考えます。

ifを省略する倒置​

Had I known about the change, I would have contacted you.は、If I had known about the change, ...と同じ条件を表します。改まった書き言葉などで使う形です。倒置でも確認します。

振り返りは仮定と事実を分ける

障害やトラブルを振り返るときは、まず実際に起きたことを確認します。仮定法は原因の証明ではありません。個人を責める言い方にならないよう、確認できた事実と改善案を分けて伝えます。

確認問題​

  1. If we had tested it, we ___ have found the bug.に、想定する結果を表す助動詞を入れてください。
  2. 「バックアップを取っておけばよかった」をI wishとmade a backupで英語にしてください。
  3. 過去に保存しなかった結果、今コピーがない場合、If I had saved a copy, I ___ it now.をhaveを使って完成させてください。
解答・解説を見る
  1. wouldです。能力・可能性を強調するcould、控えめな可能性のmightも文脈に応じて使えます。
  2. 次のように書けます。過去への後悔なのでhad madeです。

I wish I had made a backup.

バックアップを取っておけばよかった。

速度 1.0 / 自動選択 / en-US
  1. would haveです。haveは所有を表す原形で、現在の結果です。I would have it nowに過去分詞は続きません。

関連項目:間接疑問と話法