ThoughtSpot acquires Mode to define the next generation of collaborative BI >>Learn More

Native Spreadsheet

Overview

Spreadsheet in Mode provides a native, governed environment for high-stakes data transformation. Designed for Financial and Data Analysts, this capability enables them to build advanced datasets directly on top of governed warehouse data without the security risks of exporting to external tools. By merging the intuitive flexibility of a spreadsheet with enterprise-grade governance, users can scale basic datasets into sophisticated financial snapshots, encoding complex business logic that remains persistent and reusable.

Accessing Spreadsheet (Entry Points)

The Spreadsheet interface is deeply integrated into the Mode reporting layer, allowing you to begin transformation from any data source.

  • Flat File Ingestion: Upload a .csv, .tsv, or .xlsx file and land directly in the Spreadsheet view to profile and clean your data immediately.

Flat File ingestion

  • Warehouse Connected Data (SQL/Python): From any successful query result in the SQL Editor or Python Notebook, click the Edit in spreadsheet button to perform post-processing.

Warehouse connected data

  • Existing Datasets: Open any published or reusable dataset in Mode to add a new spreadsheet layer for metric enrichment.

Exisiting Datasets

Using the Spreadsheet

The interface is optimized to maximize grid space while keeping advanced L1 and L2 actions accessible.

Advanced Formatting & Visual Styling

The spreadsheet toolbar provides precise control over how data is presented, ensuring that metrics are not just accurate, but audit-ready.

Spreadsheet toolbar

A. Data Integrity Controls

  • Undo: The Undo function allows you to revert your last action. Mode supports a multi-level undo history, meaning you can step back through a series of changes sequentially.
  • Redo: The Redo function restores an action that was previously undone. This is particularly useful during "What-If" analysis when comparing two different states of a data.

B. Column Sorting

  • Global Sort: Click the Sorting icon to open the advanced sort manager. You can add multiple levels (e.g., Sort by [Region] Ascending, then by [Spend] Descending). All sorts applied in the table can also be cleared using the Clear sorts option in the toolbar.
  • Interactive Header Sort: Click any column header to toggle between Ascending and Descending.
  • Visual Cues: A numerical indicator appears in the header (e.g., a small "1" or "2") to show the hierarchy of your multi-column sort.

Column sorting

C. Conditional Formatting

This allows analysts to visually highlight outliers, risks, or performance wins based on values. Users have the ability to assign colors of different intensities to values, depending on their relative position within a specified range. The user can access the color conditional formatting option through the toolbar.

  • Logic-Based Styling: Apply color scales (e.g., Green-to-Red) or single-color highlights based on cell values or text (e.g., "Highlight red if Variance > 20%").
  • User Value: This enables an Analyst to open a spreadsheet and instantly identify Priority Action items without reading every row.

Conditional Formatting

D. Numerical & Financial Formatting

  • Currency Support ($): Apply localized currency symbols with a single click. The system intelligently handles currency as a visual layer over numerical data, preserving the ability to perform math on the underlying values.
  • Percentage Conversion (%): Instantly shift decimal ratios (e.g., 0.85) into readable percentages (85%).
  • Increase/Decrease Decimals: Precision-control for financial rounding. Crucial for moving between high-level millions (0 decimals) and granular per-unit costs (4+ decimals).
  • Standard Number Formatting: Toggle between scientific, accounting, and comma-separated formats to match corporate reporting standards.

E. Text Formatting Options & Cell Styling

  • Text Alignment: Users can use the alignment control (Left, Center, and Right) for optimal grid readability.

  • Text Wrapping: Toggle between Clip (keeps row height uniform) and Wrap (expands row height to show all text content), essential for long memo fields or transaction descriptions.

  • Text Formatting: Click the Format (T) icon. Options change based on your data:

    • Numerical: Currency, Percentage, Scientific, and precision controls (Increase/Decrease Decimals).

    • String: Case transformation (Upper/Lower) and text cleanup.

    • URL: A field in the Spreadsheet can be formatted as a URL from the Format options in the top toolbar or using the format option in the field context menu.

    • Basic hyperlink: A field in the Spreadsheet can be formatted as a URL and can be displayed as text, text with underline, or as an icon. This formatting creates hyperlinks that serve as references to other web pages or resources.

    • Custom: The custom setting offers more advanced options to tailor the display and functionality of hyperlinks.

      • The text displayed for the hyperlink can be customized.
      • A reference field can be used as the URL address.

