Option 3
A Category Table
CategoryID, Category_Name, etc...
A User Table
UserID, User_Name, etc.
An intersection table USER_Category
UserID, CategoryID
Why?
If you have
UserName, CategoryName
and say
"Jim", "Food"
"Joe", "Food"
"Judy", "Beauty Products"
If you delete "Judy" because you are no longer interested in her transactions, you also lose the category "Beauty Products". This way categories and users are separate.
It is also easier to ask questions like "Who is spending most of their money on Food". If the user enters categories in, you may get "Food", "Groceries", "Dining Out", and a ton of different categories, maybe even misspellings like "fod", "fooooooooooooooooood", etc... So by having unified categories you can just select based on foodID in your queries.
Basically now the user can browse a list of categories and if they spot the category they are interest in from the list, they will create the entry UserID, CategoryID in the intersection table. This reduces the likelihood of misspellings. If the category isn't there, the user can add it. Then when the next user views the categories they will see the new entry so if they are interested they can just click it and reduce the chance of misspelling it.