# Data Control & Customization

Wave Grid gives you the power to personalize how data is displayed and interacted with—just like a flexible spreadsheet. Whether you're sorting, filtering, or accessing related records via lookup fields, you’re always in control of the grid layout and field behavior.

**Key controls include:**

* Column Header Actions for customizing individual columns.
* Lookup and Lookup Filters for managing related data visibility.

These features don’t just enhance visibility—they empower you to focus on the data that matters most.

***

## Column Header

Each column in the Wave Grid has a **Column Header**, which displays the field name (title) of that column. These headers also include a **drop-down menu (Header Action)** packed with useful actions for managing and customizing data display.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FoJnbD4bqFYBCieZt9iAI%2FColumn%20Header%20Edit.png?alt=media&#x26;token=ec3fdaf5-a86f-478b-8679-9e3e4d58b256" alt=""><figcaption><p>Column Header</p></figcaption></figure>

Users can also **rearrange columns** by dragging the column header using the **hand cursor** to reposition them as needed.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FzWU7voTHQRrf6UF5c7z9%2FRearrange%20Fields.gif?alt=media&#x26;token=76842567-04dd-4993-9b36-6916b0731e89" alt=""><figcaption><p>Rearrange Fields</p></figcaption></figure>

To add new fields to the grid, **hover over any column header** and click the **➕ button** that appears. This will open the field picker, where you can select the fields you want to include. After making your selection, click **Update Fields** to apply the changes.

