Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
logiciel:internet:dokuwiki:plugins:tablecalc:start [2022/08/25 22:21] – [Tablecalc : faire des calculs dans une table comme avec Excel] adminlogiciel:internet:dokuwiki:plugins:tablecalc:start [2022/10/01 23:26] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +{{tag>Logiciel}}
  
 +====== tablecalc : faire des calculs dans une table comme avec Excel ======
 +
 +Parfois, on peut avoir besoin de faire des calculs simples dans la table DokuWiki.
 +
 +À l'aide de ce plugin, vous pourrez insérer des formules de style Excel dans le tableau
 +
 +===== Pré-requis =====
 +
 +===== Installation =====
 +
 +Recherchez et installez le plugin **tablecalc** à l'aide du gestionnaire d'extensions. [[http://narezka.org/cfd/msgdb/740/tablecalc.zip]]
 +===== Configuration =====
 +
 +===== Utilisation =====
 +
 +==== Syntaxe ====
 +
 +Pour effectuer un calcul, insérez une formule de style XL dans la feuille de calcul. Toute expression doit commencer par **%%~~=%%** et se terminer par **%%~~%%**.
 +
 +Vous pouvez spécifier 
 +  * directement une plage (comme le fait XL)
 +  * ou utiliser une fonction **range()**
 +
 +La plage consiste en une référence à la cellule de départ et à la cellule d'arrivée, comme ceci :<cli prompt='$ '>r0c4</cli><WRAP center round important 60%>
 +Notez que les index de ligne %%(r)%% et de colonne %%(c)%% commencent à partir de zéro %%(0)%%
 +</WRAP>
 +
 +^      ^  0      1      2    ^
 +^  0   | r0c0   | r0c1   | r0c2  |
 +^  1   | r1c0   | r1c1   | r1c2  |
 +^  2   | r2c0   | r2c1   | r2c2  | 
 +
 +Les préfixes de ligne et de colonne peuvent être permutés. Ceci est équivalent à ce qui précède :<cli prompt='$ '>c4r0</cli>
 +
 +Vous pouvez également faire référence à plusieurs cellules dans une plage :<cli prompt='$ '>|r0c0:r1c1||</cli>
 +
 +De plus, vous pouvez utiliser plusieurs plages :<cli prompt='$ '>r0c0:r1c1,r0c3:r1c4</cli>
 +
 +<WRAP center round important 60%>
 +Il est recommandé de ne pas utiliser de références pour des cellules inexistantes. Par exemple, ce n'est pas correct (bien que cela fonctionnera, renvoyant « 3 ») :<cli prompt='$ '>| 1 |
 +| 2 |
 +| ~~=sum(r0c0:r99c99)~~ |</cli>
 +
 +Utilisez plutôt des constructions comme celle-ci :<cli prompt='$ '>| 1 |
 +| 2 |
 +| ~~=sum(range(0,0,col(),row()-1))~~ |</cli>
 +</WRAP>
 +
 +==== Fonctions ====
 +
 +The following functions are implemented:
 +
 +^ Func                              ^ Description                                                                                                                    ^
 +^ average(range)                    | Renvoie la moyenne de la plage spécifiée                                                                                       |
 +^ cell(column,row)                  | Renvoie la valeur numérique de la cellule (colonne, ligne)                                                                     |
 +^ check(condition;true;false)       | Exécute l'instruction true, si la condition n'est pas zéro                                                                     |
 +^ col()                             | Retourne la colonne courante                                                                                                   |
 +^ compare(a;b;operation)            | Comparaison mathématique entre a et b. Renvoie zéro lorsque les conditions de l'opération ne sont pas remplies                 |
 +^ count(range)                      | Renvoie le nombre d'éléments dans la plage spécifiée                                                                           |
 +^ countif(range;b;operation)        | Compter les valeurs dans la plage qui correspondent à la comparaison avec b. Le type de comparaison est spécifié en opération  |
 +^ label(string)                     | Lie l'étiquette à la table                                                                                                     |
 +^ max(range)                        | Renvoie la valeur maximale dans la plage spécifiée                                                                             |
 +^ min(range)                        | Renvoie la valeur minimale dans la plage spécifiée                                                                             |
 +^ range(column1,row1,column2,row2)  | Renvoie la plage interne pour d'autres fonctions                                                                               |
 +^ round(number;decimals)            | Renvoie le nombre, arrondi aux décimales spécifiées                                                                            |
 +^ row()                             | Retourne la ligne courante                                                                                                     |
 +^ sum(range)                        | Renvoie la somme de la plage spécifiée                                                                                         |
 +^ calc()                            | Obsolète, désormais inutile                                                                                                    |
 +
 +Bien que vous puissiez utiliser deux points comme délimiteur dans les fonctions, le point-virgule est préférable et recommandé.
 +==== Opérateurs ====
 +
 +La plupart des opérateurs arithmétiques Javascript standard sont pris en charge, mais certains (( ^ | ~)) sont en conflit avec le balisage de la table, les opérateurs suivants sont donc disponibles :
 +
 +^ Opérateur  ^ Description                     ^
 +^ +          | Addition et plus unaire         |
 +^ -          | Soustraction et unaire négatif  |
 +^ *          | Multiplication                  |
 +^ /          | Division                        |
 +^ %          | Modulo (reste de division)      |
 +^ &          | ET logique                      |
 +^ <<         | Décaler à gauche                |
 +^ >>         | Décaler à droite                |
 +
 +==== Exemples ====
 +
 +=== 1er exemple ===
 +
 +<cli prompt='$ '>| 1 | 2 | ~~=r0c0+r0c1~~ | ~~=10.2+1.5~~ |</cli>
 +
 +| 1 | 2 | ~~=r0c0+r0c1~~ | ~~=10.2+1.5~~ |
 +
 +=== 2e exemple ===
 +
 +<cli prompt='$ '>| 1 | 2 |
 +| 3 | 4 |
 +| ~~=sum(r0c0:r1c1)~~ ||</cli>
 +
 +| 1 | 2 |
 +| 3 | 4 |
 +| ~~=sum(r0c0:r1c1)~~ ||
 +
 +=== 3e exemple ===
 +
 +<cli prompt='$ '>| 1 | 2 | 3 | 4 |
 +| 5 | 6 | 7 | 8 |
 +| **~~=sum(r0c0:r1c1,r0c3:r1c4)~~** ||||</cli>
 +
 +| 1 | 2 | 3 | 4 |
 +| 5 | 6 | 7 | 8 |
 +| **~~=sum(r0c0:r1c1,r0c3:r1c4)~~** ||||
 +=== 4e exemple ===
 +
 +<cli prompt='$ '>|1|
 +|2|
 +|3|   
 +|4|   
 +|5.74|
 +|6|
 +|7|   
 +|8|   
 +|9|   
 +|10|    
 +|11|   
 +|~~=sum(range(col(),0,col(),row()-1))~~|</cli>
 +
 +|1|
 +|2|
 +|3|   
 +|4|   
 +|5.74|
 +|6|
 +|7|   
 +|8|   
 +|9|   
 +|10|    
 +|11|   
 +|~~=sum(range(col(),0,col(),row()-1))~~|
 +
 +=== V ===
 +
 +<cli prompt='$ '>|1|
 +|2|
 +|3|   
 +|4|   
 +|5|
 +|6|
 +|7|   
 +|8|   
 +|9|   
 +|11|    
 +|~~=average(range(col(),0,col(),row()-1))~~|</cli>
 +
 +|1|
 +|2|
 +|3|   
 +|4|   
 +|5|
 +|6|
 +|7|   
 +|8|   
 +|9|   
 +|11|    
 +|~~=average(range(col(),0,col(),row()-1))~~|
 +
 +=== 6e exemple ===
 +
 +<cli prompt='$ '>| ~~=label(ex6_1)~~1 | 2 |
 +| 3 | 4 |
 +
 +Sum: **~~=sum(ex6_1.c0r0:c99r99)~~**</cli>
 +
 +| ~~=label(ex6_1)~~1 | 2 |
 +| 3 | 4 |
 +
 +Sum: **~~=sum(ex6_1.c0r0:c99r99)~~**
 +
 +=== 7e exemple ===
 +
 +<cli prompt='$ '>| **~~=label(ex7_1)~~11** | ~~=sum(ex7_2.c0r0:c99r99)~~ |
 +| 13 | 14 |
 +
 +| ~~=label(ex7_2)~~1 | 2 |
 +| 3 | 4 |
 +
 +Somme : **~~=sum(ex7_1.c0r0:c1r1)~~**</cli>
 +
 +| **~~=label(ex7_1)~~11** | ~~=sum(ex7_2.c0r0:c99r99)~~ |
 +| 13 | 14 |
 +
 +| ~~=label(ex7_2)~~1 | 2 |
 +| 3 | 4 |
 +
 +Somme : **~~=sum(ex7_1.c0r0:c1r1)~~**
 +
 +=== 8e exemple ===
 +
 +<cli prompt='$ '>| **~~=min(c0r1:c0r3)~~** | **~~=max(c1r1:c1r3)~~** |
 +| 1 | 7 |
 +| 2 | 8 |
 +| 3 | 9 |</cli>
 +
 +| **~~=min(c0r1:c0r3)~~** | **~~=max(c1r1:c1r3)~~** |
 +| 1 | 7 |
 +| 2 | 8 |
 +| 3 | 9 |
 +
 +=== 9e exemple ===
 +
 +<cli prompt='$ '>| 1 | ~~=check(cell(0,row()),#True,#False)~~ |
 +| 0 | ~~=check(cell(0,row()),#True,#False)~~ |
 +| x | ~~=check(cell(0,row()),#True,#False)~~ |
 +|   | ~~=check(cell(0,row()),#True,#False)~~ |
 +| **** | ~~=check(cell(0,row()),#True,#False)~~ |</cli>
 +
 +| 1 | ~~=check(cell(0,row()),#True,#False)~~ |
 +| 0 | ~~=check(cell(0,row()),#True,#False)~~ |
 +| x | ~~=check(cell(0,row()),#True,#False)~~ |
 +|   | ~~=check(cell(0,row()),#True,#False)~~ |
 +| **** | ~~=check(cell(0,row()),#True,#False)~~ |
 +
 +=== 10e exemple ===
 +
 +<cli prompt='$ '>| 1 | 2 | 1=2 | ~~=check(compare(cell(0,row()),cell(1,row()),#=),#True,#False)~~ |
 +| 3 | 3 | 3=3 | ~~=check(compare(cell(0,row()),cell(1,row()),#=),#True,#False)~~ |
 +| 4 | 5 | 4<5 | ~~=check(compare(cell(0,row()),cell(1,row()),#<),#True,#False)~~ |
 +| 6 | 7 | 6>7 | ~~=check(compare(cell(0,row()),cell(1,row()),#>),#True,#False)~~ |
 +| 8 | 9 | 8>9 | ~~=check(compare(cell(0,row()),cell(1,row()),#>),#True,#False)~~ |
 +| 10 | 10 | 10≥10 | ~~=check(compare(cell(0,row()),cell(1,row()),#>=),#True,#False)~~ |
 +| 11 | 11 | 11≤11 | ~~=check(compare(cell(0,row()),cell(1,row()),#>=),#True,#False)~~ |
 +| 12 | 12 | 12≠12 | ~~=check(compare(cell(0,row()),cell(1,row()),#!=),#True,#False)~~ |</cli>
 +
 +| 1 | 2 | 1=2 | ~~=check(compare(cell(0,row()),cell(1,row()),#=),#True,#False)~~ |
 +| 3 | 3 | 3=3 | ~~=check(compare(cell(0,row()),cell(1,row()),#=),#True,#False)~~ |
 +| 4 | 5 | 4<5 | ~~=check(compare(cell(0,row()),cell(1,row()),#<),#True,#False)~~ |
 +| 6 | 7 | 6>7 | ~~=check(compare(cell(0,row()),cell(1,row()),#>),#True,#False)~~ |
 +| 8 | 9 | 8>9 | ~~=check(compare(cell(0,row()),cell(1,row()),#>),#True,#False)~~ |
 +| 10 | 10 | 10≥10 | ~~=check(compare(cell(0,row()),cell(1,row()),#>=),#True,#False)~~ |
 +| 11 | 11 | 11≤11 | ~~=check(compare(cell(0,row()),cell(1,row()),#>=),#True,#False)~~ |
 +| 12 | 12 | 12≠12 | ~~=check(compare(cell(0,row()),cell(1,row()),#!=),#True,#False)~~ |
 +
 +=== 11e exemple ===
 +
 +^  Operator  ^  Equation         ^ Result ^
 +|  +         | %%~~= 3 + 2 ~~%%  |  5  |
 +|  -         | %%~~= 3 - 2 ~~%%  |  1  |
 +|  *         | %%~~= 3 * 2 ~~%%  |  6  |
 +|  /         | %%~~= 6 / 2 ~~%%  |  3  |
 +|  %         | %%~~= 7 % 2 ~~%%  |  1  |
 +|  unary +   | %%~~= +2 ~~%%      2  |
 +|  unary -   | %%~~= -2 ~~%%      -2  |
 +|  &         | %%~~= 3 & 2 ~~%%  |  2  |
 +|  %%<<%%    | %%~~= 2 << 7 ~~%% |  256  |
 +|  %%>>%%    | %%~~= 8 >> 2 ~~%% |  2  |
 +
 +=== 12e exemple ===
 +
 +<cli prompt='$ '>|~~=r0c1+5~~|6|</cli>
 +
 +|~~=r0c1+5~~|6|
 +
 +=== 13e exemple ===
 +
 +<cli prompt='$ '>| ~~=label(ex13_1)~~pommes | 32 |
 +| oranges | 54 |
 +| pêches | 75 |
 +| pommes | 86 |
 +
 +Pommes: ~~=countif(ex13_1.r0c0:r9c0,#pommes,#=)~~</cli>
 +
 +| ~~=label(ex13_1)~~pommes | 32 |
 +| oranges | 54 |
 +| pêches | 75 |
 +| pommes | 86 |
 +
 +Pommes: ~~=countif(ex13_1.r0c0:r9c0,#pommes,#=)~~
 +
 +===== Désinstallation =====
 +
 +===== Voir aussi =====
 +
 +  * **(en)** [[https://www.dokuwiki.org/plugin:tablecalc]]
 +
 +----
 +//Basé sur << [[https://www.dokuwiki.org/plugin:tablecalc|Article]] >> par dokuwiki.org.//