Excelで「数式をそのまま別の箇所にコピーしたい」ということ、ありますよね。
じつはExcelにそのような機能は用意されていません。
…が、Excel2013以降でしたら、ひと工夫することで可能なんです。

数式をそのままコピーする例1
この表では、A1~B2セルに「1」「2」「3」「4」と入力してあります。
そしてC3~D4セルには「=A1*10」「=B1*10」「=A2*10」「=B2*10」と数式が入力してあります。
ではここで、C3~D4セルの数式をそのまま使いたいと思い、F3~G4セルにコピペしたらどうなるでしょうか。

数式をそのままコピーする例2
…すべて「0」になってしまいました。
これは数式をコピーすると、行や列がずれた分だけ、数式も自動でずらされるためです。
F3~G4セルに入力された式は、「=D1*10」「=E1*10」「=D2*10」「=E2*10」となってしまいました。
D1~E2セルには何も入力されていない=0とみなされるため、0×10=0 となってしまったんですね。

そこでひと工夫、次の手順をふみます。

  1. コピーしたい数式をFORMULATEXT関数で参照する
  2. FORMULATEXT関数の結を値貼り付けする
  3. 「=」を「=」に置換する

言葉だけだとわかりづらいので、例をふまえて説明しますね。

Excelで数式をそのままコピペする方法(Excel2013以降)

コピーしたい数式をFORMULATEXT関数で参照する

F3セルに、「=FORMULATEXT(C3)」と入力し、さらにF3~G4セルにコピーします。
すると、次のような状態になります。
数式をそのままコピーする例3

FORMULATEXT関数は、そのセルに入力されている数式を文字列として表示します。
C3セルには「=A1*10」と入力されているので、それがそのまま出力されたんですね。
しかしこのままでは、実際に入力されているのはFORMULATEXT関数です。
そこで、値貼り付けを利用します。

FORMULATEXT関数の結を値貼り付けする

F3~G4セルをコピーして、上書きするように値貼り付けしましょう。
値貼り付けの方法は、コピー→右クリック→「形式を選択して貼り付け」→「値」にチェック→OK です。
すると、次のような状態になります。
数式をそのままコピーする例4
見た目はまったくかわりませんが、数式が変わりました。
F3セルの数式をみると、「=FORMULATEXT(C3)」から、「=A1*10」となっています。

しかしこのままだと、「=A1*10」という式が、文字列として入力されてしまっています。
つまり見た目は数式でも、数式とみなされていない状態です。
ここで仕上げに置換機能をつかいます。

値貼り付けした際に式の先頭に「'」が入力されている場合、削除する方法

ここで値貼り付けした式に「'」が入力されている場合、「'」を削除する必要があります。
「'」が入力されていない場合、この段落は読み飛ばして、次の段落へ進んでください。
Excelでシングルクォーテーションを削除する方法1
「'」を削除するには、以下の手順を行ってください。

  1. どのセルでも良いので、「0」を入力する
  2. 「0」を入力したセルをCtrl+Cでコピーする
  3. 「'」が入力されたセルを選択
  4. 右クリック→形式を選択して貼り付け
  5. 「演算」欄の「加算」を選択し、OKを押す

どのセルでも良いので「0」を入力し、コピーする
Excelでシングルクォーテーションを削除する方法2,
「'」が入力された式を選択する
Excelでシングルクォーテーションを削除する方法3,
右クリックし、「形式を選択して貼り付け」を選択
Excelでシングルクォーテーションを削除する方法4
「加算」を選択し、「OK」を押す
Excelでシングルクォーテーションを削除する方法5

すると式の「'」が削除されます。
Excelでシングルクォーテーションを削除する方法6

「=」を「=」に置換する

F3~G4セルを範囲指定して、「=」を「=」に置換しましょう。
数式をそのままコピーする例5
すると次のような結果になります。
数式をそのままコピーする例6
置換を行うことによって、文字列だったものが数式とみなされました。
無事C3~D4セルの数式が、形を変えることなくF3~G4セルにコピーされました。
FORMULATEXT関数はExcel2013以降のみ使用可能ですが、覚えておくといざというとき便利です。

数式をコピペしても変化がおこらないようにする方法

そもそも数式を、コピペしても変化がおこらないようにしておくことが可能です。
『絶対参照』という方法をつかいます。
数式をそのままコピーする例7
もともとは「=A1*10」という数式だったものを、「=$A1*10」と変更しました。
おなじように、D3セルは「=$B1*10」、C4セルは「=$A2*10」、D4セルは「=$B2*10」と変更しています。
そしてC3~D4セルを、F3~G4セルにコピーしてみましょう。
数式をそのままコピーする例8

『$』をつけるだけで、値も式も変化することなく、そのままコピーすることができました。
固定したい列のアルファベットや行の数字の前に『$』をつけると、コピーしてもその行や列を固定することができます。
これを絶対参照といいます。
対して、$をつけない列や行をコピーすると相対参照されます。
これらの違いは以下のとおりです。

  • 相対参照…コピーするとセルがずれた分だけ数式もずらされる
  • 絶対参照…数式をそのままコピーする

今回、もともとC3セルには「=A1*10」という式が入力されていました。
これをF3セルに入力すると、C列→F列にコピーすることになるため、3列分ずれることになります。
そのため、コピー先の数式もA→D列にずれ、「=D1*10」となってしまったんですね。

しかし『$』をつけたコピーでは絶対参照となるため、式がずらされることがありません。
「=$A1」とすると列が固定となりますが、行は固定となりません。
列も行も固定してコピーしたい場合は、「=$A$1」とします。

コピーしてもずらされたくない列のアルファベット、または行の数字の前には『$』をつける、と覚えておきましょう。
絶対参照、相対参照、複合参照について、より詳しく書いた記事はこちら。

数式をそのままコピー、貼り付けする方法【Excel2013以降】まとめ

  • Excel2013以降では、次の手順をふむことで式をそのままコピーできる。
数式をそのままコピーする方法(Excel2013~)
  1. コピーしたい数式をFORMULATEXT関数で参照する
  2. FORMULATEXT関数の結を値貼り付けする
  3. 「=」を「=」に置換する
  • 『$』を列のアルファベットや行の数字の前につけることで、コピーしても列や行を固定することができる
  • 行列がコピー後も固定されている状態を絶対参照、そうでない場合を相対参照という

数式をそのままコピーする方法を紹介させていただきました。
いずれもいざというとき役に立つので、ぜひご活用ください。

おすすめの記事