For more details, see [Insert Field](#insert-field).

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FodPqEbVwsifMXYcV9lvc%2FAdd%20Field%20Picker.gif?alt=media&#x26;token=468f42b0-bc12-4adb-b18b-3e0a1e051427" alt=""><figcaption><p>Add field</p></figcaption></figure>

***

## Field Selector

The **Field Selector** is a popup window that allows you to search, filter, and manage fields for your object grid. You can access it in multiple places, including:

* **Manage Grid** – by clicking the **Add** button to update existing grids.
* **Grid Wizard** – when adding fields to a new object grid.

### Features in the Field Selector

* **Search Field**\
  Find a specific field in the object by typing its name in the search bar.
* **Field Type Filters**\
  Narrow down the field list by type, such as **Lookup**, **Picklist**, etc.
* **Included Toggle**\
  Switch between:
  * **Included** – shows fields already added to the grid.
  * **Not Included** – shows fields that have not yet been added.
* [**Formula Field**](#formula-field)\
  Create a new custom formula field directly within the Field Selector.
* **Refresh Object**\
  Update the list of fields to match the latest object definition in Salesforce. Any new fields created (or removed) in Salesforce will be reflected after refresh.

#### Actions

Once you’ve set your field selections:

* **Update Fields** – Apply your changes and add the selected fields to the object grid.
* **Cancel** – Close the Field Selector without saving changes.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2F5BDw0qFSghMTVzlMYjl8%2FField%20Selector.gif?alt=media&#x26;token=aa9fb9fd-f53a-46bc-9e34-77bb78d22665" alt=""><figcaption></figcaption></figure>

***

### Formula Field

Formula Fields allow Designers to create new calculated fields within the grid. These fields automatically compute values based on existing field data using formulas and supported functions. Formula Fields are especially useful for displaying totals, discounts, or combined text values without manually updating the data.

> **Note:** Formula Fields create a new field in the grid. You cannot apply a formula to modify an existing field’s value.

#### **When to Use Formula Fields**

Use Formula Fields when you need to display data that depends on calculations or conditions between existing fields.\
For example:

* To show the **final amount after a discount**
* To **combine** two text fields such as delivery method and status
* To display a **shortened version** of a long text field

#### **How to Create a Formula Field**

1. In Field Selector, click **Formula Field**
2. Enter a **Column Name** (required) and choose the **Formula Return Type**.
3. Enter your **Formula Expression** in the **Formula Editor** using supported field references and functions.
4. Click **Check Syntax** to validate the formula. If no errors appear, proceed to the next step.
5. Click **Apply** to save the formula.
6. Click **Update Fields** to add the field to the grid.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2Fq3ilfNML9pw59c1hZvAa%2FFormula%20Fields%20v2.gif?alt=media&#x26;token=c4726495-bd01-4979-b4c1-1c508cba73f4" alt=""><figcaption><p>Formula Field</p></figcaption></figure>

#### **Examples**

| Use Case                        | Example Formula                                                                                          | Description                                                                                      |
| ------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| **Final Amount After Discount** | `IF(Discount__c > 0, FLOOR((Amount__c - (Amount__c * Discount__c / 100)) * 100 + 0.5) / 100, Amount__c)` | Calculates the final amount after applying a percentage discount, rounded to two decimal places. |
| **Total Value**                 | `Quantity__c * UnitPrice__c`                                                                             | Multiplies quantity by unit price to show the total value.                                       |
| **Combined Field**              | `CONCAT(DeliveryMethod__c, " - ", Status__c)`                                                            | Combines the delivery method and status into one field.                                          |
| **Shortened Description**       | `SUBSTRING(TRIM(Description__c), 0, 30)`                                                                 | Shows the first 30 characters of a trimmed text value.                                           |

#### Supported Functions in Formula Fields

The following functions and operators are now supported. They are grouped by category for easier reference.

#### Math Functions

<table><thead><tr><th width="210">Function</th><th>Description</th></tr></thead><tbody><tr><td><strong>ABS</strong></td><td>Returns the absolute value of a number.</td></tr><tr><td><strong>SQRT</strong></td><td>Returns the square root of a number.</td></tr><tr><td><strong>ROUND</strong></td><td>Rounds a number to the nearest integer.</td></tr><tr><td><strong>FLOOR</strong></td><td>Rounds a number down to the nearest integer.</td></tr><tr><td><strong>CEIL</strong></td><td>Rounds a number up to the nearest integer.</td></tr><tr><td><strong>EXP</strong></td><td>Returns <em>e</em> raised to the power of a number.</td></tr><tr><td><strong>LOG</strong></td><td>Returns the natural logarithm of a number.</td></tr><tr><td><strong>SUM</strong></td><td>Returns the sum of two or more numbers.</td></tr><tr><td><strong>MAX</strong></td><td>Returns the largest value in the list.</td></tr><tr><td><strong>MIN</strong></td><td>Returns the smallest value in the list.</td></tr></tbody></table>

#### String Functions

<table><thead><tr><th width="210">Function</th><th>Description</th></tr></thead><tbody><tr><td><strong>CONCAT</strong></td><td>Concatenates two or more strings.</td></tr><tr><td><strong>UPPER</strong></td><td>Converts text to uppercase.</td></tr><tr><td><strong>LOWER</strong></td><td>Converts text to lowercase.</td></tr><tr><td><strong>LEFT</strong></td><td>Returns the leftmost <em>N</em> characters of a string.</td></tr><tr><td><strong>REPLACE</strong></td><td>Replaces part of a string with new text.</td></tr><tr><td><strong>SUBSTRING</strong></td><td>Extracts characters between two positions.</td></tr><tr><td><strong>LENGTH</strong></td><td>Returns the length of a string.</td></tr><tr><td><strong>TRIM</strong></td><td>Removes leading and trailing spaces.</td></tr><tr><td><strong>ISBLANK</strong></td><td>Returns true if the string is empty.</td></tr></tbody></table>

#### Logical Functions

<table><thead><tr><th width="210">Function</th><th>Description</th></tr></thead><tbody><tr><td><strong>CONTAINS</strong></td><td>Checks if a string includes a specified substring.</td></tr><tr><td><strong>BEGINSWITH</strong></td><td>Checks if a string starts with a substring.</td></tr><tr><td><strong>ENDSWITH</strong></td><td>Checks if a string ends with a substring.</td></tr><tr><td><strong>AND</strong></td><td>Returns true if all conditions are true.</td></tr><tr><td><strong>OR</strong></td><td>Returns true if at least one condition is true.</td></tr><tr><td><strong>ISNULL</strong></td><td>Checks if a value is null or undefined.</td></tr></tbody></table>

#### Conditional Function

<table><thead><tr><th width="210">Function</th><th>Description</th></tr></thead><tbody><tr><td><strong>IF</strong></td><td>Returns one value when a condition is true and another when false.</td></tr></tbody></table>

#### Arithmetic Operators

<table><thead><tr><th width="210">Operator</th><th>Meaning</th></tr></thead><tbody><tr><td><code>+</code></td><td>Addition</td></tr><tr><td><code>-</code></td><td>Subtraction</td></tr><tr><td><code>*</code></td><td>Multiplication</td></tr><tr><td><code>/</code></td><td>Division</td></tr><tr><td><code>=</code></td><td>Equals</td></tr><tr><td><code>!=</code></td><td>Not equal</td></tr><tr><td><code>></code></td><td>Greater than</td></tr><tr><td><code>&#x3C;</code></td><td>Less than</td></tr><tr><td><code>&#x3C;=</code></td><td>Less than or equal</td></tr><tr><td><code>>=</code></td><td>Greater than or equal</td></tr><tr><td><code>%</code></td><td>Remainder</td></tr></tbody></table>

***

## Column Header Action

Click the **drop-down icon** in the column header to **search for records and choose which ones to display**, allowing for more tailored data viewing.

Depending on the field type, the drop-down menu offers different options:

* **Picklist fields**: You can search and select specific values, but filter options will not appear.
* **Date fields**: Filter using preset options like *Today*, *Tomorrow*, *Next Month*, or choose a custom date using the calendar picker.
* **Number fields**: Filter options adjust to allow number-specific conditions such as *equals*, *greater than*, *less than*, and more.
* **String fields**: Users can filter records by selecting text values directly from the available list, making it easy to narrow down results based on specific text entries.
* **Formula Fields**: Filtering behavior for Formula Fields depends on the formula’s **output data type**.
  * **Number formulas:** Support number-based conditions (equals, greater than, less than, etc.).
  * **Text formulas:** Allow filtering by selecting text values from a list.
* **Lookup Fields**: Lookup filter options follow the **data type of the referenced field**.
  * **Lookup to text-based fields:** Users can filter by selecting the available text values.
  * **Lookup to number-based fields:** Number-specific filter conditions are applied.
  * **Lookup to date fields:** Date-related filter options become available.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FleIPtDxGcvlE5UZgmHNF%2FHeader%20Action.gif?alt=media&#x26;token=5cabb37c-33f3-493f-a393-78e7f92adcd9" alt=""><figcaption><p>Header Action Drop-down</p></figcaption></figure>

If a field is **Locked (Read-Only)** in Salesforce, it will also be locked in Wave. A **lock icon** appears in the column header, and the data is read-only. The **entire column will appear in grey**, indicating that it’s non-editable.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FPV2WmjVpvNBJnkvoXhiu%2FColumn%20Header%20Locked.gif?alt=media&#x26;token=fa00ea01-3a20-475a-ab58-14d8e436c103" alt=""><figcaption><p>Locked Field (Read Only) Column Header</p></figcaption></figure>

When a field is added using **Lookup**, the column header shows the number of lookup levels applied.\
Hover over the lookup number to view the full path. For example:\
`CreatedBy >> Account >> CreatedBy >> Country`

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FfWnFo8LKbafXyB2AIooN%2FLookup%20Field.gif?alt=media&#x26;token=363b6516-f73f-4caa-b5cc-ca097f3e211a" alt=""><figcaption><p>Lookup Field Column Header</p></figcaption></figure>

### Filter Features

* Only values **available in the grid** are shown.
* Typing in the filter dynamically **narrows the list**.
* Picklist values follow the **Salesforce-defined order**.
* A **blue filter icon** in the header shows which columns have active filters.
* Use **Clear All Filters** to reset your grid view.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FvEMTJmCKgWpByc8Pvie0%2FColumn%20Header%20Filter%20Features.gif?alt=media&#x26;token=8d2ad3b9-8d7c-4359-aaca-067ade7e72bb" alt=""><figcaption><p>Column Header Filter Features</p></figcaption></figure>

## Column Header More Options

Wave Grid gives you Excel-like flexibility, putting you in control of your data with ease.\
Each column header offers powerful actions like **freezing, sorting, grouping**, and helping you organize information just the way you need it. You can also **insert or remove columns** seamlessly within the familiar, spreadsheet-style interface for a highly customizable data experience.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FKmvNQMJCVb7Fxs0IikMs%2FMore%20Option%20Column%20Header.png?alt=media&#x26;token=044304b7-ae62-41ec-be59-4553f76eae7b" alt=""><figcaption><p>Column Header More Options</p></figcaption></figure>

### Freeze/Unfreeze Column

* Keep a column visible while scrolling horizontally.
* Unfreeze returns it to its original position.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FWHyoF0gjau8UwmxBBPMC%2FFreeze%20Column.gif?alt=media&#x26;token=36dda5b9-ebd5-42a9-995b-597195f14a4e" alt=""><figcaption><p>Freeze and Unfreeze Column</p></figcaption></figure>

### Group Columns

* Organize related fields by grouping columns together.
* Find out more about Column Group [here](https://docs.valorx.com/valorx-wave/wave-data-management/managing-grid-data/column-group).

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FvAmtIqCQ67phX0AuplrB%2FColumn%20Group%20Header%20Action.gif?alt=media&#x26;token=8288018c-9f56-4163-855f-a9116ee1e057" alt=""><figcaption><p>Group columns</p></figcaption></figure>

### Insert Field

{% stepper %}
{% step %}
**Open the Insert Field Panel**

Click **Insert Field** to open a pop-up showing all available columns for the selected object (e.g., *Opportunity*).

* Fields already present in the current grid will be pre-selected.
* You can **search** for fields using the search bar or **filter** by data type using the **Data Type** dropdown.
  {% endstep %}

{% step %}
**Refresh Object Fields (Optional)**

If you don't see newly added fields in Salesforce, click **Refresh** to sync the latest metadata from Salesforce.
{% endstep %}

{% step %}
**Add and Confirm**

Select the fields you want to insert and click **OK**. The selected columns will be added to your grid.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2F7VlMjKUeBE7Fuq3pd2eD%2FAdding%20Fields%20Header%20Action.gif?alt=media&#x26;token=62af66cc-b99b-429a-840b-78f0bfc60a42" alt=""><figcaption><p>Insert Fields</p></figcaption></figure>
{% endstep %}
{% endstepper %}

For **Standard Grids**, adding a new column/field **converts it to a custom grid**, with a toast notification and rename prompt. Find out more about it [here.](https://docs.valorx.com/valorx-wave/wave-experience/create-a-new-grid/manage-grid-in-wave-browser-extension#customize-standard-grid-salesforce-view)

### Remove Field

* Removes the selected field from the current grid view.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FiAVGONvh2FBTWlLZCAaW%2FRemove%20Field.gif?alt=media&#x26;token=ffc953ec-8228-41f2-9df1-04c876d2d09c" alt=""><figcaption><p>Remove Field</p></figcaption></figure>

### Sort

* Sort data in **ascending (A–Z / 0–9)** or **descending (Z–A / 9–0)** order.

**Notes:** When you sort using the **column header**, the sorting only happens on the records that are already loaded in the grid. No Salesforce call is made. Also, this kind of sorting is temporary and will reset if you refresh or reopen the grid.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FpBM0IdOUmlwK4FsJoH4F%2FSort%20Header%20Action.gif?alt=media&#x26;token=2d03d034-36fc-4b2e-85ae-46d5fe45f78d" alt=""><figcaption></figcaption></figure>

These **Header Action** features make data handling in Wave as seamless and powerful as working in **Excel**, enhancing productivity while keeping your Salesforce data structured and accessible.

Want to understand how Header Sort compares to Toolbar Sort? See [Sorting Overview](https://docs.valorx.com/valorx-wave/wave-data-management/managing-grid-data/sort)

***

## Lookup

The Lookup feature enables you to:

* See and update the account information from the Grid columns in a single click
* Change the relationships between two entities in a single click. For example, if you wish to change the account name for a contact or vice versa, you can do it in a single click.     &#x20;

Please find the information that will help you to use the Lookup feature.&#x20;

Where it is available, the Lookup feature is denoted by its icon in the column header, as shown in the image below.&#x20;

* In **each field of such column**, you will see the icon when hovering.&#x20;
* The data matter in such a column will have a grey background.

<div align="left"><figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FhV3lb0y8wwDwElWEQw11%2Fl%201.png?alt=media&#x26;token=a06eb6a8-ef7e-42db-8aad-b4ee3ea97b86" alt="" width="353"><figcaption><p>Lookup field icon</p></figcaption></figure></div>

> You can use Lookup to change entity relationships. For example, let's change the account name for the Dickenson Mobile Generations opportunity.&#x20;

<div align="left"><figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2Frbq0MH02nvHXJEz2jN3T%2Fl%202.png?alt=media&#x26;token=8476fbef-4714-4cc6-a6c9-0716b0196116" alt="" width="428"><figcaption><p>Lookup - Changing relationship between fields</p></figcaption></figure></div>

> 1. Hover over its respective account name field and click on the Lookup icon.  &#x20;
> 2. A pop-up will show the list of all account names. Scroll down or search for the new account name and click on it.&#x20;
> 3. The account name for the Dickenson Mobile Generations opportunity will be changed.&#x20;
> 4. It will also perform the other applicable changes.&#x20;

* The lookup feature will also enable you to view the entity details. For example, let's open the details for Account Name.&#x20;

<div align="left"><figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2F6QNm1qiQwKmY82HaEHr6%2Fl%203.png?alt=media&#x26;token=ae133818-d5db-4dc3-835f-ceabde336acc" alt=""><figcaption><p>Lookup - Seeing record details using lookup</p></figcaption></figure></div>

> 1. Instead of clicking on the Lookup icon, click on the account name written in a grey background.&#x20;
> 2. The account details pop-up screen will open. &#x20;
> 3. You can edit the details and save them if required.&#x20;

### Lookup Filters

Lookup fields in the grid now fully adhere to the filters applied in Salesforce, ensuring consistent data visibility and user experience in Salesforce. This configuration allows users to interact with more refined data sets, making it easier to find the necessary records.&#x20;

{% hint style="info" %}
This is only applicable for admin users. Non-admin users must have the "Grid Setup and Configuration" permission to use lookup filters.&#x20;
{% endhint %}

**Key Benefits:**

* **Enhanced Data Accuracy:** Lookup Filters ensure users are selecting from relevant data sets, reducing errors in data entry.
* **Improved Efficiency:** Lookups display only records that meet the defined filter conditions, minimizing the need to sift through extensive lists.
* **Customizable Filters:** Admins can define the filter criteria based on field values or other conditions to streamline the selection process.

This functionality is especially useful for users working with large data sets, ensuring that only the most relevant records are available in the lookup field.
