Skip to content

Instantly share code, notes, and snippets.

@alexluecke
Created May 23, 2017 04:17
Show Gist options
  • Save alexluecke/66846b04693af88287fb9d2f0ea8f6a6 to your computer and use it in GitHub Desktop.
Save alexluecke/66846b04693af88287fb9d2f0ea8f6a6 to your computer and use it in GitHub Desktop.
function fixCategories() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = new Array();
var map = {
'Subscriptions': ['netflix', 'google music'],
'Gas/Automotive': ['dmv'],
'Groceries': ['safeway', 'trader joe', 'new seasons'],
'Gym': ['fitness'],
};
data.forEach(function(row, i) {
var isPayment = new RegExp('payment', 'gi');
if (i === 0) {
newData.push(row);
return;
}
if (row[7] && !isPayment.test(row[5])) {
row[6] = -row[7];
} else {
Object.keys(map).forEach(function(key) {
var found = map[key].filter(function(item) {
var regex = new RegExp(item, 'gi');
return regex.test(row[4]);
}).length > 0;
if (found) {
row[5] = key;
}
});
}
newData.push(row);
});
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment