Filter & Temporary Sort rows

Documentation •
In this article

The Filter and Temporary Sort rows tools of Banana Accounting Plus allow rows in a table to be filtered and temporarily sorted, without changing their permanent order. These functions are very useful for immediately searching for data in both text and amounts.
Once the sorting or filtering criteria have been removed, the table rows return to their original order.

To change the sorting permanently, use the Data menu > Sort rows command.

The Filter and Temporary Sort Rows are new functions. Kindly give us your feedback on how to improve them.
They are only available in the Advanced plan of Banana Accounting Plus.

The Temporary Sort feature

This tool makes it possible to quickly sort the content according to the column from which the Sort command is given:

  • Right-click on the column header where you need sorting.
  • Position yourself on the small arrow and select ascending or descending sorting criteria.


  • You can sort the displayed rows, ascending or descending, according to the column you want.
  • Unlike Excel, when you remove the temporary sort, you return to the original order of the rows without having to undo the operation.

Sort function in Banana

Sorted rows in Banana

An arrow will appear in the header of the column chosen to sort the data.

Important Note

The Temporary Sort row feature is different from the Sort rows command (from the Data menu):

  • The Temporary Sort row feature is a temporary sort of the rows you see on video conceived to speed the review and editing of previously entered data; you can easily lift the sorting criteria to go back to the original rows order. This feature is only available with the Advanced plan.
  • The Sort rows command will permanently change the rows order of the table; it can only be undone with the Undo command. This command is available for all plans.

The Filter rows feature

The rows filter feature allows to display only those rows of the table that include the keyword entered as a search criteria. This saves considerable time for the following reasons:

  • You can find the transactions you are looking for within seconds.
  • You can directly edit filtered transactions.
  • The Temporary Filter is present in all tables (Accounts, Transactions, Exchange rates ...) and to use it, you can simply type your key words in the Filter box.
  • Easily lift the Filter to go back to the original rows order.

Filter function in Banana
The green text highlight is for explaining purposes only; it doesn't appear in the software.

Filter features and syntax

The filter allows you to find rows simply by entering text separated by space. While you enter the text the program filters all transactions and only shows the ones that contain all the specified space separated text.

  • mario invoice 
    Will show the rows that contain in any position the words, "mario" and  "invoice"
  • mar inv
    Depending on the number of rows you have, you could probably get the same result just by entering an abbreviated text.
  • "mario invoice" 
    Search for text that includes spaces: if you enter the text within quotes, the program will consider the quoted text as a single word. 
  • "!~Mario"
    Normally the search is case insensitive.
    You can specify the search to be case sensitive with a special command.

Space is a AND command separator.

  • The space means that the conditions are additive.
  • Never include spaces in search unless they are between quote characters "mario invoice".

Special characters

You can use almost any character in the search.
Only the exclamation mark "!" and the vertical bar "|" at the beginning of a text sequence have a special meaning.

  • "|" OR specifier
    At least one of the elements that are preceded by the "|" must be present on the row.
    In the following case the search will display rows that include "mario" and either "invoice" or "fee".
    mario |invoice |fee
  • "!" command specifier 
    Any text preceded by the exclamation point is considered a command and has a special meaning. 
    For example to exclude a text use the command sequence "!-"
    mario !-invoice

 Advanced search syntax

The Advanced search syntax is only experimental: it might be subject to changes and improvements.

The "!" character at the begin of a text means this is a special search command.

  • !
    when positioned before or after a space, it starts a command sequence
  • !!
    is considered as a simple "!" and not a command sequence
  • !-
    the minus sign "-" is used to exclude content, and it can be used with any other operator
    !-mario !-1000 !-=1000 !-^payment !-~10
  • !~
    The tilde "~" must come immediately after the "!" or the "!-" characters
    With the "~"  the search is case sensitive

Command characters

They are the characters that immediately follow the command begins "!", "!-","!~" or "!-~":
They can also be used with the "-" exclude and "~" case sensitive character, but here are explained without.

  • !=
    Finds exact, the cell must contains exactly the specified text. Useful for accounts.
    It can be used with multiple values, with the | operator search for any of.
    Empty cell.
    From Banana version 10.1.16 it select cell with empty values.
  • !+
    Contains, the cell must contain exactly the specified text. Useful for accounts.
    It is equivalent to searching without the ! command, "mario" or "!+mario" are the same.
    But the "!+"allows to be used in combinations of other characters .
    !-+mario excludes rows that contains mario.
    !~+mario excludes rows that contains mario case sensitive.
  • !<>
    Different, the cell text must be different from the one provided.
  • !.
    "." wildcards (*,?), same as exact but with wildcards. Supports multiple values.
  • !^
    Starts with. The cell text must start with the specified text. Supports multiple values.
  •  !$
    Ends with. The cell text must end with the specified text. Supports multiple values.
  • !_
    Whole word search. Does not match with "1000". Supports multiple values.
  • !:
    Regular expression. The text following ":" must be a regular expression.