F. Cell and Grid Organizing

  • Cell Style Settings: This modal allows for:

    • Alternating Row Colors: Improves readability for wide financial models.
    • Gridline Toggles: Switch between full grid, horizontal only, or clean white space.

    Cell and Grid organizing

    Cell and Grid organizing 2

  • Text Wrapping: Wrap Text toggle to ensure long memo fields don't break the grid's visual flow.

  • Column Sizing

    • Size to Fit: Automatically calculates the optimal width based on the longest string in the current view.
    • Manual Resize: Drag-based width adjustment. Hover over the boundary of a column header and drag to your desired pixel width.

G. Column Management and Schema Control

The Select Columns modal is your primary tool for shaping the dataset output.

  • Hide/Unhide: Mass-toggle the visibility of columns. Hide technical system IDs to focus the grid on business metrics.
  • Reorder via Drag-and-Drop: Grab the handle next to any column name in the list and drag it to change its position in the grid.

column management

Filtering by Data Type

Filtering in Spreadsheet is a logic-driven engine that changes its behavior based on the column's data type.

A. Numerical Filtering (The Financial Filter)

When filtering numbers, the system offers three specific logic gates:

  • Range of Values: Set a "Between," "Greater than," or "Less than" boundary. (e.g., Show only transactions over $50,000).
  • Individual Values: A checklist of every unique number found in the scan, allowing for surgical exclusion of specific amounts.
  • Top/Bottom Analysis: Apply a "Top N" or "Bottom N" filter (e.g., Show our top 10 cost centers by spend).

Filter

Filter

Filter

Filter

Filter

B.String & Boolean Filtering (The Categorical Filter)

  • Multi-Select Checklist: Search and toggle specific categories (e.g., Filter to only 'EMEA' and 'APAC' regions).
  • Search-to-Filter: A dedicated search bar within the filter modal to quickly isolate specific strings in datasets with thousands of unique values.

Filter

Filter

C. Date & Time Filtering (The Chronological Filter)

  • Relative Date Ranges: Select "Last 7 Days," "Quarter to Date," or "Last Year."
  • Custom Date Picker: Define a specific start and end date for audit-specific lookback windows.

Filter

Filter

Spreadsheet Calculated Fields

Calculated fields enable users to create derived columns in Spreadsheet by applying expressions to existing dataset columns.

Using spreadsheet calculated fields, users can:

  • Derive new metrics from existing columns
  • Apply business logic and classification rules
  • Perform mathematical and statistical calculations
  • Transform and standardize data values
  • Handle missing data safely
  • Prepare datasets for downstream analytics and AI workflows

calculated fields

Calculated field Structure

Spreadsheet calculated fields are composed of four elements.

ElementDescription
Column referencesExisting dataset fields used as inputs
OperatorsMathematical or logical operations
FunctionsPredefined operations applied to values
Literal valuesConstants such as numbers, strings, or dates

Column Reference Syntax

All dataset columns must be referenced using square brackets.

[COLUMN_NAME]

Examples:

[Revenue]
[Customer Name]
[Order Date]

Columns with spaces are supported because the bracket syntax preserves the full column name.

Example:

[Gross Revenue]

column reference syntax

Operators

Operators perform arithmetic calculations and logical comparisons.

Arithmetic Operators

SymbolNameDescriptionExample
+AdditionAdds numeric values[Revenue] + [Tax]
-SubstractionSubtracts values[Revenue] - [Cost]
*MultiplicationMultiplies values[Price] * [Quantity]
/DivisionDivides values[Revenue]/[Orders]
%ModulusReturns remainderMOD([Revenue], 100)

Comparison Operators

SymbolNameDescriptionExample
=EqualTrue if values match[Region] = 'West'
!=Not EqualTrue if values differ[Region] != 'West'
>Greater ThanTrue if left value is larger[Revenue] > 10000
<Less ThanTrue if left value is smaller[Revenue] < 10000
>=Greator or EqualTrue if left value is larger or equal[Revenue] >= 10000
<=Less or EqualTrue if left value is smaller or equal[Revenue] <= 10000

Logical Operators

SymbolDescriptionExample
ANDReturns true if both conditions are true[Revenue] > 10000 AND [Region] = 'West'
ORReturns true if either conditions is true[Revenue] > 10000 OR [Orders] > 50
NOTNegates a conditionNOT ([Region] = 'West')
INTests if value exists in list[Region] IN {'West','East'}
NOT INTests if value does not exist in list[Region] NOT IN {'West','East'}

Conditional Logic

Conditional calculated fields allow users to encode decision rules directly within the dataset.

Syntax

IF condition THEN result ELSE result END 

Example

IF [Revenue] > 50000
THEN 'High Value'
ELSE 'Standard'
END

Example use cases:

  • Revenue banding
  • Risk classification
  • Operational flags
  • Customer segmentation

Functions

Numeric Functions

Numeric functions perform mathematical calculations.

