---
title: "Use the FILTER Function to Display Data Based on Cell Values"
slug: "filter-modifier"
description: "Learn to apply the FILTER modifier in Pigment to display only relevant data from a Block using conditions and associated Items."
updated: 2025-05-30T09:37:05Z
published: 2025-08-22T12:00:18Z
---

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

# FILTER modifier

## Description

Filters data from a Block based on cell values or associated items.

## Syntax

```plaintext
expression[FILTER: filtering_expression]
```

**Filtering_expression** being a boolean expression.

## Return type

`same as expression`

## Examples

| **Case** | **Results** |
| --- | --- |
| **Filtering off of Multiple Conditions** |
| `Revenue[FILTER: Country = Country."FR" AND Product = Product."Product 1"]` | Returns the `Revenue` of France for Product 1 |
| `Revenue[FILTER: Country = Country."FR" OR Country = Country."UK"]` | Returns the `Revenue` of France and UK. |
| **Filtering off of defined values** |
| `Revenue[FILTER: CurrentValue &gt; 1000]` or `Revenue[FILTER: Revenue &gt; 1000]` | Returns the `Revenue` by its original Dimensions only if the `Revenue` is higher than 1000. |
| `Revenue[FILTER: Cost &gt; 1000]` | Returns the `Revenue` by its original Dimensions only if the `Cost `is higher than 1000. |
| **Filtering off of data in another Metric** |
| `Revenue[FILTER: 'Filter Metric']` | Returns the `Revenue` by its original Dimensions only if the boolean `Filter Metric` is set to true. |

## Filtering on values with “CurrentValue”

Filtering based on the values of the “expression” is a common use case. The simplest way of doing it is to duplicate the expression in the filtering expression.

ex: `Revenue[FILTER: Revenue &gt; 1000]`

However, sometimes the expression filtered can be long. ex:

`(‘Bloc A’ + ‘Bloc B’ + ‘Bloc C’ - ‘Bloc D’)[FILTER: (‘Bloc A’ + ‘Bloc B’ + ‘Bloc C’ - ‘Bloc D’) &gt; 1000]`

Pigment offers a specific keyword: `CurrentValue`. This keyword represents the expression on which the filter is applied but in a much shorter and readable way, avoiding copy-paste mistakes.

The previous formula can be written:

`(‘Bloc A’ + ‘Bloc B’ + ‘Bloc C’ - ‘Bloc D’)[FILTER: CurrentValue &gt; 1000]`

## When to use [EXCLUDE](/v1/docs/exclude-modifier) vs FILTER

The FILTER and EXCLUDE modifiers have very similar functionalities just an opposite approach. When using FILTER you are defining which data to bring, while EXCLUDE you are defining which data not to bring in.

`[FILTER: NOT condition OR ISBLANK(condition)] `is the same as `[EXCLUDE: condition]`

The difference is how they handle Blanks. Given the scenario above, it is recommended to use EXCLUDE for readability and performance issues.

Additional examples in the article: [Filtering data in Formulas](/v1/docs/filtering-data-in-formulas)

> [!NOTE]
> To learn more about how to use [FILTER and EXCLUDE modifiers](https://academy.gopigment.com/path/write-and-test-formulas/filter-exclude-modifiers), visit our Academy.

**Excel equivalent**: none

**See also**: [BY](/v1/docs/by-modifier), [ADD](/v1/docs/add-modifier), [REMOVE](/v1/docs/remove-modifier), [EXCLUDE](/v1/docs/exclude-modifier)

<style> p[data-block-id] {font-size:1rem;} ul li p[data-block-id] {margin-bottom: 0;} ul[data-type="taskList"] li div p[data-block-id] {margin-bottom: 0;} ol li p[data-block-id] {margin-bottom: 0;} table tbody th p[data-block-id] { margin-bottom: 0;} blockquote p[data-block-id] {margin-bottom: 0 !important;} &nbsp;p[data-block-id]:empty::after {content: "\00A0";} </style><style> p[data-block-id] {font-size:1rem;} ul li p[data-block-id] {margin-bottom: 0;} ul[data-type="taskList"] li div p[data-block-id] {margin-bottom: 0;} ol li p[data-block-id] {margin-bottom: 0;} table tbody th p[data-block-id] { margin-bottom: 0;} blockquote p[data-block-id] {margin-bottom: 0 !important;} &nbsp;p[data-block-id]:empty::after {content: "\00A0";} </style>
