エクセルのsumproduct関数で年度をまたがるカレンダーで月毎の 集計をする#エクセル

日付を入れている列を「日」と名前を定義し、数を計算したい列を「日授給」と名前を定義しておく。日付の所は1,2,3と数字を入れるのではなく、「2011/4/1」などと入力して表示形式で日の数字だけを表示する設定をユーザー定義「d」としておく。

sumproduct((text(日,”yymm”)=”1104″)*(日授給=”x”))
として、年月日を西暦年の末尾をとり、それと一致する月の集計を行う。こうすることにより年度をまたがって、3月、4月の欄があっても、両方を集計することはない。つまり、2011年の3月と2012年の3月を別の月として扱うことができる。
 このカレンダーの中で、年度外の日にちを「””」として入力するようにif関数で設定していた。ところがこのようにしていると、sumproductで集計しようとすると「#VALUE!」の表示になってしまう。この原因を理解するまでにかなり時間を費やしてしまった。空白にするために「””」で表示していたが、sumproductでは文字列があると認識して、日にち(数値)と文字列が混じることによって、「#VALUE!」となってしまっていた。
これを回避するために、年度外の日にちを表示したくない場合には、条件付き書式で年度外を文字色を白に設定する。集計欄に書き込みがあっても、年月が違うことにより誤って集計されることはない。

No tags for this post.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください