> For the complete documentation index, see [llms.txt](https://ksaar.gitbook.io/ksaar-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ksaar.gitbook.io/ksaar-documentation/les-elements/les-formules/fonctions-sur-des-champs-ksaar.md).

# Fonctions sur des champs Ksaar

{% hint style="success" %}
Les fonctions sur les formules sont disponibles dans chacune des sous-pages dédiées :&#x20;

* [Opérateurs](/ksaar-documentation/les-elements/les-formules/operateurs.md)
* [Fonctions de texte](/ksaar-documentation/les-elements/les-formules/fonctions-de-texte.md)
* [Fonctions mathématiques](/ksaar-documentation/les-elements/les-formules/fonctions-mathematiques.md)
* [Fonctions de date](/ksaar-documentation/les-elements/les-formules/fonctions-de-date.md)
* [Fonctions de formatage](/ksaar-documentation/les-elements/les-formules/fonctions-de-formatage.md)
* [Fonctions de liste](/ksaar-documentation/les-elements/les-formules/fonctions-de-liste.md)
* [Fonctions sur des champs Ksaar](/ksaar-documentation/les-elements/les-formules/fonctions-sur-des-champs-ksaar.md)
* [Fonctions de Logique et autres](/ksaar-documentation/les-elements/les-formules/fonctions-de-logique-et-autres.md)

Des exemples de formules prêtes à l'emploi se trouvent ici : [Bibliothèque de formules classiques](/ksaar-documentation/les-elements/les-formules/bibliotheque-de-formules-classiques.md)
{% endhint %}

## Adresse

<details>

<summary>ADDRESS_LAT</summary>

#### Résumé

La fonction `ADDRESS_LAT` renvoie la latitude d'une adresse donnée.

#### Syntaxe

`ADDRESS_LAT(adresse)`

#### Exemple

* `ADDRESS_LAT({Adresse})` → `48.849185`

</details>

<details>

<summary>ADDRESS_LNG</summary>

#### Résumé

La fonction `ADDRESS_LNG` renvoie la longitude d'une adresse donnée.

#### Syntaxe

`ADDRESS_LNG(adresse)`

#### Exemple

* `ADDRESS_LNG({Adresse})` → `2.337352`

</details>

<details>

<summary>ADDRESS_DESC</summary>

#### Résumé

La fonction `ADDRESS_DESC` renvoie la description d'une adresse donnée.

#### Syntaxe

`ADDRESS_DESC(adresse)`

#### Exemple

* `ADDRESS_DESC({Adresse})` → `15 Rue de Vaugirard, Paris, France`

</details>

<details>

<summary>ADDRESS_CITY</summary>

#### Résumé

La fonction `ADDRESS_CITY` renvoie la ville d'une adresse donnée.

#### Syntaxe

`ADDRESS_CITY(adresse)`

#### Exemple

* `ADDRESS_CITY({Adresse})` → `Paris`

</details>

<details>

<summary>ADDRESS_COUNTRY</summary>

#### Résumé

La fonction `ADDRESS_COUNTRY` renvoie le pays d'une adresse donnée.

#### Syntaxe

`ADDRESS_COUNTRY(adresse)`

#### Exemple

* `ADDRESS_COUNTRY({Adresse})` → `France`

</details>

<details>

<summary>ADDRESS_POSTCODE</summary>

#### Résumé

La fonction `ADDRESS_POSTCODE` renvoie le code postal d'une adresse donnée.

#### Syntaxe

`ADDRESS_POSTCODE(adresse)`

#### Exemple

* `ADDRESS_POSTCODE({Adresse})` → `75006`

</details>

## Plage de dates / Plage de dates avec heure

<details>

<summary>DATE_RANGE</summary>

#### Résumé

La fonction `DATE_RANGE` renvoie une plage des dates de début et de fin spécifiées.

#### Syntaxe

`DATE_RANGE(début, fin)`

#### Exemple

* `DATE_RANGE({Début}, {Fin})` → `01/01/2023 12:30 - 31/12/2023 12:30`

</details>

<details>

<summary>DATE_RANGE_BEGIN</summary>

#### Résumé

La fonction `DATE_RANGE_BEGIN` renvoie la date de début d'une plage de dates donnée.

#### Syntaxe

`DATE_RANGE_BEGIN(plage_de_dates)`

#### Exemple

* `DATE_RANGE_BEGIN({Plage de dates})` → `01/01/2023 12:30`

</details>

<details>

<summary>DATE_RANGE_END</summary>

#### Résumé

La fonction `DATE_RANGE_END` renvoie la date de fin d'une plage de dates donnée.

#### Syntaxe

`DATE_RANGE_END(plage_de_dates)`

#### Exemple

* `DATE_RANGE_END({Plage de dates})` → `31/12/2023 12:30`

</details>

## Single select

<details>

<summary>SINGLE_SELECT_TEXT</summary>

#### Résumé

La fonction `SINGLE_SELECT_TEXT` renvoie le texte de l'option sélectionnée d'un single select.

#### Syntaxe

`SINGLE_SELECT_TEXT(single_select)`

#### Exemple

* `SINGLE_SELECT_TEXT({Single select})` → `Option 1`
* `SINGLE_SELECT_TEXT({Liaisons multiples → Single select})` → `[Option 1, Option 2, Option 1]`

</details>

<details>

<summary>SINGLE_SELECT_NBR_VALUE</summary>

#### Résumé

La fonction `SINGLE_SELECT_NBR_VALUE` renvoie la valeur de l'option sélectionnée d'un single select.

#### Syntaxe

`SINGLE_SELECT_NBR_VALUE(single_select)`

#### Exemple

* `SINGLE_SELECT_NBR_VALUE({Single select})` → `10`
* `SINGLE_SELECT_NBR_VALUE({Liaisons multiples → Single select})` → `[10, 20, 10]`

#### Cas d'usage

Un prof (d'une table profs) est associé à plusieurs matières via une liaison multiple (`{lnkM_matiere_prof}`) et chaque matière (d'une table matières) est assignée à un département via un champ question à choix unique (`{qcu_departement_matiere}`). De plus, chaque valeur du QCU a une valeur numérique.

Pour récupérer la valeur numérique de ce champ dans la table profs il suffit d'utiliser cette formule :&#x20;

`SINGLE_SELECT_NBR_VALUE({lnkM_matiere_prof → qcu_departement_matiere})`

</details>

## Multi select

<details>

<summary>MULTI_SELECT_TEXT_VALUES</summary>

#### Résumé

La fonction `MULTI_SELECT_TEXT_VALUES` renvoie la liste des textes des options sélectionnées d'un multi select.

#### Syntaxe

`MULTI_SELECT_TEXT_VALUES(multi_select)`

#### Exemple

* `MULTI_SELECT_TEXT_VALUES({Multi select})` → `[Option 1, Option 3]`
* `MULTI_SELECT_TEXT_VALUES({Liaisons multiples → Multi select})` → `[[Option 1, Option 3], [Option 1]]`

</details>

<details>

<summary>MULTI_SELECT_NBR_VALUES</summary>

#### Résumé

La fonction `MULTI_SELECT_NBR_VALUES` renvoie la liste des valeurs des options sélectionnées d'un multi select.

#### Syntaxe

`MULTI_SELECT_NBR_VALUES(multi_select)`

#### Exemple

* `MULTI_SELECT_NBR_VALUES({Multi select})` → `[10, 30]`
* `MULTI_SELECT_NBR_VALUES({Liaisons multiples → Multi select})` → `[[10, 30], [10]]`

</details>

## Fichier

<details>

<summary>FILENAME</summary>

#### Résumé

La fonction `FILENAME` renvoie le nom d'un fichier.

#### Syntaxe

`FILENAME(fichier)`

#### Exemple

* `FILENAME({fichier})` → `nom_de_fichier.pdf`

</details>

## Fichiers Multiples

<details>

<summary>FILENAMES</summary>

#### Résumé

La fonction `FILENAMES` renvoie les noms des fichiers du champ fichiers multiples mis en paramètres.

#### Syntaxe

`FILENAME(Fichiers Multiples)`

#### Exemple

* `FILENAME({fichiers_multiples})` → `"nom_de_fichier_1.pdf, nom_de_fichier_2.pdf"`

</details>

<details>

<summary>COUNT_FILES</summary>

#### Résumé

La fonction `COUNT_FILES` renvoie le nombre de fichiers présents dans le champ fichiers multiples mis en paramètres.

#### Syntaxe

`COUNT_FILES(Fichiers Multiples)`

#### Exemple

* `COUNT_FILES({fichiers_multiples})` → `2`

</details>

## Couleur

<details>

<summary>COLOR_HEX</summary>

#### Résumé

La fonction `COLOR_HEX` récupère la valeur hexadécimale d'un champ couleur sous forme de texte.

#### Syntaxe

`COLOR_HEX(Couleur)`

#### Exemple

* `COLOR_HEX(Couleur)` → `"#000000"`

</details>

<details>

<summary>TO_COLOR</summary>

#### Résumé

La fonction `TO_COLOR` transforme une valeur hexadécimale en un champ couleur.

#### Syntaxe

`TO_COLOR("uneValeurHexadecimale")`

#### Exemple

* `TO_COLOR("#000000")` → `champ couleur avec valeur #000000`

**Remarque**

Il est aussi possible d'utiliser des noms de couleur plutôt qu'un code hexadécimal. Les couleurs prises en charge sont [les couleurs nommées du langage CSS](https://www.w3.org/TR/css-color-4/#named-colors).

</details>


---

# 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://ksaar.gitbook.io/ksaar-documentation/les-elements/les-formules/fonctions-sur-des-champs-ksaar.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.
