メインコンテンツへスキップ
見出し画像

12枚の月別シートを、1枚の年間表にまとめる方法

    Excelの画面のいちばん下に、シートのタブが12枚並んでいた。

    4月、5月、6月……とずっと右まで続いて、いちばん端が3月。

    一年ぶんの売上を、月ごとに1枚ずつシートに分けて記録していたブックだ。

    分けること自体は、間違っていない。月ごとに見たいし、入力もしやすい。

    問題は、年度末に「一年の合計を出して」と言われた瞬間に起きた。

    合計は、どのシートにも「その月ぶん」しか無い。年間の数字は、どこにも無いのだ。

    仕方なく、私は新しいシートを1枚足して、こう打ちはじめた。

    =4月!B7+5月!B7+6月!B7+7月!B7+ ……
    

    各月シートの合計セルを、プラスでつないでいく。12枚ぶん、手で。

    途中で電話が鳴った。戻ってきて、続きを打った。答えは、ちゃんと出た。

    そのときの私の画面が、これだ。

    画像

    数字は出ている。エラーも赤字も、どこにも無い。

    だから、そのまま報告書に貼るところだった。

    でも、なんとなく「先月より少なくないか」と引っかかって、指で1枚ずつ数え直した。

    4月、5月、6月……あった。2月が、無い。

    電話で中断したあと、私は2月のシートを1枚、飛ばして打っていた。

    2月ぶんは58万円。それがまるごと、年間合計から消えていた。

    恐ろしいのは、Excelが何も言わないことだ。

    11枚を足しても、式としては完全に正しい。だから警告も出ない。

    「1枚足し忘れた」という事実は、人間が気づく以外に、教えてくれる仕組みがない。

    これが月シートを手で足すことの、本当の怖さだ。

    シートが12枚なら、足し算の項も12個。店舗や部門が増えれば、式はもっと伸びる。

    そして式を手で書き直すたびに、また1枚どこかを抜かす確率が上がっていく。

    このやり方を、私はある日きっぱりやめた。

    Excelには、複数のシートの同じ場所を、1つの式でまとめて集計する仕組みがある。

    シートが何枚あろうと、書くのはたった1行。足し忘れは、構造的に起きなくなる。

    この記事では、その「串刺し集計」を最初から組み立てる。

    3D参照で全シートを一発で足す方法、見たい月だけを1セルで呼び出すINDIRECT、そして12ヶ月を自動で一覧にする形まで。

    年度末に指を折って数え直す作業は、これで終わりにする。


    まず、月シートを分けること自体は正しい

    最初にはっきりさせておきたい。

    「月ごとにシートを分けるのが、そもそも間違い」という話ではない。

    1枚のシートに一年ぶんを全部詰め込むと、行が何千行にもなって、月の切れ目が見えなくなる。

    月ごとに分けておけば、その月だけを見られるし、入力する場所も迷わない。

    分ける設計は、むしろ自然だ。問題は「分けたあと、どう束ねるか」だけにある。

    そして束ね方さえ知っていれば、分けることの利点はそのまま残せる。

    ここから使う仕組みには、たった1つだけ前提がある。

    12枚のシートが、どれも同じ形をしていること。 同じ位置に、同じ店舗、同じ合計がある状態だ。

    月シート1枚の中身は、こうだ。

    画像

    本店・駅前店・郊外店の3店舗があって、それぞれの売上が縦に並ぶ。

    いちばん下のB7に、その月の合計が入っている。

    この形を、4月から3月まで、12枚すべてでそろえてある。

    そろえるコツは簡単で、1枚をテンプレートにして、あとはコピーで増やすことだ。

    新しい月が来たら、前の月のシートをコピーして、数字だけ入れ替える。

    こうしておけば、どのシートでも「本店はB4、月合計はB7」と場所が決まる。

    この「同じ場所」という約束が、次からの集計を全部支える土台になる。

    3D参照=全シートの同じセルを、1式で足す

    いよいよ本題だ。まず「全部まとめて足す」を1行で書く。

    使うのは3D参照と呼ばれる書き方。名前はいかついが、中身はSUMの延長でしかない。

    普通のSUMは、1枚のシートの中の範囲を足す。

    3D参照は、それを「シートをまたいで」やる。書き方はこうだ。

    =SUM('4㜈:3㜈'!B7)
    

    読み解くと、こうなる。

    '4月:3月'が「4月シートから3月シートまで」という、シートの範囲だ。

    そのうしろの!B7が「各シートのB7」。

    つまり「4月から3月まで、全シートのB7を足せ」という命令になる。

    12枚のB7、つまり各月の合計が、これひとつで足し合わさる。

    先頭と末尾のシート名を:でつなぐだけ。間の10枚は、自動で巻き込んでくれる。

    手で12個プラスを打っていたあの作業が、まるごと1行に化ける。

    このシート範囲は、実は手で打たなくてもいい。

    集計シートで=SUM(まで打ったら、まず4月シートのタブをクリックする。

    次に、キーボードのShiftを押しながら、いちばん端の3月シートのタブをクリックする。

    これで4月から3月までのタブが全部まとめて選ばれる。あとは、どれかのシートでB7をクリックして)で閉じるだけだ。

    '4月:3月'!B7の部分は、Excelが自動で書いてくれる。クォートの付け方に悩む必要もない。

    実際に組んで、手で全部足した数字と突き合わせた。

    画像

    総合計は8,706,000円。3D参照でも、12枚を手で足しても、ぴったり同じ数字が出る。

    しかも3D参照なら、2月を抜かすような事故は起こしようがない。範囲を指定した時点で、間の全シートが対象になるからだ。

    店舗別の年間売上も、同じ理屈で出せる。

    本店はどのシートでもB4にある。だから、こう書く。

    =SUM('4㜈:3㜈'!B4)
    

    これで本店の一年ぶんが出る。駅前店はB5、郊外店はB6と、参照するセルを変えるだけだ。

    本店は4,095,000円、駅前店は2,688,000円、郊外店は1,923,000円。3店を足すと、ちゃんと総合計に一致する。

    3D参照の得意技は「全シートの、同じ場所」をまとめること。 場所さえそろっていれば、シートが何枚でも1行で足せる。

    一つ注意がある。シート名を'(シングルクォート)で囲んでいるのは、4月のように数字で始まる名前でも壊れないようにするためだ。

    囲っておけば、月シートの名付けで悩まなくて済む。迷ったら囲む、で覚えておけばいい。

    SUMだけじゃない。平均も最大も、串刺しで出る

    3D参照は、SUM専用ではない。

    同じ書き方のまま、関数名を替えるだけで、いろいろな集計ができる。

    関数名を替えるだけで、これだけ分かる。

    画像

    月あたりの平均売上を出したいなら、SUMをAVERAGEに替える。

    =AVERAGE('4㜈:3㜈'!B7)
    

    12ヶ月の月合計を平均して、725,500円と出る。

    いちばん売れた月の額を知りたいなら、MAXだ。

    =MAX('4㜈:3㜈'!B7)
    

    12枚のB7の中で最大の870,000円が返る。反対に、MINなら最低の580,000円。

    「データが入っている月は何ヶ月ぶんあるか」を数えるなら、COUNTを使う。

    =COUNT('4㜈:3㜈'!B7)
    

    数字が入っているシートを数えて、12と出る。

    このCOUNTは、地味だが効く。

    まだ売上を入力していない月があれば、この件数が12より小さくなる。だから「入れ忘れた月がある」ことに、数字で気づける。

    書く形は全部同じで、変えるのは関数名だけ。 合計・平均・最大・最小・件数が、この12枚から一気に出る。

    一つだけ、MAXの弱点を言っておく。

    MAXは「いちばん高い額」は出すが、「それが何月か」までは教えてくれない。

    月の名前まで欲しいときは、このあと作る月別一覧とMATCHを組み合わせる。それは後の章で扱う。

    月を1枚だけ指名したい。それがINDIRECT

    3D参照は「全シートまとめて」がとても得意だ。

    でも「7月だけ見たい」のように、シートを1枚だけ名指しするのは苦手だ。

    月を選ぶセルの中身に合わせて、参照する先を切り替えたい。ここで登場するのがINDIRECTだ。

    INDIRECTは「文字で書いた住所を、本物のセル参照として読む」関数だと思えばいい。

    たとえば、B3というセルに「見たい月」を入れておく。そのB3を使って、こう書く。

    =INDIRECT("'"&$B$3&"'!B4")
    

    "'"&$B$3&"'!B4"の部分は、ただの文字の組み立てだ。

    B3が「8月」なら、この文字列は'8月'!B4という文になる。

    INDIRECTは、その文字列を「実際のセル参照」として解決する。結果として、8月シートのB4を引いてくる。

    プルダウンで8月を選ぶと、こうなる。

    画像

    本店・駅前店・郊外店の値が、全部8月のものに切り替わる。合計も8月の870,000円だ。

    B3を7月に変えれば、一斉に7月の数字へ。12月にすれば12月へ。

    セルを1つ書き換えるだけで、シート1枚ぶんの数字が丸ごと差し替わる。

    「全部まとめて」は3D参照、「1枚だけ指名」はINDIRECT。 この2つを場面で使い分ける。

    さっきの3D参照のときと同じで、シート名は'で囲んである。8月のように数字始まりの名前でも、これで安全だ。

    この形を印刷用の1枚に仕込めば、月を選ぶだけで中身が入れ替わる「月別ビューア」ができあがる。

    毎月おなじレイアウトで印刷したいときに、これが効く。

    12ヶ月を、自動で一覧にする

    INDIRECTの本当の威力は、一覧にしたときに出る。

    A列に月の名前を縦に並べておく。4月、5月、6月……と3月まで。

    その隣に、こう書く。

    =INDIRECT("'"&A4&"'!B7")
    

    さっきと違うのは、$B$3ではなくA4を見ている点だ。

    A4が「4月」なら、4月シートのB7を引く。A5が「5月」なら、5月シートのB7を引く。

    つまり、この式を下にコピーするだけで、各行が「その行に書いた月」の合計を拾ってくる。

    12回ちがう式を書く必要はない。1つ書いて、下へコピーするだけだ。

    12ヶ月を縦に並べると、こうなる。

    画像

    各月の売上が縦にそろい、いちばん下の年間計は8,706,000円。3D参照で出した総合計と、当然ながら一致する。

    一覧にしてしまえば、あとは自由自在だ。

    隣に構成比の列を足せば、どの月が全体の何%かがすぐ見える。

    グラフにすれば、季節の山と谷が一目で分かる。

    そして、さっきMAXでは出せなかった「いちばん売れた月の名前」も、ここで名指しできる。

    =INDEX(月名の列, MATCH(MAX(合計の列), 合計の列, 0))
    

    MAXで最高額を出し、MATCHがそれが何行目かを探し、INDEXがその行の月名を取り出す。

    結果は「8月」。最低は「2月」と、ちゃんと名前で返る。

    MAXは額しか出さない。その弱点を、一覧とMATCHで埋める。 額と名前が両方そろって、はじめてレポートになる。

    月名リストを直せば、一覧もついてくる。翌年度に月の並びを変えても、式はそのまま使える。

    ゼロから組むなら、この順番で

    仕組みが分かったところで、実際に一から作るときの順番を書いておく。

    まず、月シートを1枚だけ、ていねいに作る。

    店舗名を縦に並べて、売上の列を用意して、いちばん下に=SUM(...)で月合計を入れる。この1枚が全部の型になる。

    次に、そのシートのタブを右クリックして「移動またはコピー」を選び、「コピーを作成する」にチェックを入れて増やす。

    12枚に増やしたら、タブの名前を4月、5月……と順に変えていく。中の数字も、その月のものに入れ替える。

    ここで大事なのは、行の位置を1枚もずらさないことだ。コピーで増やしている限り、位置は勝手にそろう。手で作り直さないのが、そのコツになる。

    12枚がそろったら、いちばん左か右に、集計用のシートを1枚足す。

    月シートのかたまりの「外側」に置くのを忘れない。間に挟むと、さっきの二重計上が起きる。

    その集計シートに、年間合計の=SUM('4月:3月'!B7)を置く。店舗別も、参照するセルを変えて並べる。

    最後に、月名を縦に並べて=INDIRECT("'"&A4&"'!B7")をコピーすれば、12ヶ月の一覧が完成する。

    この順番なら、迷うところがない。土台の1枚を作り込む→コピーで増やす→外側で束ねる。 これだけだ。

    一度この形にしておけば、翌年度は月シートの数字を入れ替えるだけで、集計は全部ついてくる。

    つまずきどころは、決まっている

    串刺し集計は強力だが、事故る場所はだいたい決まっている。ここさえ外さなければ大丈夫だ。

    気をつける場所を、1枚にまとめた。

    画像

    一つ目。3D参照の集計シートを、月シートの「間」に置かない。

    =SUM('4月:3月'!B7)は「4月から3月まで、間に並ぶシート全部」を足す。

    もし集計用のシートを、うっかり4月と3月の間に差し込むと、その集計シート自身まで足し算に巻き込まれる。

    二重計上になったり、#REF!が出たりする原因になる。

    月シートは連続でひとかたまりにまとめ、集計シートはその外側、先頭か末尾に置く。これだけで防げる。

    二つ目。新しい月を足すなら、範囲の内側に入れる。

    翌年度の4月を、3月の後ろに足しても、'4月:3月'の外側なので拾われない。

    範囲の内側に差し込めば、式を1文字も直さずに自動で増える。年度をまたぐときは、端のシートの置き方に気をつける。

    三つ目。INDIRECTは、閉じたブックを読めない。

    INDIRECTが参照できるのは、開いているシートだけだ。別のファイルを閉じた状態で引こうとすると#REF!になる。

    同じブックの中でシートを集計しているぶんには、この問題は起きない。

    四つ目。INDIRECTを使いすぎると、重くなる。

    INDIRECTは「毎回その都度、計算をやり直す」タイプの関数だ。何千セルにも敷き詰めると、再計算がもたつく。

    だからこそ、「全シートまとめて」は3D参照、「月を1枚指名」はINDIRECTと使い分ける。役割が違うのだ。

    最後にもう一度。すべての土台は「12枚が同じ形」であること。

    3D参照もINDIRECTも、「どのシートでも同じ位置に同じ項目がある」ことが大前提だ。

    1枚だけ行がずれていると、静かに別のセルを拾う。ここでもエラーは出ない。

    だから月シートは、必ず1枚をテンプレにしてコピーで増やす。手打ちで新規に作らない。

    分けて記録し、1枚で束ねる

    長く書いたが、覚えることは多くない。

    月ごとにシートを分けるのは、正しい。分けたものを束ねる道具を、2つ持てばいい。

    全シートの同じ場所をまとめるのが、3D参照。書き方は=SUM('先頭:末尾'!セル)。

    見たい月を1枚だけ呼び出すのが、INDIRECT。月名を文字で組み立てて参照する。

    この2つがあれば、年度末に指を折って数え直すことは、もう二度と起きない。

    シートが12枚だろうと、24枚だろうと、書くのはたった1行だ。

    そして何より、2月を1枚抜かして58万円を消す、あの静かな事故が構造的に起きなくなる。

    Excelの下に並んだ12枚のタブは、もう怖くない。1式で、全部まとめて束ねられる。


    配布のお知らせ。この記事で組み立てた「串刺し集計スターターキット」を無料で渡している。

    4月から3月までの12枚の月シートと、それを束ねる集計シートが、最初から一式そろっている。

    3D参照での年間集計・店舗別集計、平均や最大の出し方、INDIRECTの月別ビューア、そして月名を並べるだけの12ヶ月一覧まで。数字を入れ替えれば、そのまま自分の集計に使える。

    もちろん、実際のExcelで全部の数式を計算し直して、値が合うこと・想定外のエラーがゼロなことを確かめてある。

    下のLINEに登録して、「串刺し」 とひとこと送ってほしい。ダウンロードリンクを自動でお返しする。

    画像

    Excel時短・業務自動化・AI活用のネタを、ふだんもLINEとnoteで配っている。よかったら覗いてみてほしい。

     
     
    \初心者OK!自動化・効率化できるExcel教室/ ◇AI×Excelの仕事時短術で自分の時間爆増! ◇自分だけの自動化ツールがつくれる! ◆元PC平凡▶半年で職場のExcel先生 ◆AIを使った自動化ツール作成数100超

    あなたへのおすすめ