スゴ技会計士からの挑戦状 VOL.22
10月 26, 2017
【繰り返しを操る技】
集計開始日と集計終了日のデータを、1行目の数式をコピペするだけで完成させる問題の解答例です。
これをみただけで「なるほどそういうことか」と思った方は、ぜひ実務での活用場面を考えてみてください。
ひとつずつ解説します。
集計開始日と集計終了日を観察して気付くことは何でしょうか。
・2行ごとに1月増える
・集計開始日は1と16の繰り返し
・集計終了日は15と末日の繰り返し
といったことが分かると思います。
まずは2行ごとに1ずつ増える「追加月」のデータを作成してみましょう。
これは連番を作成して連番を2で割った結果を切り捨てると作成できます。
=ROUNDDOWN(I2/2,0)
完全に算数の問題ですが、思い付きましたでしょうか。
「追加月」を求めることができると「年」「月」が完成します。
「月」にはゼロ以下や12より大きい数字も指定できるので、「年」はすべての行が同じでいいのです。
あとは「日」を求めればできます。
集計開始日も集計終了日も2パターンの繰り返しなので、繰り返しのデータを作成します。
まずは「flg」列に「0」と「1」の繰り返しを作成してみましょう。
これも算数の問題です。
連番を2で割った余りは「0」と「1」の繰り返しになります。
=MOD(I2,2)
「0」と「1」の繰り返しを使って「1」と「16」の繰り返しを作成してみましょう。
IF関数なんて使ってはいけません。
計算で求めることができます。
=15*M2+1
末日は「0」として、「15」と「0」の繰り返しを作成してみましょう。
=15*(1-M2)
年月日を求めることができたので、DATE関数で仕上げます。
集計開始日はシンプルに
=DATE(K2,L2,N2)
となります。
集計終了日は少し工夫しています。
末日が「翌月のゼロ日」となるようにしています。
1行作成したら後は何万行でもコピペで完成します。
観察によって規則性を発見し、少ない数式で大量データを処理することができるとExcelが楽しくなりますよ!