Is what I want to do possible with LibreOffice Calc?

I’m a complete noob when it comes to spreadsheets. I’ve been trying to create an expenses tracker but so far, the learning curve has been pretty vertical. So rather than bang my head against a brick wall trying to accomplish something that may not even be possible, I thought I should ask before I invest any more time.

Basically what I want to do is replicate the functionality of a closed source app I use that’s called MoneyWise Pro, and I want to use FOSS / Libre software to do it, so that I have more control over my data and so that I’m not tied into one app.

Here’s a screenshot of the “Register” page of the MoneyWise app where you input the details of a purchase.

As you can see, you can do the following (from the top left)-

  1. Select the date
  2. Select which Account the purchase uses (credit card, savings etc.)
  3. Input a name for the transaction, in this case “Pizza with the family”.
  4. Select a Category, in this case “Eating Out”.
    • You can also select a “sub-category” which enables you to further refine categorisation of an entry (For example, “Eating Out” could be a sub-category of the “Food” category).
    • You can also select “Split Category” which then opens additional currency fields, each of which can have their own categories/sub-categories.
  5. You can tag each entry. The “Family” and “Vacation” tags are used in the screenshot but I am not interested in replicating this functionality.
  6. The cash total of the entry/transaction.
  7. Whether it is “Cleared” or not, and thus, whether the total should be subtracted from or added to the account (2.) selected.
  8. You can enter a note.
  9. You can use a calculator… again, I’m not interested in replicating this functionality.
  10. And finally… you can select whether the entry is an Expense or whether it’s Income.

I also have the following requirements/things I’d like to have-

\ 11. Creating a new entry should be as automated as possible, so that I don’t have to manually input data in every cell. Perhaps via the use of autocomplete and dropdown menus.

\ 12. When selecting a category, the list of sub-categories should be limited to only those that are sub-categories of the parent category.

\ 13. I’d like a section that displays-

  • The balance of my savings/accounts.
  • The amount spent in any given month
  • The amount I owe/need to pay off (Expense).
  • The amount I am owed (Income).

\14. Some kind of search functionality so that I can display only the entries that fulfil a defined criteria, i.e. entries that have a specific category/sub-cateegory, that are Income, and that haven’t been cleared.

Some of the functionality is easy enough. Entering the date for example is simply the matter of changing the date format to my preferred YYYY-MM-DD HH:MM:SS, selecting the column’s number format and then pressing Ctrl+Shft+;… but I can figure out how, or even if it’s possible to, have the date automatically entered when I input data into other cells in the same row.

Creating a drop-down list of Categories is easy enough but I wouldn’t know where to begin to be able to select multiple entries in the drop-down list or have the entries available in an adjacent cell, depend on what category is selected.

So… the big question, is it possible to accomplish what I want to do using Calc (or is there any other FOSS application I could use)?

[NOTE] Please forgive the “” when formatting the list… I still haven’t figured out how to format a non-contiguous list.

Yes, it is possible. Some of what you are looking to do is non trivial.

Setting a list of options, so they appear as drop down menu items is of course easy - but multi-selecting into a single cell is not possible within the framework of a spreadsheet, because each cell holds a discrete data element.

If you were to use the macro engine within Libreoffice Calc (the default language is Libreoffice Basic, but others are possible) everything you’re describing can be done, but it is ‘proper’ programming, and you may find that a database back end and web front end an easier and more appropriate way of achieving your objective. There are many FOSS packages that would suit your needs well.