これをスプレッドシートのAppScriptにいれる
そして科目名がほしい場所に =categorizeExpense(B2) を入れると出力 :B2の部分にセル位置を対応させる
// 単語と対応する勘定科目のマッピング
let categories = {
function categorizeExpense(description) {
if (!description) return "";
// 半角・全角を統一し、小文字化する関数
function normalizeText(str) {
return str.replace(/[A-Za-z0-9()]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 65248);
}).replace(/[/g, "[").replace(/]/g, "]").replace(/ /g, " ")
.replace(/-/g, "ー") // 全角ハイフンを長音記号に統一
.toLowerCase(); // 小文字に統一
}
// 説明を正規化
let desc = normalizeText(description);
// 単語と対応する勘定科目のマッピング
let categories = {
"povo": "通信費",
"so-net": "通信費",
"openai": "通信費",
"ニコニコプレミアム": "通信費",
"東京電力": "水道光熱費",
"水道": "水道光熱費",
"seiyu": "制作費", // SEilYU も正しく判定されるように小文字で登録
"西友": "消耗品費",
"セブンイレブン": "消耗品費",
};
// 説明の中に含まれる単語をチェック
for (let key in categories) {
if (desc.includes(key)) {
return categories[key]; // 見つかったら対応する科目を返す
}
}
return "雑費"; // 未登録の単語は「雑費」とする
}