Created
July 24, 2022 20:34
-
-
Save vutlhari/fbb2b22d3b53464b47c96b3f04e6a863 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rule Based Categorizer | |
description: '' | |
host: EXCEL | |
api_set: {} | |
script: | |
content: | | |
let categories = { | |
"BANK_FEES_OTHER.BANK_FEES": ["SEND CASH FEE", "MONTHLY SERVICE CHARGE", "FASTER PAYMENT FEE"], | |
"ENTERTAINMENT.MUSIC_AND_AUDIO": ["PAUL BOTHNER", "SPOTIFY"], | |
"ENTERTAINMENT.TV_AND_MOVIES": ["M-CHOICE", "WWW.F1.COM", "NETFLIX", "DISNEY PLUS"], | |
"ENTERTAINMENT.VIDEO_GAMES": ["PLAYSTATIONNETWORK"], | |
"FOOD_AND_DRINK.COFFEE": ["BOOTLEGGERS"], | |
"FOOD_AND_DRINK.FAST_FOOD": ["KFC", "PIZZA HUT", "DEBONAIRS", "STEERS", "CHICKEN LICKE", "CINNABON", "UNCLE FAOUZI"], | |
"FOOD_AND_DRINK.GROCERIES": ["PNP", "SPAR", "CHECKERS"], | |
"FOOD_AND_DRINK.RESTAURANT": ["SPUR", "PANAROTTIS", "PARROTS"], | |
"GENERAL_MERCHANDISE.CLOTHING_AND_ACCESSORIES": ["TRUWORTHS", "PEP", "H&M", "ACKERMANS", "THE FIX", "NIKE"], | |
"GENERAL_MERCHANDISE.DEPARTMENT_STORES": ["WOOLWORTHS"], | |
"GENERAL_MERCHANDISE.ELECTRONICS": ["COMPUTER MANIA"], | |
"GENERAL_MERCHANDISE.SUPERSTORES": ["MAKRO", "GAME"], | |
"GENERAL_MERCHANDISE.TOBACCO_AND_VAPE": ["YE OLDE TABACCO HOUSE"], | |
"GENERAL_SERVICES.INSURANCE": ["OUTSURANCE", "TRACKER"], | |
"GENERAL_SERVICES.OTHER_GENERAL_SERVICES": ["GITHUB", "APPLE.COM/BILL", "GOOGLE", "OMNISOL INFORMATION TEC"], | |
"GENERAL_SERVICES.POSTAGE_AND_SHIPPING": ["POSTNET"], | |
"HOME_IMPROVEMENT.HARDWARE": ["LEROY MERLIN"], | |
"INCOME.INTEREST_EARNED": ["CREDIT INTEREST"], | |
"INCOME.OTHER_INCOME": ["POINTS-TO-CASH"], | |
"INCOME.WAGES": ["SALARY"], | |
"LOAN_PAYMENTS.MORTGAGE_PAYMENT": ["NEDBHL", "SBSA HOMEL"], | |
"MEDICAL.PHARMACIES_AND_SUPPLEMENTS": ["DIS-CHEM", "CLICKS"], | |
"PERSONAL_CARE.GYMS_AND_FITNESS_CENTERS": ["VIRGIN ACT"], | |
"RENT_AND_UTILITIES.GAS_AND_ELECTRICITY": ["ELECTRICITY"], | |
"RENT_AND_UTILITIES.INTERNET_AND_CABLE": ["ISP"], | |
"RENT_AND_UTILITIES.SEWAGE_AND_WASTE_MANAGEMENT": ["PRETORGRP"], | |
TRANSFER_OUT_INVESTMENT_AND_RETIREMENT_FUNDS: ["EASY EQUITIES"], | |
"TRANSPORTATION.OTHER_TRANSPORTATION": ["MOWASH"], | |
"TRANSPORTATION.TAXIS_AND_RIDE_SHARES": ["UBER"], | |
"TRANSPORTATION.GAS": ["ENGEN", "TOTAL", "SHELL"], | |
Hobbies: ["CRAZY STORE"] | |
}; | |
let lookup = { | |
BANK_FEES: "Bank fees", | |
ENTERTAINMENT: "Entertainment", | |
FOOD_AND_DRINK: "Food & drink", | |
GENERAL_MERCHANDISE: "General merchandise", | |
GENERAL_SERVICES: "General services", | |
GOVERNMENT_AND_NON_PROFIT: "Government & non-profit", | |
HOME_IMPROVEMENT: "Home improvement", | |
INCOME: "Income", | |
LOAN_PAYMENTS: "Loan payments", | |
MEDICAL: "Medical", | |
PERSONAL_CARE: "Personal care", | |
RENT_AND_UTILITIES: "Rent & utilities", | |
TRANSFER_IN: "Transfer in", | |
TRANSFER_OUT: "Transfer out", | |
TRANSPORTATION: "Transportation", | |
TRAVEL: "Travel" | |
}; | |
function contains(input, ...args) { | |
for (let i = 0; i < args.length; i++) { | |
if (input.indexOf(args[i]) > -1) { | |
return true; | |
} | |
} | |
return false; | |
} | |
/** | |
* Returns the a category. | |
* @customfunction | |
* @param {string} input | |
*/ | |
function getCategories(input) { | |
for (let key in categories) { | |
if (contains(input, ...categories[key])) { | |
const val = key.split(".")[0]; | |
return lookup[val] || "Uncategorized"; | |
} | |
} | |
return "Uncategorized"; | |
} | |
language: typescript | |
libraries: | | |
https://appsforoffice.microsoft.com/lib/1/hosted/office.js | |
@types/office-js | |
office-ui-fabric-js@1.4.0/dist/css/fabric.min.css | |
office-ui-fabric-js@1.4.0/dist/css/fabric.components.min.css | |
core-js@2.4.1/client/core.min.js | |
@types/core-js | |
jquery@3.1.1 | |
@types/jquery@3.3.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment