エクセルで数式をコピーしたとき、「コピーしたら参照先がずれてしまった」「別のファイルに数式をそのままコピーしたい」「数字がそのままコピーされない」と困った経験はありませんか。
この記事では【Excel】エクセルの数式をそのままコピーする方法(関数・別ファイル・数字そのまま・おかしい場合)について解説していきます。
・別のファイルやシートに数式をそのままコピーする方法
・数式のコピーがおかしくなる原因と対処法です。
それでは詳しく見ていきましょう。
エクセルの数式をそのままコピーする方法1【絶対参照を使って参照先を固定する】
数式をコピーしても参照先が変わらないようにする基本的な方法を確認しましょう。
エクセルの数式をコピーすると、通常は相対参照により参照先のセルが自動的にずれます。たとえば「=A1+B1」という数式を1行下にコピーすると「=A2+B2」に自動調整されます。参照先を固定したままコピーしたい場合は絶対参照を使います。
参照を固定したいセル番地を絶対参照に変換するには、数式内の参照箇所にカーソルを置いてF4キーを押します。F4キーを押すたびに「A1(相対参照)」→「$A$1(行・列ともに固定)」→「A$1(行のみ固定)」→「$A1(列のみ固定)」の順に切り替わります。
以下のようなサンプルデータがある場合を確認しましょう。

D2に「=B2*C2」と入力してD3・D4にコピーすると参照先が自動調整されます。

D2に「=$B$2*$C$2」と入力した場合は、コピーしてもすべてのセルがB2とC2を参照したままになります。

消費税率のように固定の参照先を使う計算では絶対参照が必須です。たとえば「=B2*$E$1」のようにE1セルの消費税率を絶対参照にしておくと、数式をコピーしてもE1への参照が固定されたままになります。
参照箇所にカーソルを置いてF4キーで絶対参照に変換。$A$1で行・列ともに固定、A$1で行のみ固定、$A1で列のみ固定。コピー後も参照先を変えたくない場合は必ず絶対参照を使いましょう。
エクセルの数式をそのままコピーする方法2【数式バーからコピーする】
数式の内容をそのままテキストとしてコピーする方法を確認しましょう。
セルをコピーして貼り付ける通常の操作では参照先が相対的に調整されますが、数式バーから数式のテキストをコピーすることで参照先の変換なしに数式をそのままコピーできます。
数式が入力されたセルをクリックして選択し、数式バーに表示された数式をクリックします。数式バー内で全体を選択(Ctrl+A)してからCtrl+Cでコピーします。Escキーで数式バーの編集モードを終了してから貼り付け先のセルをクリックして、数式バーをクリックしてからCtrl+Vで貼り付けてEnterキーで確定します。

この方法では数式のテキストをそのままコピーするため、相対参照の自動調整が行われません。全く同じ参照先を持つ数式を別のセルにそのままコピーしたい場合に特に有効です。
複数のセルの数式をそのままコピーしたい場合は、コピーしたい範囲を選択してCtrl+Hで「検索と置換」を開き、「=」を別の文字列(例:「##」)に置換してからコピーして貼り付け後に再度「##」を「=」に置換し直す方法が使えます。この方法ではエクセルが数式として認識しないため参照先の調整が行われません。
数式バーから数式テキストをコピーすることで参照先の変換なしにそのままコピー可能。複数セルは検索と置換で「=」を別文字列に変換してからコピーする方法が有効です。
エクセルの数式を別のファイルにそのままコピーする方法
数式を別のブック(ファイル)にコピーする際の注意点と対処法を確認しましょう。
数式が入ったセルをコピーして別のブックに貼り付けると、参照先がコピー元のブックへの外部参照に変わることがあります。たとえば「=A1」という数式が「=[元のファイル.xlsx]Sheet1!$A$1」のように変わってしまいます。

値として固定してからコピーしたい場合は、コピー後に貼り付けた範囲を選択してCtrl+Alt+V→V→Enterで値のみに変換することで外部参照を除いた値に変換できます。
数式を別のブックにそのままコピーして参照先も同じシート内のセルを参照するようにするには、両方のブックを同じシート構成・データ構成にしてからコピーする方法が確実です。
別のブックに数式をそのままコピーするには、コピー元とコピー先のシート名・セルの構成を同じにしてからコピーし、コピー後に外部参照が残っていないかを「数式」タブ→「参照元のトレース」で確認することをおすすめします。

外部参照が発生している場合は「データ」タブ→「クエリと接続」→「リンクの編集」から外部リンクを確認して解除または更新できます。

別ブックへのコピーでは外部参照が発生する場合があります。値として固定するにはCtrl+Alt+V→V→Enterで変換。外部参照の確認はデータタブ→リンクの編集から実施しましょう。
エクセルの数式のコピーがおかしくなる原因と対処法
数式をコピーした結果がおかしくなる場合の原因と対処法を確認しましょう。
コピー後に数式がエラーになる場合、最も多い原因は参照先のセルが存在しない・空白である・文字列が入力されているケースです。数式が参照しているセルを確認して、正しい値が入力されているかをチェックしましょう。
#REF!エラーが発生する場合は参照先のセルが削除されたか、コピーによって参照先が範囲外になったことが原因です。絶対参照に変更してから再度コピーすることで解決できます。

#VALUE!エラーが発生する場合は数式が参照しているセルに数値ではなく文字列が入力されていることが原因の場合があります。参照先のデータ形式を確認しましょう。

数式をコピーしたら計算結果がすべて同じ値になってしまう場合は、絶対参照を使いすぎていることが原因の場合があります。固定したい参照だけを絶対参照にして、コピーに合わせてずらしたい参照は相対参照のまま残すように数式を調整しましょう。
数式の計算結果が更新されない場合は自動計算が無効になっている可能性があります。「数式」タブ→「計算方法の設定」で「自動」が選択されているかを確認しましょう。
エラーの種類で原因を判断。#REF!は参照先の削除・範囲外で絶対参照で対処。#VALUE!は参照先のデータ形式を確認。計算結果が更新されない場合は数式タブ→計算方法の設定で自動を選択しましょう。
エクセルでVBAを使って数式をそのままコピーする方法
VBAを使って数式を参照先の変換なしにそのままコピーする方法を確認しましょう。
以下は指定したセルの数式をそのまま別のセルにコピーするサンプルコードです。
Sub 数式をそのままコピー()
Dim srcCell As Range
Dim dstCell As Range
```
Set srcCell = Sheets("Sheet1").Range("D2")
Set dstCell = Sheets("Sheet2").Range("D2")
'数式をそのままコピー(参照先の変換なし)
dstCell.Formula = srcCell.Formula
MsgBox "数式をそのままコピーしました。"
```
End Sub
このコードはSheet1のD2セルの数式をSheet2のD2セルにそのままコピーするものです。VBAでdstCell.Formula = srcCell.Formulaとすることで、通常のコピー&ペーストで発生する相対参照の自動調整が行われずに数式がそのままコピーされます。複数のセルに同じ数式をそのままコピーしたい場合はFor Eachループで繰り返し処理を行います。
VBAのFormulaプロパティを使って数式をそのままコピーすると相対参照の自動調整が行われません。参照先を変えずに同じ数式を別のシートやセルにコピーしたい場合に活用しましょう。
まとめ エクセルの数式をそのままコピー(別シートや別ファイル・数字そのまま・おかしい場合)
エクセルの数式をそのままコピーする方法をまとめると
・絶対参照で固定:F4キーで$A$1形式に変換、行・列・両方の固定を使い分けて参照先が変わらないようにする
・数式バーからコピー:数式バーのテキストをコピーすることで参照先の変換なしにそのままコピー、複数セルは検索と置換で「=」を別文字列に変換してからコピー
・別ファイルへのコピー:外部参照が発生するため値のみに変換するか、データタブ→リンクの編集で外部参照を管理
・おかしくなる場合:エラーの種類で原因を判断、#REF!は絶対参照で対処・#VALUE!はデータ形式を確認・計算更新されない場合は自動計算の設定を確認
・VBAによるコピー:Formulaプロパティで相対参照の自動調整なしに数式をそのままコピー
数式のコピーで参照先がずれてしまう問題は絶対参照の正しい使い分けで解決できます。固定したい参照には$を付けてコピー後も参照先が変わらないようにすることが最も重要なポイントです。
別ファイルへのコピーでは外部参照の発生に注意して、必要に応じて値への変換や外部リンクの管理を行いましょう。VBAを活用することで参照先の変換なしに数式をそのままコピーする作業も自動化できます。それぞれの方法を状況に合わせて使い分けて、正確な数式管理を実践していきましょう。

コメント