> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Personal Filters

> Set up personal column filters in Nextedy RISKSHEET that persist between sessions, allowing you to resume work with your preferred data view every time you open a document.

export const LastReviewed = ({date}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      Last reviewed on {formatted}
    </p>;
};

## Prerequisites

* Risksheet version 24.8.1 or later (personal filter storage was introduced in this version)
* At least one column in your risksheet with `filterable` enabled (this is the default for most columns)

## How Personal Filters Work

Personal filters are stored per user and per document. When you set a filter on one or more columns and close the risksheet, your filter selections are remembered. The next time you open the same document, Risksheet automatically re-applies your personal filters so you see the same filtered view you left.

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/-Icoak49xQVOW38R/risksheet/diagrams/guides/advanced/personal-filters/diagram-1.svg?fit=max&auto=format&n=-Icoak49xQVOW38R&q=85&s=be19133cd0e14e135d208283db98567b" alt="diagram" style={{ maxWidth: "440px", width: "100%" }} width="440" height="520" data-path="risksheet/diagrams/guides/advanced/personal-filters/diagram-1.svg" />
</Frame>

<Tip title="Personal, Not Shared">
  Personal filters are stored in your individual user settings. Other users opening the same document will see their own filters (or no filters if they have not set any). Personal filters do not affect saved views or the sheet configuration.
</Tip>

## Set a Column Filter

1. Open the risksheet document you want to filter
2. Locate the column header you want to filter by (e.g., "Severity", "Status", "Assignee")
3. Click the **filter icon**  in the column header area
4. Select the filter criteria:
   * For **enum columns** (severity, occurrence, detection, status): check or uncheck the values you want to include
   * For **text columns** (Title, Description): type the text to filter by
   * For **numeric columns** (RPN): specify a range or threshold
5. Confirm the filter selection

The grid immediately updates to show only rows matching your filter criteria. A visual indicator appears on the column header to show that a filter is active.

### Filter Multiple Columns

You can apply filters to multiple columns simultaneously. The filters combine with AND logic — only rows matching **all** active filters are displayed.

| Column Filter        | Example Values                | Result                                   |
| -------------------- | ----------------------------- | ---------------------------------------- |
| Severity = "High"    | Only rows with high severity  | Rows filtered to high severity           |
| + Assignee = "John"  | Combined with severity filter | Only high severity rows assigned to John |
| + Status != "Closed" | Combined with both above      | High severity, John's items, not closed  |

To add filters to additional columns, repeat the steps above for each column header.

## Clear a Single Column Filter

1. Click the **filter icon**  on the filtered column header (the icon appears highlighted when a filter is active)
2. In the filter dropdown, click **Clear** to remove the filter from that column
3. The grid updates immediately, and the column header filter indicator is removed

## Clear All Filters

To remove all active filters at once and return to the unfiltered view, open the filter dropdown on any column header and use the **Clear All** action:

1. Click the **filter icon**  on any column header (filtered or unfiltered)
2. In the filter dropdown, click **Clear All** — this removes filters from every column in the grid simultaneously
3. All rows become visible again, and the filter indicators are removed from every column header

The **Clear All** action is part of the standard column filter dropdown, so it is always available regardless of which column you open it from. Personal filter state is updated immediately, so the next time you open the document, no filters will be re-applied until you set new ones.

## Filter Persistence Behavior

Personal filters persist according to these rules:

| Action                                   | Filter Behavior                                                                 |
| ---------------------------------------- | ------------------------------------------------------------------------------- |
| Close and reopen the same document       | Filters restored automatically                                                  |
| Navigate away and return to the document | Filters restored automatically                                                  |
| Open a different risksheet document      | That document has its own independent filter settings                           |
| Switch to a saved view                   | Saved view column visibility applies; personal filters may reset                |
| Another user opens the same document     | They see their own personal filters, not yours                                  |
| Clear browser cache                      | Filters are stored server-side in user settings, so they survive cache clearing |

