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を使えば、簡単に最終行までの計算を一括実行できます。
ぜひ業務の効率化にお役立てください!