Greater than, Less than and range characters

They are characters that are used for comparing values.
For this is used the xml value of the content.

  • Date in the format yyyy-mm-dd
  • Amount with the "." as decimal separator and without thousands separator.

Commands characters

  • !>
    Greater than. Cell content that is greater than 100.
  • !>=
    Greater or equal than.
  • !<
    Less than.
  • !<=
    Less or equal than.
  • !<>
    Different than.
  • !><
    Within a range of values , excluding the specified elements.
    It is equivalent of using two filter > and <
    A range and it need two elements separated by "|".
  • !>=<
    Within a range of values, including the specified elements.
    It is equivalent of using two filter >= and <=
    A range and it need two elements separated by "|".

Columns specifier

It allows to specify the column to use as a search.

Column based filter Search only within the column specified between the two exclamation point.

  • !description!
    It includes all the columns header that match the entered text. You can use wildcard and separators
    • !description!mario
      Search "mario" on column header "description"
    • !description!=
      Search empty text on column header "description"
    • !des*!mario
      Search "mario" on all column header starting with "des"
    • !des*;doc!mario
      Search "mario" on the column header starting with "des" and column header starting with "doc"
    • !description:xml!mario
      Search "mario" on a column with column name XML "description" .
    • !debit*!=1000
      Search in column with header starting with "debit" for the exact content "1000"

Show rows with color

They are used for searching rows with color.

  • !_co! or !_color!
    Color search. 
    Show all lines that have a color.
  • !_co!2
    Will show all rows with the style color 2.
  • !_co!2|3
    Will show all rows with either the style color 2 or 3.

Style colors:

  • When assigning a text and background color to a row, the program assigns for a combination of color a progressive style number. The style number depends from when a color is assigned and is then reused when the same colors are applied.  
    The style number will therefore be different for each accounting file.  

No color and Automatic color:

  • The rows with Text No color or background Automatic color have the style number 0. 
  • Rows that use the color black or white are considered as colored and have their own number even if they, depending on the display theme used, may look as no color. 
    If you don't want to view rows with black and white displayed, select the rows and apply the No Color and Automatic color.

Show rows with formatting

They are used for searching for formatting.
Currently only a row search is implemented.

  • !_fo! or !_format!
    Show all lines that have a specific row format.
  • !_fo!b
    Show all rows with format bold
  • !_fo!i
    Show all rows with format italic
  • !_fo!14
    Show all rows with format point size 14
  • !_fo!b|14
    Show all rows with format bold or point size 14
  • !_fo!b !_fo!14
    Show all rows with format bold and point size 14

Show rows with errors

Used for searching rows that the software has marked with an error or a warning. 
To check again for errors use the Recalculate all command. 

  • !_er! or !_error!
    Show all lines marked with an error or warning.
  • !_er!e
    Show all lines marked as errors. 
  • !_er!w
    Show all marked as warning.

Combining different filters

Enter the filter text separated by the space. For example:

  • 2022 !des*!mario !debit*!=1000
    Will show rows that contain "2022" in any column, "mario" in any column starting with "des" and with all column starting with "debit" that contains exactly "1000".

Rationale for the filter syntax

The advanced search syntax looks strange, but we wanted a syntax that 

  • Does not interfere with the natural search, so that the user could accomplish most searches naturally, combining texts, exactly how people are used to search within a smartphone application.
  • It is not specific to a language, so it only uses symbols.
  • Does support all the possible searches, so that it can be used to express filters entered by the user in a way similar to Excel. 
  • It opens the possibility to include commands that are specific to Banana like color, errors, etc.

We have evaluated different other search syntax but they all have special uses for normal characters like the minus "-" or "+" marks or other "\", "(", "*", "?, frequently used in accounting.
So we come up with creating a special syntax where the explanation mark "!" is used as a command starter. The "!" is normally used at the end of a phrase, so it is unlikely to interfere with the search.

All feedbacks and suggestions are welcome!

Tell us how we can help you better
If the information on this page is not what you're looking for, is not clear enough, or is not up-to-date, let us know.

Share this article: Twitter | Facebook | LinkedIn | Email