OSEE has many views which are presented in columns, so as to look like a
table or spreadsheet. These views have powerful filters and sorting
capability to make it much easier to see what you want.

## Sorting by a column

  - Left-click on the column heading and the data will be sorted by that
    column
  - Left-click again on the same column to invert the sort order

## Filtering a column

  - Hold the {Alt} key down on the keyboard and left-click on the column
    heading.
  - Type the text you want and click the "OK" button - only rows with
    the text in that column will appear
  - To show rows that don't contain something, put \! before the text -
    e.g. \!create will give all rows that don't have the word create in
    the filtered column
  - To clear the filter, {Alt} left-click on the the column then click
    the "Clear" button