Formulas

Formulas

Getting started

Overview
Overview
Import Data
Import Data

Languages

Python
Python
Formulas
Formulas

Reference

Support
Support

Formulas

Quadratic allows you to work with classic spreadsheet logic, including math operations, referencing cells, and writing formulas.

Cells

icon
Cell positioning within a spreadsheet is explained in the Overview.

Quadratic gives you the ability to write formulas on multiple lines using the built-in code editor. No more massive, single-line, indecipherable formulas!

image

Referencing individual cells

To reference an individual cell, use the traditional A1 spreadsheet notation. Negative numbers start at n1 and count up while negative letters start at nA and count to the left. For example:

Formula notation
(x, y) coordinate plane equivalent
A0
(0, 0)
A1
(0, 1)
B1
(1, 1)
An1
(0, -1)
nA1
(-1, 1)
nAn1
(-1, -1)

Referencing a range of cells

To reference a range of cells, use the traditional spreadsheet notation that separates two distinct cells using a semicolon as a delimiter, e.g. A1:D3

Operators

Quadratic’s formula language supports the following operators:

Precedence
Symbol
Description
1
x%
Percent (divides by 100)
2
+x
Positive
-x
Negative
3
a:b
Cell range
4
a..b
Numeric range
5
a^b or a**b
Exponentiation
6
a*b
Multiplication
a/b
Division
7
a+b
Addition
a-b
Subtraction
8
a<<b
Bitshift a to the left by b
a>>b
Bitshift a to the right by b
9
a&b
10
a=b or a==b
Equal comparison
a<>b or a!=b
Not-equal comparison
a<b
Less-than comparison
a>b
Greater-than comparison
a<=b
Less-than-or-equal comparison
a>=b
Greater-than-or-equal comparison

Exponentiation is right-associative, so a^b^c is the same as a^(b^c). All other binary operators are left-associative, so a-b-c is the same as (a-b)-c.

Functions

Quadratic supports a number of functions commonly used in spreadsheets, with more soon to be added.

Mathematics functions

Function
Description
SUM(a, b, ...)
Adds all values. Returns 0 if given no values.
PRODUCT(a, b, ...)
Multiplies all values. Returns 1 if given no values.

Statistics functions

Function
Description
AVERAGE(a, b, ...)
Returns the arithmetic mean of all values.
COUNT(a, b, ...)
Returns the number of nonempty values.
MIN(a, b, ...)
Returns the smallest value. Returns +∞ if given no values.
MAX(a, b, ...)
Returns the largest value. Returns -∞ if given no values.

Logic functions

These functions treat FALSE and 0 as “falsey” and all other values are “truthy.”

When used as a number, TRUE is equivalent to 1 and FALSE is equivalent to 0.

Function
Description
TRUE()
Returns TRUE.
FALSE()
Returns FALSE.
NOT(a)
Returns TRUE if a is falsey and FALSE if a is truthy.
AND(a, b, ...)
Returns TRUE if all values are truthy and FALSE if any value is falsey. Returns TRUE if given no values.
OR(a, b, ...)
Returns TRUE if any value is truthy and FALSE if any value is falsey. Returns FALSE if given no values.
XOR(a, b, ...)
Returns TRUE if an odd number of values are truthy and FALSE if an even number of values are truthy. Returns FALSE if given no values.
IF(cond, t, f)
Returns t if cond is truthy and f if cond if falsey.

String functions

Function
Description
CONCAT(a, b, ...)
Concatenates all values as strings.

Arrays

An array can be written using {}, with , between values within a row and ; between rows. For example, {1, 2, 3; 4, 5, 6} is an array with two rows and three columns:

1
2
3
4
5
6

Arrays cannot be empty and every row must be the same length.

Numeric ranges (such as 1..10) and cell ranges (such as A1:A10) also produce arrays. All operators and most functions can operate on arrays, following these rules:

  1. Operators always operate element-wise. For example, {1, 2, 3} + {10, 20, 30} produces {11, 22, 33}.
  2. Functions that take a fixed number of values operate element-wise. For example, NOT({TRUE, TRUE, FALSE}) produces {FALSE, FALSE, TRUE}.
  3. Functions that can take any number of values expand the array into individual values. For example, SUM({1, 2, 3}) is the same as SUM(1, 2, 3).

When arrays are used element-wise, they must be the same size. For example, {1, 2} + {10, 20, 30} produces an error.

When an array is used element-wise with a single value, the value is expanded into an array of the same size. For example, {1, 2, 3} + 10 produces {11, 12, 13}.