Office 2024がリリースされました!

Excelでのオートフィルのやり方とできない時の対処法

Excelでのオートフィルのやり方とできない時の対処法

当サイトはアフィリエイト広告を利用しています。

Excelで連続する番号、曜日、日付、数式などを大量に入力する必要がある場合、便利なのが「オートフィル」という機能。この機能を使いこなせないと、いちいち手入力する羽目になるため、手間やミスの原因に。

そこで今回は、Excelでのオートフィルのやり方と、できないときの対処法をご紹介します。

オートフィルを使いこなして、大量の連続データの入力を一瞬で終わらせましょう!

Excelでのオートフィルのやり方3つ

まずはExcelでのオートフィルのやり方をご紹介します。

  • フィルハンドルをドラッグする
  • フィルハンドルをダブルクリックする
  • フィルコマンドからフィルの設定をおこなう

方法1:フィルハンドルをドラッグする

1つ目は、セルの右下に表示されるフィルハンドル(■マーク)をドラッグする方法です。この方法では、ドラッグした分だけオートフィルできます。ドラッグは縦方向だけでなく横方向へも可能です。

たとえば、1からの連番を入力したい場合は、隣り合うセルに「1」「2」と入力し、この2つのセルを選択してからフィルハンドルにカーソルを合わせ、カーソルの形が+に変わったらドラッグします。

フィルハンドルをドラッグしてオートフィルしている様子

方法2:フィルハンドルをダブルクリックする

2つ目は、フィルハンドルをダブルクリックする方法です。この方法では、隣接する列のデータ量に合わせてオートフィルできます。なお、この方法では横方向へのオートフィルは効きません。

たとえば、A1からA10までデータが入力されている状態で、B1のフィルハンドルをダブルクリックすると、B1のデータがB10までオートフィルされます。

フィルハンドルをダブルクリックしてオートフィルしている様子

方法3:フィルコマンドからフィルの設定をおこなう

3つ目は、[ホーム]タブ⇒[フィル]からフィルの設定をおこなう方法です。この方法では、あらかじめ選択した範囲に同じ値をコピーすることや、連続データを作成することができます。

同じ値をコピーする場合

同じ値をコピーする場合は、コピーしたい値が入力されたセルと、コピー先のセルを選択し、[ホーム]タブ⇒[フィル]⇒[◯方向へコピー]をクリックします。

Excelのスクリーンショット

これで選択範囲に同じ値がコピーされます。

Excelのスクリーンショット

連続データを作成する場合

連続データを作成する場合は、連続データの起点となる値が入力されたセルを選択し、[ホーム]タブ⇒[フィル]⇒[連続データの作成]をクリックします。

Excelのスクリーンショット

[連続データ]ダイアログボックスが表示されたら、オートフィルの範囲、種類、増加単位、増分値、停止値などを設定して[OK]をクリックします。

連続データダイアログボックスのスクリーンショット

たとえば、範囲を「列」、種類を「加算」、増分値を「5」、停止値を「50」にすると、元の値に5ずつ加算した50までのデータが縦方向に作成されます。

Excelでオートフィルできないときの9つの対処法

前述の方法で思ったようにオートフィルできないときは、状況に応じて以下の対処法を試してみてください。

  • フィルハンドルを有効にする
  • 2つ以上の値で法則性を示す
  • オートフィルオプションを変更する
  • Ctrlキーを押しながらフィルハンドルをドラッグする
  • ユーザー設定リストを作成する
  • 数式の参照方法を変更する
  • INDIRECT関数を使う
  • INDEX関数を使う
  • シートの保護を解除する

対処法1:フィルハンドルを有効にする

「フィルハンドルがドラッグもダブルクリックもできなくてオートフィルできない」という場合は、Excelのオプションでフィルハンドルを有効にしましょう。

[ファイル]タブ⇒[オプション]をクリックして[Excelのオプション]ダイアログを表示し、[詳細設定]⇒[編集オプション]セクションの[フィルハンドルおよびセルのドラッグアンドドロップを使用する]にチェックを付けて[OK]をクリックします。

Excelのオプションダイアログボックスのスクリーンショット

これで作業は完了です。フィルハンドルのドラッグやダブルクリックができるようになったか確認してみてください。

対処法2:2つ以上の値で法則性を示す

「連続データを作成したいけど同じ数字になる」という場合は、2つ以上の値で法則性を示しましょう。

たとえば「1」と入力されたセルのフィルハンドルをドラッグまたはダブルクリックして1、2、3…という連続データを作成しようとしても、Excelは法則性がわからないので単に同じ数字をコピーしてしまいます。

オートフィルで同じ数字がコピーされている様子

こういうときは「1」「2」と、最低でも2つ以上の値で法則性を示します。こうすることでExcelは法則性を理解して連続データを作成してくれます。

ちなみに同じ数字でオートフィルされてしまった場合は、次にご紹介するオートフィルオプション(連続データ)を変更する方法で連続データに変更することもできます。

