> For the complete documentation index, see [llms.txt](https://guides.noloco.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guides.noloco.io/data/collections/formulas/operators.md).

# Operators

A single-page cheat sheet of **every operator** supported in Noloco [formulas](/data/collections/formulas.md). Use `Cmd/Ctrl+F` to search the whole catalog from this page.

For detailed entries with examples and parameter notes, see the category pages:

* [Date & time operators](/data/collections/formulas/operators/date-and-time.md)
* [Logic operators](/data/collections/formulas/operators/logic.md)
* [Math operators](/data/collections/formulas/operators/math.md)
* [Text operators](/data/collections/formulas/operators/text.md)

***

### Date & time

| Operator     | Description                                                             | Signature                                  |
| ------------ | ----------------------------------------------------------------------- | ------------------------------------------ |
| `+`          | Adds a number of days to a date                                         | `date + numberOfDays`                      |
| `-`          | Subtracts a number of days from a date                                  | `date - numberOfDays`                      |
| `TODATE`     | Converts a value to Noloco's date output format                         | `TODATE(date)`                             |
| `DATE`       | Builds a date from year, month, day                                     | `DATE(year, month, day)`                   |
| `DATEVALUE`  | Parses a date string (`"mm-dd-yyyy"` or `"yyyy-mm-dd"`)                 | `DATEVALUE(dateText)`                      |
| `DAY`        | Day component of a date                                                 | `DAY(date)`                                |
| `DAYS`       | Number of days between two dates                                        | `DAYS(end, start)`                         |
| `WORKDAY`    | Date N working days before/after start, excluding weekends and holidays | `WORKDAY(start, numberOfDays, [holidays])` |
| `EDATE`      | Date N months before/after a date                                       | `EDATE(date, numberOfMonths)`              |
| `EOMONTH`    | Last day of a month N months before/after a date                        | `EOMONTH(date, numberOfMonths)`            |
| `HOUR`       | Hours component of a datetime/time                                      | `HOUR(datetime)`                           |
| `MINUTE`     | Minutes component of a datetime/time                                    | `MINUTE(datetime)`                         |
| `SECOND`     | Seconds component of a datetime/time                                    | `SECOND(datetime)`                         |
| `TIME`       | Builds a fractional time from hour, minute, second                      | `TIME(hour, minute, second)`               |
| `TIMEVALUE`  | Parses a time string to a fractional time                               | `TIMEVALUE(timeText)`                      |
| `MONTH`      | Month of a date (numeric)                                               | `MONTH(date)`                              |
| `YEAR`       | Year of a date                                                          | `YEAR(date)`                               |
| `NOW`        | Current date and time as a serial number (does not auto-refresh)        | `NOW()`                                    |
| `TODAY`      | Current date as a serial number (does not auto-refresh)                 | `TODAY()`                                  |
| `WEEKNUM`    | Week number a date falls on                                             | `WEEKNUM(date)`                            |
| `ISOWEEKNUM` | ISO week number a date falls on                                         | `ISOWEEKNUM(date)`                         |
| `YEARFRAC`   | Years (with fraction) between two dates                                 | `YEARFRAC(start, end)`                     |

Full details: [Date & time operators](/data/collections/formulas/operators/date-and-time.md)

***

### Logic

| Operator   | Description                                    | Signature                               |
| ---------- | ---------------------------------------------- | --------------------------------------- |
| `<`        | Less than                                      | `value1 < value2`                       |
| `>`        | Greater than                                   | `value1 > value2`                       |
| `=`        | Equal to                                       | `value1 = value2`                       |
| `AND`      | True if all arguments are true                 | `AND(logicValue, logicValue, ...)`      |
| `OR`       | True if any argument is true                   | `OR(logicValue, logicValue, ...)`       |
| `NOT`      | Inverts a boolean                              | `NOT(logicValue)`                       |
| `IF`       | Returns one of two values based on a condition | `IF(logicValue, trueValue, falseValue)` |
| `TRUE`     | The value `true`                               | `TRUE()`                                |
| `FALSE`    | The value `false`                              | `FALSE()`                               |
| `NULL`     | The value `null`                               | `NULL()`                                |
| `ISNUMBER` | True if the argument is a number               | `ISNUMBER(value)`                       |

Full details: [Logic operators](/data/collections/formulas/operators/logic.md)

***

### Math

| Operator    | Description                               | Signature                       |
| ----------- | ----------------------------------------- | ------------------------------- |
| `+`         | Addition                                  | `value1 + value2`               |
| `-`         | Subtraction                               | `value1 - value2`               |
| `*`         | Multiplication                            | `value1 * value2`               |
| `/`         | Division                                  | `value1 / value2`               |
| `ABS`       | Absolute value                            | `ABS(number)`                   |
| `CEILING`   | Rounds up to a multiple of significance   | `CEILING(number, significance)` |
| `FLOOR`     | Rounds down to a multiple of significance | `FLOOR(number, significance)`   |
| `ROUND`     | Rounds to N decimal places                | `ROUND(number, places)`         |
| `ROUNDUP`   | Rounds up to N decimal places             | `ROUNDUP(number, places)`       |
| `ROUNDDOWN` | Rounds down to N decimal places           | `ROUNDDOWN(number, places)`     |
| `INT`       | Rounds down to the nearest integer        | `INT(number)`                   |
| `EVEN`      | Rounds to nearest even integer            | `EVEN(number)`                  |
| `ODD`       | Rounds to nearest odd integer             | `ODD(number)`                   |
| `TRUNC`     | Returns the integer component             | `TRUNC(number)`                 |
| `MOD`       | Modulo                                    | `MOD(number, divisor)`          |
| `POWER`     | Raises to a power                         | `POWER(number, power)`          |
| `SQRT`      | Positive square root                      | `SQRT(number)`                  |
| `LOG`       | Logarithm with a given base               | `LOG(number, base)`             |
| `FACT`      | Factorial                                 | `FACT(number)`                  |
| `SIGN`      | -1, 0, or 1 depending on sign             | `SIGN(number)`                  |
| `SUM`       | Sum of arguments                          | `SUM(number, number2, ...)`     |
| `PRODUCT`   | Product of arguments                      | `PRODUCT(number, number2, ...)` |
| `DECIMAL`   | Parses a numeric string to a decimal      | `DECIMAL(text)`                 |

Full details: [Math operators](/data/collections/formulas/operators/math.md)

***

### Text

| Operator      | Description                                       | Signature                                                          |
| ------------- | ------------------------------------------------- | ------------------------------------------------------------------ |
| `&`           | Concatenates two strings (alias of `CONCATENATE`) | `text1 & text2`                                                    |
| `CONCATENATE` | Concatenates two strings                          | `CONCATENATE(text1, text2)`                                        |
| `LEFT`        | Substring from the start                          | `LEFT(text, numberOfCharacters)`                                   |
| `RIGHT`       | Substring from the end                            | `RIGHT(text, numberOfCharacters)`                                  |
| `MID`         | Substring from the middle                         | `MID(text, startPosition, numberOfCharacters)`                     |
| `LEN`         | String length                                     | `LEN(text)`                                                        |
| `UPPER`       | Uppercase a string                                | `UPPER(text)`                                                      |
| `LOWER`       | Lowercase a string                                | `LOWER(text)`                                                      |
| `PROPER`      | Capitalize each word                              | `PROPER(text)`                                                     |
| `TRIM`        | Removes leading and trailing spaces               | `TRIM(text)`                                                       |
| `CLEAN`       | Removes non-printable characters                  | `CLEAN(text)`                                                      |
| `FIND`        | First position of a substring                     | `FIND(searchQuery, text)`                                          |
| `SEARCH`      | First position of a substring after a start index | `SEARCH(searchQuery, text, startPosition)`                         |
| `REPLACE`     | Replace part of a string by position              | `REPLACE(text, startPosition, replacementLength, replacementText)` |
| `SUBSTITUTE`  | Replace all occurrences of a substring            | `SUBSTITUTE(text, searchQuery, replacement)`                       |
| `REPT`        | Repeats a string N times                          | `REPT(text, numberOfTimes)`                                        |
| `EXACT`       | True if two strings are identical                 | `EXACT(text1, text2)`                                              |
| `ISBLANK`     | True if a string is blank                         | `ISBLANK(text)`                                                    |
| `TEXT`        | Formats a number as text                          | `TEXT(number, format)`                                             |

Full details: [Text operators](/data/collections/formulas/operators/text.md)

***

### How operator entries are structured (on category pages)

Each operator on the category pages follows the same shape:

* **Heading** — the operator name as you'd type it in a formula (`### WORKDAY`)
* **Signature** — call signature with parameter names, in a code block directly under the heading (`` `WORKDAY(start, numberOfDays, [holidays])` ``)
* **Description** — one-line summary of what it does
* **Example** — sample usage (where applicable), labelled `**Example:**`

### Related

* [Formulas overview](/data/collections/formulas.md)
* [Examples](/data/collections/formulas/examples.md)
* [Troubleshooting](/data/collections/formulas/troubleshooting.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://guides.noloco.io/data/collections/formulas/operators.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
