WARNING

This article uses Unofficial terminology.

Each term in Google Sheets has a type that determines which operations can be performed on it.

Overview

Google Sheets uses a dynamic, weakly typed system. Types are not declared by the user; they are inferred at runtime from cell content and context. This allows flexible formulas but can produce inconsistent behavior, as type coercion is handled differently across functions.

Sheets recognizes the following core types:

TypeDescription
NumberNumeric values such as integers, decimals, and scientific notation.
StringText values enclosed in quotes or inferred from literal input.
BooleanLogical values TRUE and FALSE.
NullEmpty cells or expressions that return no value.
ArrayTwo-dimensional collections of values that may spill across multiple cells.
LambdaExecutable terms created using LAMBDA or related constructs.
ErrorRuntime signals representing failed evaluation. Propagate through most expressions.

Higher-level constructs such as LAMBDA UDTs and Data structures are derived from these base types.

Dynamic Typing

A term’s type may change depending on how it is used. For example:

="1"&1       → "11"
=IF("","X","Y") → "Y"

Such conversions are governed by Type Coercion.

Structural Types

Some expressions encapsulate multiple values or behaviors:

  • Array terms hold multiple values in two dimensions.
  • Lambda terms hold executable expressions.
  • LAMBDA UDTs simulate user-defined structures.

These may be considered compound types, though Sheets does not support type introspection.

Type Errors

If a value cannot be coerced into the expected type, evaluation produces an error such as VALUE! or A.

See Also