ExcelのINDIRECT関数を使ったSUMをフィルで下方向へコピーする方法

Excel

Excelで数式を作成して下の行へコピーする「フィル」は便利な機能ですが、INDIRECT関数を使った数式では通常のコピーと同じように参照先が変化しないため、戸惑うことがあります。この記事では、=SUM(INDIRECT(“K1:P1”))のような数式を下方向へ1行ずつずらして入力する方法や、INDIRECT関数で参照を自動調整する考え方について解説します。

INDIRECT関数を使うとフィルで参照がずれない理由

通常のExcelの数式では、セル参照はコピーすると自動的に変化します。例えば、A1を参照する数式を下へコピーするとA2、A3のように変わります。

しかし、INDIRECT関数ではセル番地を文字列として指定しています。

例えば「=SUM(INDIRECT(“K1:P1”))」の場合、ExcelはK1:P1という文字をそのまま住所として読み取るため、下へコピーしてもK2:P2には変化しません。

そのため、INDIRECT関数内の文字列を行番号に合わせて変化させる必要があります。

INDIRECT関数で下方向へずらす基本的な数式

フィルで1行ずつ参照先を変更したい場合は、ROW関数を組み合わせます。

例えば、1行目から開始して下へコピーする場合は、以下のような数式にします。

=SUM(INDIRECT(“K”&ROW()&”:P”&ROW()))

この数式では、ROW関数が現在の行番号を取得します。

1行目なら「K1:P1」、2行目なら「K2:P2」、3行目なら「K3:P3」というように自動的に変化します。

開始位置が違う場合の数式調整方法

例えば、数式を5行目から入力したい場合、ROW関数だけでは5行目から始まるため問題ありません。

しかし、数式を別の位置に入力して、参照する行を一定の位置から開始したい場合はROW関数に調整を加えます。

例えば、入力位置に関係なく1行目から参照したい場合は以下のようにします。

=SUM(INDIRECT(“K”&(ROW()-4)&”:P”&(ROW()-4)))

このように、ROW関数から数字を引くことで参照する行番号を調整できます。

INDIRECTを使わずに同じ結果を出す方法

今回のような横方向の範囲を合計するだけであれば、実はINDIRECT関数を使わない方法のほうが簡単です。

例えば、最初のセルに以下の数式を入力します。

=SUM(K1:P1)

この数式を下方向へフィルすると、自動的に以下のように変化します。

  • 1行目:=SUM(K1:P1)
  • 2行目:=SUM(K2:P2)
  • 3行目:=SUM(K3:P3)

セル範囲を通常参照できる場合は、INDIRECTを使わないほうが処理速度も速く、管理もしやすくなります。

INDIRECT関数を使うべき場面

INDIRECT関数は、セル参照を文字列から作成したい場合に便利な関数です。

例えば、入力した文字によって参照する範囲を変えたい場合や、別シートの名前を指定して参照したい場合などに活用できます。

一方で、単純にコピーして参照範囲をずらしたいだけの場合は、通常のセル参照やINDEX関数などのほうが適している場合があります。

Excel初心者の場合は、まず通常のセル参照でフィルの動きを理解し、必要な場面だけINDIRECT関数を使うと覚えやすくなります。

iPhone版Excelで数式をフィルする時のポイント

iPhone版Excelでも数式のコピーやフィルは可能ですが、パソコン版と比べて操作場所が分かりにくい場合があります。

数式を入力したセルを選択し、セル右下のフィルハンドルをドラッグすることで下方向へコピーできます。

ただし、INDIRECT関数のように文字列で参照を指定している数式は、自動的に変化しないため、ROW関数などを組み合わせた数式を利用する必要があります。

まとめ:INDIRECT関数はROW関数と組み合わせるとフィルできる

「=SUM(INDIRECT(“K1:P1”))」をそのままコピーしても、INDIRECT内の文字列は変化しないため、参照範囲は移動しません。

下方向へ1行ずつずらしたい場合は、「=SUM(INDIRECT(“K”&ROW()&”:P”&ROW()))」のようにROW関数を組み合わせることで自動調整できます。

ただし、単純な合計計算なら「=SUM(K1:P1)」のような通常の参照のほうが簡単で、Excelでは一般的な方法です。用途に合わせてINDIRECT関数を使い分けることが重要です。

コメント

タイトルとURLをコピーしました