Excel

【Excel】エクセルで計算式を一括で下まで反映(同じ数式を最終行までコピー、全部)する方法

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

Excelで大量のデータを扱う際、計算式を1つ1つコピーしていくのは大変な手間です。

そこで今回は、エクセルで計算式を一括で下まで反映させる方法をご紹介します。

オートフィル機能を使う方法とVBAを使う方法の2つを解説するので、ぜひ参考にしてみてください。

エクセルで計算式を一括で下まで反映する方法【オートフィル、A列とB列のかけ算をC列に出して、一括反映】

まずは、オートフィル機能を使ってA列とB列のかけ算の結果をC列に出す方法を見ていきましょう。

C2セルに「=A2*B2」と入力します。

C2セルの右下にある四角い「塗りつぶしハンドル」にカーソルを合わせると、十字マークに変わります。

十字マークの状態で、C列の最終行までドラッグします。

数式が最終行まで反映されます。

これで、かけ算の計算式が最終行まで一括反映されました。

VBA(マクロ)の場合

次に、VBAを使ってA列とB列のかけ算をC列に出す方法を解説します。

【Alt+F11でVBE画面を開いて以下をコピペしましょう】


Sub Multiply()
    Dim lastRow As Long
CopylastRow = Cells(Rows.Count, 1).End(xlUp).Row

Range("C2:C" & lastRow).Formula = "=A2*B2"
Range("C2:C" & lastRow).Value = Range("C2:C" & lastRow).Value
End Sub

【Alt+F8でマクロ選択画面を開きMultiply関数を実行します】
このマクロでは、以下の処理を行っています。

lastRow変数に最終行の行番号を取得

C2セルから最終行までの範囲に計算式 “=A2*B2” を入力

計算式を値に変換

処理前後のデータは先ほどと同じなので割愛します。

エクセルで計算式を一括で下まで反映する方法【オートフィル、A列とB列をifで比較し、大きい方をC列に出して、一括反映】

次は、A列とB列の値を比較して大きい方の値をC列に出力する方法を見ていきます。

C2セルに「=IF(A2>B2,A2,B2)」と入力します。

C2セルの塗りつぶしハンドルを使って、C列の最終行までドラッグします。

数式が最終行まで反映されます。

これで、A列とB列を比較して大きい方の値がC列に出力されました。

VBA(マクロ)の場合

最後に、VBAを使ってA列とB列を比較し、大きい方の値をC列に出力する方法を解説します。

【Alt+F11でVBE画面を開いて以下をコピペしましょう】

  Sub MaxValue()
    Dim lastRow As Long
CopylastRow = Cells(Rows.Count, 1).End(xlUp).Row

Range("C2:C" & lastRow).Formula = "=IF(A2>B2,A2,B2)"
Range("C2:C" & lastRow).Value = Range("C2:C" & lastRow).Value
End Sub

【Alt+F8でマクロ選択画面を開きMaxValue関数を実行します】

このマクロの処理内容は、かけ算の時とほぼ同じです。違うのは計算式の部分だけですね。

まとめ

以上で、エクセルで計算式を一括で下まで反映する方法の解説は終了です。

オートフィル機能とVBAを使えば、簡単に最終行までの計算を一括実行できます。

ぜひ業務の効率化にお役立てください!