実績/予算ごとの3年間通算累計を出力解答
エクセル練習問題解答ページです。
エクセル練習問題

| 年度 | 区分 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
| 2023 | 実績 | 667 | 118 | 803 | 919 | 607 | -709 | -796 | 820 | -588 | 8 | 104 | -356 | |
| 2023 | 予算 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | |
| 2024 | 実績 | 31 | -238 | -430 | -220 | -638 | 903 | -788 | 431 | 730 | -179 | -554 | 246 | |
| 2024 | 予算 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | |
| 2025 | 実績 | -219 | -321 | -23 | -470 | 740 | 530 | -412 | 824 | 349 | -632 | 575 | -439 | |
| 2025 | 予算 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | |
| 通算累計 | 2023 | 実績 | 667 | 785 | 1588 | 2507 | 3114 | 2405 | 1609 | 2429 | 1841 | 1849 | 1953 | 1597 |
| 2023 | 予算 | 30 | 60 | 90 | 120 | 150 | 180 | 210 | 240 | 270 | 300 | 330 | 360 | |
| 2024 | 実績 | 1628 | 1390 | 960 | 740 | 102 | 1005 | 217 | 648 | 1378 | 1199 | 645 | 891 | |
| 2024 | 予算 | 410 | 460 | 510 | 560 | 610 | 660 | 710 | 760 | 810 | 860 | 910 | 960 | |
| 2025 | 実績 | 672 | 351 | 328 | -142 | 598 | 1128 | 716 | 1540 | 1889 | 1257 | 1832 | 1393 | |
| 2025 | 予算 | 1000 | 1040 | 1080 | 1120 | 1160 | 1200 | 1240 | 1280 | 1320 | 1360 | 1400 | 1440 |
お好きな方法で良いです。
どんな方法が良いのだろうか🤔
なるべく簡単で、なるべく保守しやすい方法。
やってみてください。
スピルの便利さが実感できると思います。
シンキングタイム
シンキングタイム終了
ここで、じっくり勉強して下さい。
エクセル練習問題解答
4つの数式を提示します。
=LET(
tbl,D2:O7,odd,{1;3;5},even,{2;4;6},
実績,SCAN(0,CHOOSEROWS(tbl,odd),SUM),
予算,SCAN(0,CHOOSEROWS(tbl,even),SUM),
SORTBY(VSTACK(実績,予算),VSTACK(odd,even))
)- データ範囲を tbl として確保
あとで何度も参照するので名前を付けている。 - 奇数行・偶数行番号のリストを用意
奇数行=実績、偶数行=予算として扱う。 - 実績の累計表を作る
奇数行だけを取り出し、それぞれに対して左から右へ累計(SCAN)を計算する。 - 予算の累計表を作る
偶数行について同じ処理を行う。 - 実績と予算を縦に結合し、奇数行・偶数行番号のリストを使って並べ替える。
=LET(
tbl,D2:O7,
実績,SCAN(0,CHOOSEROWS(tbl,{1,3,5}),SUM),
予算,SCAN(0,CHOOSEROWS(tbl,{2,4,6}),SUM),
rtn,REDUCE("",SEQUENCE(6),LAMBDA(x,y,VSTACK(x,IF(ISODD(y),CHOOSEROWS(実績,INT(y/2)+1),CHOOSEROWS(予算,y/2))))),
DROP(rtn,1)
)- データ範囲を tbl として確保
- 実績(1・3・5 行)だけを抜き出して横方向の累計を作成
SCAN により左から右へ累計を計算。 - 予算(2・4・6 行)も同様に累計を作成
- REDUCE で 1~6 行を順番に組み立てる
- 行番号が奇数なら「実績」の該当行を取り出す
- 行番号が偶数なら「予算」の該当行を取り出す
これを縦に積み上げていく(VSTACK)。
- 最初の空行(REDUCE の初期値)を削除
=LET(
_Data,D2:O7,
_Year,B2:B7,
_Type,C2:C7,
_Prev,MAP(_Year,_Type,LAMBDA(y,t,SUM((_Year<y)*(_Type=t)*_Data))),
_Run, MMULT(_Data,N(SEQUENCE(COLUMNS(_Data))<=SEQUENCE(1,COLUMNS(_Data)))),
_Prev+_Run
)- _Data / _Year / _Type
行ごとの 数値データ・年度・区分(実績/予算など) を抽出して名前を付けている。 - _Prev(前年までの累計)
MAP+条件付き SUM を使って、各行について:
・年度が自分より前
・種別(_Type)が同じ
という行のデータを全部合計して「前年までの累計」を求めている。
(例:2024年・実績 → 2023年以前の実績データを合計) - _Run(当年の行内での横方向累計)
MMULT を使って、その行の左から右へ累計(行内ランニングサム) を作っている。
(SCAN ではなく MMULT を使った古典的手法) - _Prev + _Run
・左から右へ積み上がる累計(_Run)
・過去年の累積(_Prev)
この2つを足して、年+種別ごとの通算累計 を完成させている。
"過去年度分" と "当年の行内累計" を合算して、年度別の連続した累計表を作る式、という構造です。
=SUM(($B$2:$B$7<$B8)*($C$2:$C$7=$C8)*$D$2:$O$7)+SUM($D2:D2)
D2:O7の全てのセルに数式を入れてください。
- SUM(...)
ここでは 前年までの累計 を出しています。
・年度(B列)が 自分より前の行
・種別(C列)が 自分と同じ行
という条件に一致する行だけを選び、その行の D~O 列のデータを全部合計 します。
つまり、「同じ種別について、自分より前の年度のデータを全部足す」という処理。 - SUM($D2:D2)
ここは 当年(自分の行)の、左からの累計(行内ランニングサム)。
その行の D 列だけを足しているので、
左へ伸ばせば D→E→F… と累計になっていく仕組み。 - 全体
過去年の累積(SUMPRODUCT)
+
当年の行内累計(SUM)
= 通算累計 を1つの式で求めている、という形です。
※本記事の作成にあたっては随所で生成AIを活用しています。全て最終的に人間が確認した後に掲載しています。
同じテーマ「エクセル練習問題解答」の記事
エクセル試験1:曜日別の平均客単価解答
エクセル試験2:所得税の計算解答
エクセル試験3:月間の所定労働時間解答
指定日付の有効最新マスタ一覧(履歴マスタ)解答
スピルの基本練習と最新関数解答
入力規則とスピルと最新関数解答
日別データから欠損月を追加して年月集計解答
偶数月に前月分と合わせて2か月分を受け取る解答
最長連続出現数(ランレングス)の算出解答
実績/予算ごとの3年間通算累計を出力解答
数値を記号の積み上げでグラフ化する(■は10、□は1)解答
新着記事NEW ・・・新着記事一覧を見る
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
- ホーム
- エクセル全般
- エクセル練習問題解答
- 実績/予算ごとの3年間通算累計を出力解答
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
