# What are Formulas?

Tabula's formula language has a lot to offer, with hundreds of functions quite similar to your favorite ones in Excel and SQL. Formulas can be as simple as a single number or as complex as a function call or mathematical formula.&#x20;

### Operators

* Regular math operators: `+`, `-`, `*`,`/`,`%`
* Comparison operators (evaluate to booleans): `>`, `>=`, `<`, `<=`, `==`, `!=`, `<>`. These are used to compare two values and produce a boolean result (true or false).
* Logical operators: `!` , `&&` , `||` (also support `not`, `and`, `or` variation). These operators are used to manipulate boolean values.
* String concatenation operators: `|` . This is used to combine two or more strings into one.

### Expressions

* Literal: represents a fixed value, like a <mark style="color:orange;">number</mark>, <mark style="color:green;">"string"</mark>, boolean (<mark style="color:purple;">true</mark>, <mark style="color:purple;">false</mark>), or a <mark style="background-color:blue;">reference</mark>.
* Unary: composed of a single operand and an operator. The operator can precede the operand `-expression`, `!expression`
* Binary: consists of two operands and an operator `expression`` `*`operator`*` ``expression`.
* Grouping: expressions can be grouped using parentheses **`(`**`expression`**`)`** to control the precedence of evaluation.

### References

References in expressions can be made to:

* Column by name: this allows for operations on specific columns in a data table.
* REGEX Path to values in the specified columns: this allows for complex data manipulation using regular expressions.
* Constants and enums: these can be used as parameters in functions.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tabula.io/data-transformation/formulas/what-are-formulas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