FunctionDescriptionExample
ABSReturns absolute valueABS([Profit])
ROUNDRounds numeric valueROUND([Revenue],2)
CEILRounds value upwardCEIL([Price])
FLOORRounds value downwardFLOOR([Price])
POWERRaises number to powerPOWER([Value],2)
SQRTSquare rootSQRT([Area])
MODReturns remainderMOD([Revenue],100)
EXPExponential valuesEXP([Score])
LOGNatural logarithmLOG([Revenue])

Date Functions

Date funtions operate on date or timestamp fields.

FunctionDescriptionExample
DATEDIFFCalculates difference between datesDATEDIFF('day',[Order Date],[Ship Date])
DATEADDAdds interval to dateDATEADD('day',7,[Order Date])
YEARExtracts year from dateYEAR([Order Date])
MONTHExtracts month from dateMONTH([Order Date])
DAYExtracts day from dateDAY([Order Date])
WEEKExtracts week numberWEEK([Order Date])
QUARTERExtracts quarterQUARTER([Order Date])
NOWReturns current timestampNOW()

String Functions

String functions manipulate text values.

FunctionDescriptionExample
CONCATConcatenates stringsCONCAT([First Name],' ',[Last Name])
LOWERConverts text to lowercaseLOWER([City])
UPPERConverts text to uppercaseUPPER([City])
LENGTHReturns string lengthLENGTH([Customer Name])
TRIMRemoves whitespaceTRIM([Customer Name])
LEFTReturns left substringLEFT([Customer Name],3)
RIGHTReturns right substringRIGHT([Customer Name],2)
SUBSTRINGExtracts portion of stringSUBSTRING([Customer Name],1,4)
REPLACEReplaces substringREPLACE([City],'NY','New York')

Null Handling Functions

These functions handle missing or null values

FunctionDescriptionExample
ZNReplaces null with zeroZN([Revenue])
IFNULLReturns fallback valueIFNULL([Revenue],0)
ISNULLTests if value is nullISNULL([Phone])
COALESCEReturns first non-null valueCOALESCE([Phone],[Backup Phone])

Aggregate Functions

Aggregate functions calculate values across rows.

FunctionDescriptionExample
SUMReturns sum of valuesSUM([Revenue])
AVGReturns average valueAVG([Revenue])
MINReturns smallest valueMIN([Revenue])
MAXReturns largest valueMAX([Revenue])
COUNTCounts rowsCOUNT([Order ID])
COUNT_DISTINCTCounts distinct valuesCOUNT_DISTINCT([Customer ID])

Cumulative Functions

Cumulative functions calculate progressive metrics across ordered data.

FunctionDescriptionExample
CUMULATIVE_SUMRunning sumCUMULATIVE_SUM([Revenue],[Order Date])
CUMULATIVE_AVERAGERunning averageCUMULATIVE_AVERAGE([Revenue],[Order Date])
CUMULATIVE_MAXRunning maximumCUMULATIVE_MAX([Revenue],[Region])
CUMULATIVE_MINRunning minimumCUMULATIVE_MIN([Revenue],[Region])

Analytical Calculated field Examples

Revenue Margin

[Revenue] - [Cost]

Profit Percentage

([Revenue] - [Cost])/[Revenue]

Customer Value Classification

IF [Revenue] > 50000
THEN 'High Value'
ELSE 'Standard'
END

Delivery Delay

DATEDIFF('day',[Expected Delivery],[Actual Delivery])

Cost Center Priority

IF [Spend] > 10000
THEN 'Priority Action'
ELSE 'Normal'
END

Analytical Modeling Workflow

Spreadsheet supports a layered modeling workflow.

Raw Dataset
↓
Derived Metrics
↓
Feature Engineering
↓
Business Rules
↓
Analytics & AI Queries

Derived columns progressively transform raw data into actionable insights.

Best Practices

Use descriptive column names

Good examples:

revenue_margin
customer_segment
priority_action

Avoid generic names:

calc1
score2
value3

Build calculated fields incrementally

Start with base metrics and build additional derived columns step by step.

Handle null values safely

Wrap columns using null-handling functions when necessary.

Example:

ZN([Revenue])

Keep business logic readable

Decision rules should be understandable by both analysts and business stakeholders.

Example:

IF [Spend] > 10000
THEN 'High Priority'
ELSE 'Standard'
END

Summary

Spreadsheet calculated fields enable analysts to extend datasets with derived analytical columns.

Using calculated fields, users can:

  • transform raw data
  • compute business metrics
  • implement operational rules
  • prepare AI-ready datasets
  • build analytical models directly inside Mode

This approach combines spreadsheet-style flexibility with warehouse-scale data processing, allowing users to perform complex transformations without exporting data outside the governed analytics platform.

Was this article helpful?

Get more from your data

Your team can be up and running in 30 minutes or less.