<Warning title="Saved Views vs Personal Filters">
  Saved views (configured in the sheet configuration under the `views` array) control column **visibility** — which columns are shown or hidden. Personal filters control row **visibility** — which rows are shown based on data values. These are independent features. Switching to a saved view may reset your active filters depending on the view configuration.
</Warning>

## Configuration Requirements

Personal filters rely on the `filterable` column property. By default, all columns have `filterable` set to `true`, meaning users can filter by any column. Administrators can disable filtering on specific columns by setting `filterable` to `false` in the column configuration.

```yaml theme={null}
columns:
  - id: title
    header: Failure Mode
    bindings: title
    filterable: true
  - id: rpn
    header: RPN
    formula: commonRpn
    filterable: true
  - id: internalNotes
    header: Internal Notes
    bindings: description
    filterable: false
```

In this example, "Failure Mode" and "RPN" columns support filtering and personal filter persistence. The "Internal Notes" column has filtering disabled, so users cannot set a filter on it.

## Practical Scenarios

### Scenario 1: Daily Review of High-Priority Items

A safety engineer reviews high-priority risk items each morning. They set these filters:

* **Severity**: "Critical" and "High"
* **Status**: "Open" and "In Review"
* **Assignee**: Their own name

Every time they open the risksheet, the view is pre-filtered to show only the items requiring their attention. No manual re-filtering is needed.

### Scenario 2: FMEA Analysis by System Component

An engineer working on a specific subsystem filters the risksheet to show only failure modes related to their component:

* **System Requirement** column: Filter to show only linked items for "Braking System"

This filter persists across sessions, so the engineer always sees only their relevant scope when opening the document.

### Scenario 3: Audit Preparation

A quality manager preparing for an ISO 26262 audit filters the risksheet to focus on items with incomplete mitigations:

* **Mitigation Task** column: Filter to show rows where the task column is empty or has status "Not Started"
* **RPN** column: Filter for values above a specific threshold (e.g., > 150)

The personal filter ensures this audit-focused view is always ready without needing to reconfigure it each time.

## Sorting and Filtering Combined

Personal filters work alongside the sort order configured in `sortBy` and any manual column sorting applied by clicking column headers. The interaction follows this order:

1. **Filtering** is applied first — rows not matching the filter criteria are hidden
2. **Sorting** is applied to the remaining visible rows
3. **Merging** groups the sorted, filtered rows according to the `levels` configuration

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/-Icoak49xQVOW38R/risksheet/diagrams/guides/advanced/personal-filters/diagram-2.svg?fit=max&auto=format&n=-Icoak49xQVOW38R&q=85&s=2f02c57431a278e4c6f04b590f2eeb47" alt="diagram" style={{ maxWidth: "520px", width: "100%" }} width="520" height="520" data-path="risksheet/diagrams/guides/advanced/personal-filters/diagram-2.svg" />
</Frame>

<Tip title="Sorting with Filters">
  Client-side sorting and filtering happen instantly in the browser without server round-trips. This provides immediate visual feedback when you change filter criteria or sort columns, even on large datasets.
</Tip>

## Verification

After setting up personal filters, you should see:

1. The filtered view applies immediately when you set the filter
2. A visual indicator on filtered column headers confirms which filters are active
3. After closing and reopening the document, the same filters are automatically re-applied
4. The row count reflects only the filtered subset of items

## See Also

* [Configure Column Sorting](/risksheet/guides/columns/sorting) — Set up default and custom sort orders
* [Control Column Visibility](/risksheet/guides/columns/column-visibility) — Show or hide columns independently from filtering
* [Create Saved Views](/risksheet/guides/customization/saved-views) — Configure named column visibility presets
* [Configure Queries](/risksheet/guides/advanced/query-configuration) — Advanced query-based data selection
* [Use Query Factory](/risksheet/guides/advanced/query-factory) — Dynamic filtering for linked item suggestions

<LastReviewed date="2026-06-08" />
