6/10/2022

Excel。列ごとに違う行にある値の減算を手早く算出するにはどうすればいいの。【Subtraction】

Excel。列ごとに違う行にある値の減算を手早く算出するにはどうすればいいの。

<OFFSET関数>

日々の在庫数が入力されたデータ。

いくつ減ったのかを確認したいわけですが、単純に引き算の数式をつくればいいというわけにはいきません。


次の表で確認してみましょう。


6行目の減少数を算出する数式を作りたいのですが、最初の在庫数から、最新の在庫数を減算すればいいことは、わかります。


B6の数式は、

B2-B3


C6の数式は、

C2-C4


D6の数式は、

D2-D5


という数式になることはわかります。


どの場合も、最新の在庫数のセル番地を数式で使う必要があります。


減算の数式ではないのですが、オートフィルで、B6の数式をコピーしても意味がありません。


どのようにしたら、オートフィルをつかって手早く算出する数式を作ることができるのでしょうか。


このような時は、OFFSET関数を使うことで、問題を解決することができます。


B6の数式を、次のように設定します。

=B2-OFFSET(B3,COUNT(B4:B5),0)

この数式をオートフィルで列方向にコピーすれば、減少数を算出することができます。


このOFFSET関数がどのような動きをしているのかも、確認しておきましょう。


OFFSET関数は、参照を起点とした座標先のデータを抽出することができる関数です。

そこで、2日目から最後の4日目までのどこが、最新のデータなのかを抽出するように引数を設定してあげればいいわけです。


OFFSET関数の引数は、「参照,行数,列数,高さ,幅」で構成されています。


B3:B5の中から、最新のデータを抽出したいのがOFFSET関数でやりたいことです。

それを踏まえておきます。


参照は、B3:B5のスタートのセル番地なので、B3。


行数ですが、参照で設定したセル番地から何行下にあるのかを算出したいので、B4:B5の件数が、参照からみた最新のデータです。

COUNT関数をつかって、データの件数を算出します。


今回は、高さと幅は省略できるので、省略します。


算出した値を、最初のデータから減算すれば、減少数を算出できるというわけです。


簡単に思える数式も、少し工夫が必要な場合もあります。

そのような時には、OFFSET関数をつかうことで、手早く算出する数式をつくることができるかもしれません。