対処法3:オートフィルオプションを変更する

  • 値だけコピーしたいけど書式もコピーされる
  • 書式だけコピーしたいけど値もコピーされる
  • 連続データを作成したいけど同じ値がコピーされる
  • 同じ値をコピーしたいけど連続データが作成される

このような場合は、オートフィル後に右下に表示されるオートフィルオプションを変更しましょう。

たとえば、なんらかの値が入力された黄色のセルをオートフィルすると、塗りつぶしと値の両方がコピーされますが、オートフィルオプションから[書式のみコピー(フィル)]を選択すると、塗りつぶしのコピーはなかったことになります。

オートフィルで書式と値をコピーした後にオートフィルオプションから書式のみコピーに変更している様子

対処法4:Ctrlキーを押しながらフィルハンドルをドラッグする

「同じ値をコピーしたいけど連続データになる」という場合、オートフィルオプションから「セルのコピー」を選択しても良いですが、Ctrlキーを押しながらフィルハンドルをドラッグする方法もあります。

フィルハンドルをドラッグでオートフィルする場合、元の値に数字が入っていると、同じ値をコピーしたいだけなのに勝手に連続データにされることがあります。

オートフィルで連続データが作成されている様子

こういうときは[Ctrl]を押しながらフィルハンドルをドラッグしましょう。そうすることで意図しない連続データの作成を防げます。

Ctrlキーを押しながらオートフィルしている様子

対処法5:ユーザー設定リストを作成する

「独自の法則性で連続データを作成したい」という場合は、ユーザー設定リストを作成しましょう。

まず[ファイル]タブ⇒[オプション]をクリックして[Excelのオプション]ダイアログを表示し、[詳細設定]⇒[全般]セクションの[ユーザー設定リストの編集]をクリックします。

Excelのオプションダイアログボックスのスクリーンショット

[ユーザー設定リスト]ダイアログが表示されたら、[リストの項目]の入力ボックスに、独自の連続データを1行ごとに入力して[追加]⇒[OK]をクリックします。

ユーザー設定リストダイアログボックスのスクリーンショット

リストがセルに入力されている場合は、そのセルを参照して追加することも可能です。その場合はまず[リストの取り込み元範囲]の右端のアイコンをクリックします。

ユーザー設定リストダイアログボックスのスクリーンショット

連続データが入力されたセル範囲を選択して[Enter]を押します。

Excelのスクリーンショット

[インポート]⇒[OK]をクリックしたら完了です。

ユーザー設定リストダイアログボックスのスクリーンショット

[Excelのオプション]ダイアログに戻ったら[OK]をクリックして閉じ、セルにさきほど追加したユーザー設定リストの中の一つを入力してオートフィルします。これで独自の連続データを作成できます。

オートフィルで独自の連続データを作成している様子

対処法6:数式の参照方法を変更する

「数式をオートフィルしても参照先が変わらない」という場合は、数式の参照方法を変更しましょう。

たとえば、C1に=$A$1+$B$1と入力されており、このセルを下方向へオートフィルすると、どこまでも同じ数式がコピーされてしまいます。これは、セルが絶対参照されているからです。

絶対参照された数式をオートフィルした結果のスクリーンショット

そうではなく、A2+B2、A3+B3…と変化させたい場合は、C1の数式から「$」を取って=A1+B1のように相対参照にしてからオートフィルします。これで数式が変化します。

相対参照された数式をオートフィルした結果のスクリーンショット

この場合、変化させたいのは行だけなので、列は絶対参照のままでもうまくいきます。

列だけ絶対参照された数式をオートフィルした結果のスクリーンショット

対処法7:INDIRECT関数を使う

「数式をオートフィルすると参照先がずれる」という場合は、対処法の1つにINDIRECT関数を使って参照先を指定する方法があります。

INDIRECT関数(インダイレクト関数)は、文字列で指定されたセル番地の値を返す関数です。

INDIRECT関数の構文

