解説記事 — フレーズフレーズミー

前置詞・時の表し方

ago と before の違い|「3年前」は three years ago——基準が「今」か「過去のある時点」か

30秒でわかる

「〜前に」は、数える起点がどこかで語が決まります。今から数えて「3年前」なら three years ago(過去形と一緒に使う)。過去のある時点から数えて「その3年前」なら three years before(過去完了と一緒に使うのが典型)。迷ったら「『今から』〜前と言い換えられるか」を確かめてください——言い換えられるなら ago です。

×My grandfather died eight years before.
My grandfather died eight years ago.

まず、実際の間違いを見てください

次の3つは、当サービスの人手添削で実際に繰り返し指摘された誤答です(回数は同じ間違いが添削された実測値)。

例文: 私は彼女と3年前に結婚した。

×I got married to her for three years.44回
I got married to her three years ago.

for three years は「3年間(ずっと)」という期間の言い方。「3年前に」という時点を言うなら three years ago です。

例文: 私は彼女と3年前に結婚した。

×I married her three years before.18回
I married her three years ago.

「(今から)3年前」なので ago。before を使うのは、過去のある時点を基準に「それよりさらに前」と言うときです。

例文: 私の祖父は8年前に亡くなりました。

×My grandfather died before eight years.8回
My grandfather died eight years ago.

語順も違います。ago も(この用法の)before も、eight years ago のように期間の後ろに置きます。before eight years という並びにはなりません。

第145位

ago と before の取り違えは、よくある誤り全222タイプの中で第145位。当サービスの人手添削12年分で342回指摘されました。before との取り違えのほか、「3年前に」を for three years(3年間)と書いてしまう期間との混同も目立ちます。

なぜ間違えるか——日本語のクセ

日本語の「前」は万能です。「3年に結婚した」(今から数える)も、「結婚する3年に出会っていた」(結婚の時点から数える)も、同じ「前」の一語で言えてしまいます。基準がどこかは文脈まかせで、語の形には現れません。英語はここを分業していて、基準が「今」なら ago、基準が「過去のある時点」なら before と語自体を変えます。日本語で区別しない軸なので、辞書で先に覚えた before(〜の前)をそのまま「3年前」にも使ってしまうのです。

now eight years ago(今から8年) died =過去形 過去の基準点(結婚したとき など) three years before(そこから3年) had met =過去完了
上: ago は now から過去へ測る——動詞は過去形。下: before は過去の基準点からさらに前へ測る——動詞は過去完了(had done)が典型。

図の内容を表にするとこうなります。

言い方数える起点一緒に使う時制
〜 ago過去形My grandfather died eight years ago.
〜 before過去のある時点過去完了が典型He said he had met her three years before.
for 〜(起点でなく)長さ期間を表すThey have been married for three years.(3年間)

時制側の使い分けは過去形の記事過去完了の記事で詳しく扱っています。ago のある文は「今から〜前」という過去の一点を指す言葉なので、現在完了とは組み合わせられず、必ず過去形です。

こう考える——書くときの判断手順

  1. その「〜前」は「今から」〜前と言い換えられるか——言い換えられるなら ago。動詞は過去形にする
  2. 言い換えられない(過去の出来事を基準に「それよりさらに前」を言っている)なら before。動詞は過去完了(had done)が典型
  3. 「〜前(時点)」か「〜間(期間)」かを確かめる——「3年前に結婚した」は時点=three years ago。「3年間結婚している」は期間=for three years
  4. 語順は 期間+ago/before(three years ago)。before eight years の並びにしない

ここまでは同じ、ここからは別

「8年前に亡くなった」は、過去形で My grandfather died eight years ago. のほかに、現在完了で My grandfather has been dead for eight years.(亡くなって8年になる=今も亡くなった状態)も正解です(当サービスの採点でも別解として認めています)。この形では「8年」が期間になるので for を使い、ago は使いません。同じ内容でも「時点で言うか、期間で言うか」で語が入れ替わるわけです。

もう一つの落とし穴は「先月・去年」。「先月」は last month であって、a month ago(1か月前)ではありません。「1か月前」は今日から数えて30日ほど前の一点、「先月」は暦の上のひと区切りで、指すものがずれます。当サービスの採点でも a month ago を「先月」の意味で使うと減点対象です。なお未来向きの「〜後」(in five days/later/after)にも同じ「起点がどこか」の区別があります。こちらは in・later・after の記事で扱っています。

まとめ——書いたあとのチェック

この間違い、自分もやるか試してみる

この記事で見た「私の祖父は8年前に亡くなりました。」を、実際に英語で書いてみてください。ago と before の選び分けがそのまま試される問題です。書いた英文は AI がその場で採点します(登録は不要です)。

「私の祖父は8年前に亡くなりました」を英語で書いてみる登録なしで、この1問をAIが採点します

データについて: 本文の回数・割合は、フレーズフレーズミーの人手添削データ12年分の集計値です(添削と誤りタグの照合 655,994回のうち、本記事のタグ「ago と before の違い(~前、以前に)」への照合が 342回・0.1%。集計 2026-08-14)。誤答例の「◯回」は、同じ間違いが人手添削と照合された回数です。誤答例はいずれも実際の学習者の答案に現れた文で、個人が特定できる情報は含みません。

著者: 株式会社コンテンツアンドシステムズ(人手添削18.4万件・採点基準416問を運営する、ITと教育の融合をミッションとする会社です)。データの出どころと記事の作り方は運営者とデータについてをご覧ください。

← 解説記事の一覧フレーズフレーズミーをはじめる