「我到捷運站時,末班車已經開走了。」想用英文說出這種「某件事在另一件事之前就已經發生」的情況,就要用到過去完成式(past perfect tense)。這篇文章會從 had + 過去分詞的句型開始,帶你搞懂 5 種常見用法、判斷該不該用的 3 個步驟,以及它和過去式、現在完成式的差別,最後再用練習題確認自己真的學會。
簡單來說,先發生的事用過去完成式,後發生的事用過去式,句型是 主詞 + had + 過去分詞(p.p.)。像開頭那句話,英文就是 When I got to the MRT station, the last train had already left.
過去完成式是什麼?用時間軸看懂「過去的過去」
把時間想成一條線:最右邊是現在,往左是過去。如果過去有兩件事,比較靠左、也就是先發生的那一件,就用過去完成式。所以這個時態一定需要一個過去的參考點,可能是另一件事(I got to the station),也可能是一個時間點(by 9 p.m.)。
反過來說,如果句子裡只有一件過去的事,就算發生在很久以前,也只要用過去式,不需要 had。英文文法書常把這個時態寫成 past perfect 或 past perfect simple,指的都是同一件事。
過去完成式句型:肯定、否定、疑問
| 句型 | 結構 | 例句 |
|---|---|---|
| 肯定句 | 主詞 + had + p.p. | She had finished the report by noon. 她中午前就把報告寫完了。 |
| 否定句 | 主詞 + had not(hadn’t)+ p.p. | I hadn’t heard the news until Mom called. 直到媽媽打電話來,我才聽到這個消息。 |
| 疑問句 | Had + 主詞 + p.p.?/疑問詞 + had + 主詞 + p.p.? | Had you eaten before class started? 上課前你吃過東西了嗎? |

使用這個句型時,有幾點要注意:
- 不管主詞是 I、he 還是 they,一律用 had。
- 口語常把 had 縮寫成 ’d(I’d、she’d)。
- 不規則動詞要用第三態,例如 go → went → gone。不熟的話可以先複習動詞三態和過去分詞。
過去完成式用法:5 種常見情境
過去的兩件事,交代誰先發生
這是最常見的用法:先發生的動作用過去完成式,後發生的動作用過去式,這樣事情的先後順序就很清楚。
例如:
- By the time we arrived, the movie had already started.
我們到的時候,電影已經開演了。 - I had never tried stinky tofu before I moved to Taipei.
搬到台北之前,我從沒吃過臭豆腐。
在過去某個時間點之前已經完成
常和「by + 過去時間」一起出現。
例如:
- By 9 p.m., I had finished the presentation slides.
晚上九點前,我就把簡報做完了。 - By the end of 2025, the company had opened five stores in Taiwan.
到 2025 年底,這家公司已經在台灣開了五家店。
某個狀態一直持續到過去某個時間點
常搭配 for、since(用法可參考 since 用法),以及 know、have、be、live 這類表示狀態的動詞。
例如:
- When Mei graduated, she had known her best friend for ten years.
小美畢業時,已經認識她的好朋友十年了。
間接引述時的時態後退
轉述別人的話時,如果用的是 said、told 這類過去式動詞,原句的現在完成式或過去式通常要往後退一格,變成過去完成式。
例如:
- 直接引述:He said, “I have finished the project.”
- 間接引述:He said (that) he had finished the project.
他說他已經把專案做完了。
與過去事實相反的假設(wish/if)
在 wish、if only 後面,或第三類 if 條件句的 if 子句裡,用過去完成式表達「過去其實沒發生、帶點遺憾」的事。
例如:
- I wish I had studied harder for the GEPT.
真希望當初準備全民英檢時有更用功。 - If we had left earlier, we wouldn’t have missed the train.
要是我們早點出門,就不會錯過火車了。
想把假設語氣一次弄懂,可以接著看 If 條件句的用法與練習。
怎麼判斷要不要用過去完成式?3 個步驟
步驟 1:找出過去的參考點。 句子裡有兩件過去的事,或一件事加上一個過去時間點嗎?沒有的話,用過去式就好。
步驟 2:分出先後。 先發生、而且和後面那件事有關的動作,才用 had + p.p.。
步驟 3:看先後順序是否已經很清楚。 如果 after 或 before 已經把順序講明白,母語人士常常兩邊都用過去式,例如 After she paid, she left the store. 改用過去完成式也沒錯,只是更強調「已經做完」。
另外,「before + 過去完成式」還能表示某件事還沒來得及完成:She left before I had finished my sentence.(我話還沒說完,她就走了。)
常見的訊號字如下,這些字帶出的多半是副詞子句:
| 訊號字 | 在句中的位置 | 例句 |
|---|---|---|
| by the time + 過去式 | 主要子句用過去完成式 | By the time I woke up, my roommate had left. 我醒來時,室友已經出門了。 |
| already/just/never…before | 放在 had 和 p.p. 中間 | I had never seen snow before that trip. 那次旅行之前,我從沒看過雪。 |
| Hardly/Scarcely…when、No sooner…than | 倒裝:Hardly had + 主詞 + p.p. + when + 過去式 | No sooner had he arrived than it started to rain. 他一到,就開始下雨了。 |