INDIRECT(参照文字列, [参照形式]

参照文字列(必須)
取得したい値があるセル番地を「A1形式」または「R1C1形式」の文字列で指定する。
参照形式(省略可)
【参照文字列】の種類を以下のいずれかで指定する。省略すると「TRUE」として処理される。
  • TRUE:【参照文字列】をA1形式とみなす。
  • FALSE:【参照文字列】をR1C1形式とみなす。

たとえば、C1に=A1+B1と入力されており、このセルを右方向へオートフィルしてA2+B2、A3+B3…としたくても、B1+B1、C1+D1…と、列も行もずれてしまいます。

Excelのスクリーンショット

この場合、列番号は固定して行番号だけ変化させればいいので、C1の数式を=INDIRECT("A"&COLUMN(A:A))+INDIRECT("B"&COLUMN(A:A))に変更します。数式の意味は以下のとおりです。

  • INDIRECT("A"&COLUMN(A:A)) → A列("A")の1行目(A:A
  • INDIRECT("B"&COLUMN(A:A)) → B列("B")の1行目(A:A

列番号は文字列で指定しているため、オートフィルしてもA、B、C…と変化せず固定となります。COLUMN(A:A)が1を指すのは、A列が「1」列目だからです。ROW(1:1)でも良さそうですが、横方向にオートフィルする場合、ROW関数では引数が固定されてうまくいきません。

この状態でC1を右方向へオートフィルすると、希望通りの結果になります。

Excelのスクリーンショット

対処法8:INDEX関数を使う

数式をオートフィルすると参照先がずれる場合、INDEX関数を使って参照先を指定する方法もあります。

INDEX関数(インデックス関数)は、指定された行と列が交差する位置にあるセルの値を返す関数です。

INDEX関数の構文

INDEX(参照, 行番号, 列番号, [領域番号]

参照(必須)
取得したい値を含む範囲を指定する。複数の範囲を指定する場合は、(範囲1,範囲2,範囲3)のように全体を()で囲み、それぞれの範囲を「,」で区切る。
行番号(必須)
【参照】の何行目の値を取得したいか指定する。
列番号(必須)
【参照】の何列目の値を取得したいか指定する。
領域番号(省略可)
【参照】で複数の範囲を指定した場合、何番目の範囲で検索するか指定する。省略すると1番目の範囲が検索の対象となる。

たとえば、A3に=A1+A2と入力されており、このセルを下方向へオートフィルしてB1+B2、C1+C2…としたくても、A2+A3、A3+A4…と、列も行もずれてしまいます。

Excelのスクリーンショット

この場合、行番号は固定して列番号だけ変化させればいいので、A3の数式を=INDEX($1:$1,,ROW(1:1))+INDEX($2:$2,,ROW(1:1))に変更します。数式の意味は以下のとおりです。

  • INDEX($1:$1,,ROW(1:1)) → 1行目($1:$1)のA列(1:1
  • INDEX($2:$2,,ROW(1:1)) → 2行目($2:$2)のA列(1:1

行番号は「$」をつけて絶対参照しているため、オートフィルしても1、2、3…と変化せず固定となります。ROW(1:1)がAを指すのは、1行目もA列(1列目)も同じ「1」だからです。COLUMN(A:A)でも良さそうですが、縦方向にオートフィルする場合、COLUMN関数では引数が固定されてうまくいきません。

この状態でA3を下方向へオートフィルすると、希望通りの結果になります。

Excelのスクリーンショット

対処法9:シートの保護を解除する

シート保護時に表示されるメッセージのスクリーンショット

オートフィルしようとすると「変更しようとしているセルやグラフは保護されているシート上にあります」と表示される場合は、シートの保護を解除しましょう。

シートの保護を解除するには、まず[校閲]タブ⇒[シート保護の解除]をクリックします。

Excelのスクリーンショット

[シート保護の解除]ダイアログが表示されたら、保護するときに設定したパスワードを入力して[OK]をクリックします。

シート保護の解除ダイアログボックスのスクリーンショット

これで作業は完了ですので、オートフィルできるようになったか確認してみてください。なお、パスワードを忘れてしまった場合は以下の記事を参考にしてみてください。

Excelで例に基づいてデータを自動補完したいときは「フラッシュフィル」が便利!

Excelには、オートフィルとよく似た「フラッシュフィル」という機能もあります。オートフィルが規則性に基づいて連続データを自動作成する機能であるのに対し、フラッシュフィルは入力された見本を元にパターンを推測し、残りのデータを自動的に補完する機能です。

たとえば、A列に複数の氏名が入力されていて、1名分だけB列に姓、C列に名を入力しておくと、フラッシュフィルを使うことで残りの氏名を自動的に姓と名に分割できます。

この場合、実際にフラッシュフィルを使って自動入力するには、見本が入力されたセルの下のセルを選択した状態で[データ]タブ⇒[フラッシュフィル]をクリックします。もしくは[Ctrl]+[E]でもOKです。

Excelのスクリーンショット

するとこのようにデータが自動で補完されます。

フラッシュフィルでデータが補完される様子

B2やC2をオートフィルしても同じデータが入力されるだけなので、こういったケースではフラッシュフィルを使うのがベストです。

まとめ

今回は、Excelでのオートフィルのやり方と、できないときの対処法をご紹介しました。

オートフィルはフィルハンドルをドラッグするやり方が一般的ですが、フィルハンドルをダブルクリックする方法や、フィルコマンドからフィルの設定をおこなう方法もあります。

これらの方法で思ったようにオートフィルできないときは、Excelのオプションの見直しや法則性を示すデータの追加、オートフィルオプションの変更などを試してみてください。

Udemyの動画講座なら自分のペースでExcel VBAを学べる!

Udemyでは、買い切りの動画講座で好きな分野について自分のペースで学ぶことができます。

パソコンだけでなくスマホにも対応しているので、移動時間や休憩時間にスマホで学習することも可能です。

30日間の返金保証付きなので、初めてでも安心して受講できますよ。

▼ おすすめのExcel VBA講座はこちら ▼