Skip to content

Repository files navigation

クレジットカード明細集計

日本の会計年度(4月始まり・3月終わり)に対応し、年度別のクロス集計、予算比較、および理事会報告用PDFの自動生成を行います。

📋 主な機能

  • CSVインポート: CSVファイルを読み込み、重複を排除してデータベース化。
  • 名寄せ処理: 複雑な決済名(ZOOM, GOOGLE等)をクリーンな名称に自動統一。
  • 年度別クロス集計: 4月〜翌3月の月次推移表を自動生成。
  • 理事会用PDF出力: 報告に必要な列だけを抽出したPDFを自動生成し、指定フォルダへ格納。

📂 ファイル構成

ファイル名 役割
importAndSummary.js CSV取り込み、名寄せ、集計表作成(メインロジック)
menu.js スプレッドシート上部への専用メニュー追加
reportGenerator.js 理事会報告用PDFの生成・保存処理
setup.js 外部マスター連携(IMPORTRANGE)および初期シート作成
validator.js 集計データの計算整合性チェック

⚙️ 初期設定(重要)

本ツールを動作させるには、スプレッドシートの「スクリプトプロパティ」に以下の値を設定する必要があります。 (設定場所:[設定(歯車アイコン)] > [スクリプトプロパティ])

プロパティ名 設定値の例 内容
FOLDER_ID 1abc123... 取り込み対象のCSVが格納されているGoogleドライブのフォルダID
PDF_FOLDER_ID 1xyz789... 生成したPDFを保存する先のフォルダID
INITIALIZED true 初回実行が完了すると自動でセットされます(手動設定不要)
TARGET_FILE_NAME 202504.csv 特定のファイルだけを再取り込みしたい場合に使用(任意)

🚀 使い方

  • データのインポート

    • 指定のフォルダに YYYYMM.csv 形式のファイルをアップロードします。
    • メニューから「1. CSVインポートと集計実行」を選択します。
  • PDFの作成

    • 必要時に「2. 理事会用PDFを作成」を実行します。
    • 実行日時に応じた「今年度」と「前年度」のPDF(計4枚)が生成されます。

🔍 名寄せ(項目名の正規化)について

本ツールでは、決済代行会社やカード明細によって表記が異なる項目名を、normalizeItemName.gs 内の normalizeItemName_ 関数で統一しています。

仕様

  1. 記号・空白の半角化: 全角英数字、全角記号、全角空白をすべて半角に変換します。
  2. 大文字統一: 比較を容易にするため、内部的にすべて大文字として処理します。
  3. キーワードマッチング: if (n.includes('キーワード')) を用いて、特定の文字列が含まれている場合に正式名称へ変換します。

新しいサービスを追加する方法

新しいサブスクリプションや、正しく名寄せされていない項目を見つけた場合は、normalizeItemName.gs 内の normalizeItemName_ 関数に以下の形式で追記してください。

  • 注意点

    • 判定用のキーワード(includes の中身)は、必ず半角の大文字で記述してください。

    • ルールは上から順に判定されます。より具体的な名称(例:GOOGLE STORAGE)を先に判定させたい場合は、一般的な名称(例:GOOGLE)より上の行に記述してください。

// 例:新しいサービス「Slack」を追加する場合
if (n.includes('SLACK')) return 'Slack';

// 例:複数のキーワードを一つの名称にまとめたい場合
if (n.includes('MICROSOFT') || n.includes('AZURE')) return 'Microsoft / Azure';

⚠️ 注意事項

  • CSVの形式: Shift-JIS形式のCSVを想定しています。
  • 列の非表示: PDF作成時にプログラムでB〜M列を一時的に非表示にします。処理中にシートを操作しないでください。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages