納品文書サンプル 01 — 仕様書 サンプル一覧 ポートフォリオTOP
この文書は見本です。題材は見本用に自作した架空のスクリプトで、実際のお客様のファイル・データは一切使用していません。

仕様書

— このスクリプトが「何を・どの順で・何を出力するか」の説明書 —

対象スクリプトdaily_sales_report.py(複数店舗 日次売上集計)
ご依頼内容各店舗から届く日次売上CSVを、月次のExcelレポートに自動集計
実行環境Windows 10/11・Python 3.12/ライブラリ:pandas, openpyxl
作成日2026-07-02
作業方法お客様の実データは使用せず、ダミーCSVのみで開発・確認しています

1. このスクリプトがやっていること(全体像)

input/ フォルダに置かれた各店舗の日次売上CSV(複数ファイル)をすべて読み込み、 店舗別・日別に集計したうえで、1つのExcelレポート(グラフ・店舗別シートつき)として output/ フォルダに出力します。 毎月手作業でCSVを開いてコピー&ペーストしていた集計作業を、フォルダにCSVを置いて実行するだけで完了する状態にするものです。

2. 入力ファイルの想定形式

input/ フォルダの中にある *.csv をすべて対象とします。1店舗=1ファイルで、 ファイル名は問いません(フォルダ内のCSVを自動で読み取ります)。各CSVの列構成は次のとおりです。

列名形式内容
日付YYYY-MM-DD売上が発生した日付
店舗名文字列店舗の名称(レポートの店舗別シート名に使用)
売上金額数値(円・カンマなし)その日の税込売上合計
客数整数その日の来客数(客単価の算出に使用)
サンプルCSVの1行目(ヘッダー)
日付,店舗名,売上金額,客数
2026-06-01,渋谷店,182400,96
2026-06-01,新宿店,204300,110

3. 処理の流れ

全体の処理順序 main()

  1. input/ フォルダ内のCSVファイルを一覧取得(0件ならメッセージを出して終了)
  2. ファイルを1つずつ読み込み、列名・日付形式・欠損値をチェック(異常があれば4章のとおり記録して次のファイルへ)
  3. すべてのCSVを1つの表に結合
  4. 「店舗別」「日別」「店舗×日別」の3パターンで集計(pandasのgroupby
  5. Excelブックを新規作成し、集計結果をシートごとに書き出し(openpyxl)
  6. 店舗別売上の棒グラフをExcel内に自動生成
  7. output/売上レポート_YYYYMMDD.xlsx として保存し、完了メッセージを表示

4. 出力Excelレポートの構成

シート名内容
サマリー期間全体の合計売上・合計客数・平均客単価、店舗別売上の棒グラフ
店舗別集計店舗ごとの合計売上・合計客数・平均客単価の一覧表
日別集計日付ごとの全店舗合計売上・客数の一覧表
明細(店舗×日)店舗×日付のクロス集計表(ピボット形式)
取込エラー一覧読み込みに失敗した行・ファイルがあった場合のみ、内容と理由を記載

5. 必要なライブラリ

ライブラリ用途
pandasCSVの読み込み・結合・集計(groupby / pivot_table)
openpyxlExcelブックの作成・書式設定・グラフ生成

バージョンは requirements.txt に固定して同梱します。インストール方法は 実行手順書をご覧ください。

6. エラー時の挙動

⚠ 想定しているエラーと挙動

想定外のエラーが起きた場合も、原因箇所とエラー内容を output/error_log.txt に記録してから終了する設計です(実行画面が消えても後から確認できます)。