website_lea/static/files/supports/calc_formules.md

390 lines
8.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
author: Gregory Trolliet
title: LibreOffice Calc -- Les formules
pagetitle: Présentation
date: 5 octobre 2020
license: CC-BY-SA
---
# Présentation
* [Gregory Trolliet](https://trolliet.info)
* [Ognon](https://ognon.ch)
* [itopie](https://itopie.ch)
* Fichiers: [https://files.vulgarisons.info/calc](https://files.vulgarisons.info/calc)
![](by-sa.svg)
# Vos questions précises
# Notions de base
## Définition
<ul>
<li class="fragment" data-fragment-index=1>**Classeur**
<span class="fragment" data-fragment-index="2"><br/>Document qui contient plusieurs feuilles</span>
</li>
<li class="fragment" data-fragment-index=1>**Feuille de calcul**
<span class="fragment" data-fragment-index="3"><br/>Conteneur de cellules</span>
</li>
<li class="fragment" data-fragment-index=1>**Cellule**
<span class="fragment" data-fragment-index="4"><br/>Données à afficher et à manipuler</span>
<span class="fragment" data-fragment-index="4"><br/>Formules</span>
</li>
</ul>
::: notes
Maximum 10'000 feuilles par classeur
Maximum 1'000'000 de lignes et 1024 colonnes par feuille
!Attention à la lenteur!
:::
## Référence
<ul>
<li class="fragment">C7</li>
<li class="fragment">B5:D12</li>
<li class="fragment">\$MaFeuille.E2</li>
<li class="fragment">\$AutreFeuille.E2:E9</li>
<li class="fragment">'file:///home/raghnarok/exo_1.ods'#\$SaFeuille.E2:E9
<span class="fragment"><br/>Édition&rarr;Lien vers des fichiers externes&rarr;Actualiser</span>
</li>
</ul>
::: notes
Si insertion depuis un autre document, il faut rouvrir le document
pour accepter de charger les données distantes, sinon erreur 540.
Update possible depuis Édition->Lien vers des fichiers externes->mise à jour.
!Attention difficultés lors du partage / déplacement de fichiers!
:::
## Référence absolues
Permet de s'assurer que la cellule cible ne soit pas modifiée lors
du déplacement, de l'insertion de nouvelles lignes ou colonnes ou
lors de copie.
<ul>
<li class="fragment">\$C7 *Colonne*</li>
<li class="fragment">D\$12 *Ligne*</li>
<li class="fragment">\$E\$7</li>
</ul>
## Nommer des cellules
Intérêt:
* Simplifier les formules
* Ne pas avoir à se rappeler de la position
* Permettre de modifier une référence sans devoir modifier toutes les formules
<span class="fragment">Attention, ne fonctionne pas entre différents classeurs.</span>
<span class="fragment">Feuille&rarr;Plages et expressions nommées&rarr;Gérer</span>
::: notes
Accessible depuis le menu déroulant en haut à gauche, coordonnée cellule
:::
## Exercices
Entrainez-vous à accéder correctement à des cellules ainsi qu'à les nommer.
# Formats
## Nombres
::: incremental
* Différents formats complets:
* 1.15
* -0.456
* Formats spéciaux:
* 15%
* CHF 14.50
* 22/7
:::
## Heures
::: incremental
* 09:30
* 09:30:15
* 09:30:15.179
:::
## Dates
* 27.11.1987
## Stockage
**Tout** est enregistré comme un nombre!
::: notes
Dates => nombre de jours depuis le 30 décembre 1899
:::
## Plage de validité
Possibilité de définir une liste de valeurs possibles pour une cellule.
*Données&rarr;Validité...*
<span class="fragment">Éviter à l'utilisateur / utilisatrice de se tromper</span>
## Exercices
* Expérimenter les différents formats d'affichage de *Calc*
* Modifier la plage de validité d'une ou plusieurs cellules
# Les opérateurs
## Opérateurs arithmétiques
::: incremental
* \+ Addition *=1+1*
* \ Soustraction *=21*
* \* Multiplication *=2\*2*
* / Division *=10/5*
* % Pourcentage *=15%*
* ^ Exponentiation *=2^3*
:::
<span class="fragment">Respectent l'ordre des opérations</span>
## Opérateurs logiques
::: incremental
* = Égal *A1=B1*
* \> Supérieur à *A1>B1*
* \< Inférieur à *A1<B1*
* \>= Supérieur ou égal à *A1>=B1*
* \<= Inférieur ou égal à *A1<=B1*
* <> Non égal *A1<>B1*
:::
## Concaténation de texte
* & Concatène le texte *=B2 & ", " & B3 & " " & B5*
## Opérateurs de plage
<ul>
<li class="fragment" data-fragment-index=1>A2:B4 *Plage de cellules*</li>
<li class="fragment" data-fragment-index=2>B:B *Colonne entière*</li>
<li class="fragment" data-fragment-index=2>B:D *Plusieurs colonnes*</li>
<li class="fragment" data-fragment-index=3>17:17 *Ligne entière*</li>
<li class="fragment" data-fragment-index=3>5:17 *Plusieurs lignes*</li>
<li class="fragment" data-fragment-index=4>Feuille1.A3:Feuille3.D4 *Plage tridimensionnelle*</li>
</ul>
# Les formules
## Nommage
Attention, *Calc* traduit le nom des formules.
Possibilité de remettre en anglais si désiré:
*Outils &rarr; Options &rarr; LibreOffice Calc &rarr; Formule &rarr; Utiliser les noms de fonction anglais*
## Fonctionnement
::: incremental
* Nom, en majuscules
* Paramètre·s
* Valeur de retour
:::
## Les fonctions usuelles
* Somme
* Moyenne
* Médiane
* Produit
<span class="fragment">=SOMME(A1:A3)</span>
<span class="fragment">=MOYENNE(A1,A3)</span>
## Les fonctions spécifiques
:::incremental
* Arrondi *=ARRONDI(Nombre, précision)*
* Troncation *=TRONQUE(Nombre, précision)*
* Année *=ANNEE(Date)*
* Année bissextile? *=ESTBISSEXTILE(Date)*
* ...
:::
## Les fonctions matricielles
:::incremental
1. Sélectionner une plage de la même taille que la source
2. Entrer la formule
3. Valider avec *ctrl+shift+enter*
:::
<span class="fragment">Économise du temps de calcul et de l'espace disque</span>
## Les fonctions logiques
<ol>
<li class="fragment" data-fragment-index=1>Si
<span class="fragment" data-fragment-index=4>*=SI(Test, Valeur si vrai, Valeur si faux)*</span></li>
<li class="fragment" data-fragment-index=2>Si avec plusieurs conditions
<span class="fragment" data-fragment-index=5>*=SI.CONDITIONS(Test1, Valeur1, Test2, Valeur2, ...)*</span></li>
<li class="fragment" data-fragment-index=3>Si avec plusieurs valeurs
<span class="fragment" data-fragment-index=6>*=SI.MULTIPLES(Expression, Valeur1, Résultat1, Valeur2, Résultat2, ...)*</span></li>
</ol>
## Les fonctions de consolidation
:::incremental
* Somme conditionnelle *=SOMME.SI(Plage, critère, plage somme)*
* Somme de produits *=SOMMEPROD(Plage1, Plage2)*
* Somme de produits conditionnelle
*=SOMMEPROD(Plage1, Plage2, Plage3="pomme")*
:::
::: notes
Attention au temps de calcul si les plages deviennent grandes
:::
## Exercice
Calculer le nombre de kilos de chaque fruit commandé chaque mois.
Pensez à décomposer le calcul.
:::notes
=SOMMEPROD(sacs,poids,dates>=$A7,dates<SI(ESTVIDE($A8),DATE(2100,12,31), $A8),types=B$6)
:::
# Les erreurs
## Erreurs courantes
:::incremental
* *#DIV0!* &rarr; division par zéro &rarr; tester les valeurs
* *#NUM!* &rarr; dépassement de la valeur maximum
* *#REF!* &rarr; référence inexistante &rarr; feuille supprimée?
:::
# Exercice
## Numérotation de lignes
:::incremental
1. Numéroter les lignes automatiquement, même si on rajoute une ligne au milieu.
2. Numéroter uniquement les lignes ayant des données.
:::
:::notes
=SI(ESTVIDE(B2),"",SI(LIGNE()=2,1,MAX(A1:A$1)+1))
:::
# Les fonctions conditionnelles
## Assistant Fonction
Pensez à utiliser l'assistant!
:::notes
Petit logo fx en haut à gauche.
Contient toutes les descriptions des fonctions ainsi que des paramètres
Exo: Se balader dans la liste
:::
## Liste
* MOYENNE.SI
* NB.SI
* SOMME.SI
* MAX.SI
* ...
:::notes
Si test en conditions, ne pas oublier les guillemets ">5"
Exo: Tester quelques fonctions avec la feuille ListeNombres.
:::
# Les recherches et filtres
## Les filtres
:::incremental
* AutoFiltre: *Données&rarr;AutoFiltre*
* Filtre standard: *Données&rarr;Plus de filtres&rarr;Filtre standard...*
* Filtre spécial, intérêt uniquement pour des usages spécifiques
:::
:::notes
Exo: Tester avec la feuille Filtres
:::
## Recherche
<div class="fragment fade-in-then-semi-out">
La fonction *RECHERCHE* nécessite une liste triée.
*=RECHERCHE(Critère, Vecteur recherche, Vecteur résultat)*
</div>
<div class="fragment">
*RECHERCHEV* et *RECHERCHEH* permettent de chercher dans la première ligne
d'une matrice,
de spécifier quelle sera la ligne de résultat et de travailler
avec une liste non triée.
*=RECHERCHEV(Critère, Matrice, Indice[, Triée])*
</div>
:::notes
Avantage de RECHERCHEV,
il est possible de modifier par une variable le paramètre de retour.
Si recherche ordonnée et valeur inexistante,
renvoi la valeur précédent la valeur cherchée.
RECHERCHEV($G$4,$A:$D,COLONNE()-COLONNE($G$4)+2)
Exo: Tester avec la feuille Recherche
:::
## Valeur cible
<div class="fragment">
La valeur cible permet de trouver une solution à une équation
en variant un unique paramètre.
*Outils&rarr;Recherche de valeur cible*
</div>
<div class="fragment">
Le solveur permet de faire varier plusieurs paramètres.
*Outils&rarr;Solveur*
</div>
:::notes
Exo: Tester avec la feuille Résolution
:::
## Tableau dynamique
Permet de faire du tri et des calculs automatiquement.
*Données&rarr;Table dynamique&rarr;Insérer ou éditer*
:::notes
Possibilité de modifier les calculs en double-cliquant sur le champ.
Exo: Tester avec la feuille Filtres ou Recherche
:::
# Questions?