この投稿は前のページからの続きで連載物になっていますので、このページのみでは意味が分からないと思います。
<まずはサンプルの表に式をコピーして償却費合計を計算させてみよう>
コピーするサンプル式
=SUM((MOD(ROW(N5:N16),3)=0)*N5:N16)
この式をサンプルワークシートのN36セルにコピーしてみよう。
結果は #VALUE! と表示されてしまい、エラーです。
そこで、このセルをダブルクリックして編集モードにし、ShiftキーとCtrlキーを同時に押しながら、更にEnterキーを押します。
そうすると、今度は先ほどコピーした式が{ }で囲まれた式となり、エラーとならなくなりました。これは、Excelが複合数式と認識して1行ごとに計算している為です。
注意)Excelに複合数式である事を認識させる為には、式を入力して確定させる時に、ShiftキーとCtrlキーを同時に押しながら、更にEnterキーを押します。
この式を横にずっとコピーしていくと、3行おきの合計が計算され、償却費のみの合計が出ます。
書式が設定されてないので、小数点以下が沢山表示されて見づらいので、範囲指定して上の書式バーの,をクリックして3桁区切りで桁を揃えると見やすくなります。
<ここで使用する関数の働き>
SUM
これは、皆さんご存知だと思うので省略しますが、サンプル式では =SUM(N5:N16) でN5からN16までの、ROWとMODで計算される各行の答えが3となる行のみの合計をとります。
MOD
Microsoft Excelのヘルプを参照すると、
「数値を除数で割ったときの剰余を返します。戻り値は除数と同じ符号になります。」
とあります。何だか難しい言葉で書かれていますが、要するに割り算をして余り(割り切れなかった半端な数)を求める関数です。ここではExcelの行ナンバーを3で割って、その余りがゼロ、つまり3で割り切れる行、6,9,12,15行の償却費合計を求める事になります。
サンプル式の余りを2に変更すると、3で割った余りが2の行、5,8,11,14で簿価の合計が求められる事になります。=SUM((MOD(ROW(N5:N16),3)=2)*N5:N16)
ROW
Microsoft Excelのヘルプにを参照すると、
「引数として指定された配列の行番号を返します。」
とあります。つまり、Excelの左に表示されている行ナンバーの値そのものです。
*(AND)
Microsoft Excelのヘルプを参照すると、ANDは
「すべての引数が TRUE のとき、TRUE を返します。引数が 1 つでも FALSE である場合、戻り値は FALSE になります。」とあります。数字を扱っている場合は条件を満足する場合は1、そうでない場合は0です。ただ、ここで掛け算の様に書かなかったのは、この*が文字の演算にも使える為です。
この*の働きで、その左側で計算した行ナンバーを3で割った答えが0の場合だけSUMを計算する事になります。
以上です。