想看兩個動作緊接著發生的寫法,也可以參考 as soon as 用法。
過去完成式例句:和過去式、現在完成式、過去完成進行式比一比
這四種時態都和過去有關,差別主要在「參考點」放在哪裡。
| 時態 | 參考點與句型 | 例句 |
|---|---|---|
| 過去式 | 過去某個時間・主詞 + 動詞過去式 | I lost my wallet yesterday. 我昨天弄丟了錢包。 |
| 過去完成式 | 另一個過去時間點之前・主詞 + had + p.p. | I had lost my wallet before I got on the bus. 上公車前,我的錢包就已經掉了。 |
| 現在完成式 | 連結到現在・主詞 + have/has + p.p. | I have lost my wallet. 我的錢包掉了(到現在還沒找到)。 |
| 過去完成進行式 | 持續到過去某個時間點,強調過程・主詞 + had been + V-ing | I had been looking for my wallet for an hour when Mom called. 媽媽打來時,我已經找錢包找了一個小時。 |
跟過去式比: 過去式只是陳述發生過的事;過去完成式則替兩件過去的事排出先後。
跟現在完成式比: 現在完成式以「現在」為參考點,過去完成式以「過去某個時間點」為參考點。
跟過去完成進行式(past perfect continuous)比: 過去完成式重在「已經做完」的結果,過去完成進行式重在「持續了多久」的過程。
閱讀更多:現在完成進行式
過去完成被動式怎麼寫?
句型是 主詞 + had been + p.p.,也就是把被動語態的 be + p.p. 套進過去完成式。
例如:
- The report had been sent before the meeting started.
會議開始前,報告就已經寄出去了。 - By the time we arrived, all the concert tickets had been sold.
我們到的時候,演唱會門票已經賣光了。
過去完成式常見的 4 個錯誤
只有一件過去的事,卻用了 had
例如「我去年去了台南」,句子裡只有一件過去的事,直接用過去式 I visited Tainan last year. 就好。寫成 I had visited Tainan last year. 反而會讓人以為後面還有另一件事。
had 後面接了過去式
had 後面一定接過去分詞,不是過去式。I went to bed after my mom had came back. 要改成 had come back,不規則動詞特別容易寫錯。
和 ago 一起用
ago 是從「現在」往回算,通常搭配過去式,要說 I finished it two days ago,而不是 I had finished it two days ago。如果要表達「在過去某個時間點的兩天前」,就改用 before,例如 She said she had finished it two days before.
if 假設句前後時態對不上
談過去沒發生的事時,if 子句用過去完成式,主要子句用 would / could have + p.p.(would 的其他用法可參考 Would 用法)。If I had enough money, I could have bought a new phone. 前半句的時態不對,應該寫成 If I had had enough money, I could have bought a new phone.
過去完成式練習題(附解答)
練習 1:用括號內動詞的正確形式填空
- By the time we got to Taipei Main Station, the high-speed train ______ (leave).
- I ______ (never / visit) Alishan before last spring.
- When Kevin logged in, the online meeting ______ (already / start).
- My mom ______ (not / see) my message until she got home.
- ______ you ______ (finish) the report before the manager asked for it?
- Amy said that she ______ (lose) her EasyCard.
- We ______ (live) in Kaohsiung for ten years before we moved to Taichung.
- We ______ (find) a seat at the night market only after we ______ (wait) for 20 minutes.
- The report ______ (send) before the meeting started.
- I wish I ______ (book) the tickets earlier.
練習 2:依提示改寫句子
- Jason finished his homework. Then he played video games. (After…)
- The movie started. Then we arrived at the theater. (When…)
- I didn’t bring an umbrella, so I got wet. (If…)
- The store closed before we got there. (By the time…)
- As soon as she sat down, the bus left. (Hardly…)
練習 1 解答:
- had left:到台北車站(過去)之前,高鐵已經開走。
- had never visited:到去年春天為止都沒去過,表示到過去某時的經驗。
- had already started:Kevin 登入時,會議早已開始。
- hadn’t seen:直到媽媽回家前,一直沒看到訊息。
- Had … finished:疑問句把 had 放到主詞前面。
- had lost:said 為過去式,引述內容的時態往後退。
- had lived:在搬到台中之前,已經在高雄住了十年。
- found/had waited:先等了 20 分鐘,之後才找到位子。
- had been sent:報告是「被寄出」,用過去完成被動式。
- had booked:wish 後面用過去完成式,表示對過去的遺憾。
練習 2 解答:
- After Jason had finished his homework, he played video games.
- When we arrived at the theater, the movie had (already) started.
- If I had brought an umbrella, I wouldn’t have gotten wet.
- By the time we got there, the store had closed.
- Hardly had she sat down when the bus left.
結語
總結來說,用過去完成式之前,先確認句子裡有沒有過去的參考點,再把先發生的動作寫成 had + p.p.。口說時 had 常縮成 ’d(I’d finished),很容易被吞掉,可以用 ELSA Speak 練習這類縮寫的發音。想把時態系統串起來,可以再看 12 種英文時態和過去進行式,或到英文文法合集挑其他主題複習。
參考資料: British Council LearnEnglish(英國文化協會的英語學習網站)– Past perfect













