# Top N Filter

## Content



FlexPivot allows you to sort and filter the pivot data to show the top N records. This is useful to filter out smaller sections of the data and add clarity to the analysis. The Top N Filter is the best option when you want to filter elements that have the highest values from a random list and the Bottom N Filter is great when it comes to filter elements with the lowest values. For example, you can use the Top N or Bottom N filtering is to display the top-selling or bottom-selling products for analyzing the sales performance.

![](https://cdn.mescius.io/document-site-files/images/031bb4c0-b90c-4b86-8ec8-de35ea515f84/images/topnfiltering-in-action.gif)

### Top N Filtering with Code

In **FlexPivot**, you can apply Top N Filters programmatically using the C1FlexPivotFilter class, which provides the TopNValueField property to select a value field, the TopNRule enumeration to choose between the top N or bottom N elements, and the **TopN** or **BottomN** properties to assign the number of elements to be filtered.

```csharp
//Apply Top N Filter to show top 3 selling products in every country
C1.FlexPivot.C1FlexPivotFilter topNfilter = fpEngine.Fields["Salesperson"].Filter;
topNfilter.Clear();
topNfilter.TopNValueField = fpEngine.Fields["ExtendedPrice"];
topNfilter.TopNRule = C1.FlexPivot.TopNRule.TopN;
topNfilter.TopN = 2;
```

### Top N Filtering at Runtime

To display top N filtering at runtime:

1.  Right click a field name. Click the **Field Settings** option to open the **Field Settings** dialog. This invokes the **Field Settings** dialog.
2.  Select the **Top N** option in the filter dropdown menu.
3.  In the **TopN** dialog, you can choose between **TopN** or **BottomN** and assign the number of elements to be filtered. You can also assign a value field in the **by value** option.