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
Recherchez et installez le plugin tablecalc à l'aide du gestionnaire d'extensions. http://narezka.org/cfd/msgdb/740/tablecalc.zip
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
La plage consiste en une référence à la cellule de départ et à la cellule d'arrivée, comme ceci :
r0c4
Notez que les index de ligne (r) et de colonne (c) commencent à partir de zéro (0)
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 :
c4r0
Vous pouvez également faire référence à plusieurs cellules dans une plage :
|r0c0:r1c1||
De plus, vous pouvez utiliser plusieurs plages :
r0c0:r1c1,r0c3:r1c4
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 ») :
| 1 | | 2 | | ~~=sum(r0c0:r99c99)~~ |
Utilisez plutôt des constructions comme celle-ci :
| 1 | | 2 | | ~~=sum(range(0,0,col(),row()-1))~~ |
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é.
La plupart des opérateurs arithmétiques Javascript standard sont pris en charge, mais certains 1) 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 |
| 1 | 2 | ~~=r0c0+r0c1~~ | ~~=10.2+1.5~~ |
1 | 2 |
| 1 | 2 | | 3 | 4 | | ~~=sum(r0c0:r1c1)~~ ||
1 | 2 |
3 | 4 |
| 1 | 2 | 3 | 4 | | 5 | 6 | 7 | 8 | | **~~=sum(r0c0:r1c1,r0c3:r1c4)~~** ||||
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
|1| |2| |3| |4| |5.74| |6| |7| |8| |9| |10| |11| |~~=sum(range(col(),0,col(),row()-1))~~|
1 |
2 |
3 |
4 |
5.74 |
6 |
7 |
8 |
9 |
10 |
11 |
|1| |2| |3| |4| |5| |6| |7| |8| |9| |11| |~~=average(range(col(),0,col(),row()-1))~~|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
11 |
| ~~=label(ex6_1)~~1 | 2 | | 3 | 4 | Sum: **~~=sum(ex6_1.c0r0:c99r99)~~**
1 | 2 |
3 | 4 |
Sum:
| **~~=label(ex7_1)~~11** | ~~=sum(ex7_2.c0r0:c99r99)~~ | | 13 | 14 | | ~~=label(ex7_2)~~1 | 2 | | 3 | 4 | Somme : **~~=sum(ex7_1.c0r0:c1r1)~~**
11 | |
13 | 14 |
1 | 2 |
3 | 4 |
Somme :
| **~~=min(c0r1:c0r3)~~** | **~~=max(c1r1:c1r3)~~** | | 1 | 7 | | 2 | 8 | | 3 | 9 |
1 | 7 |
2 | 8 |
3 | 9 |
| 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)~~ |
1 | |
0 | |
x | |
| 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)~~ |
1 | 2 | 1=2 | |
3 | 3 | 3=3 | |
4 | 5 | 4<5 | |
6 | 7 | 6>7 | |
8 | 9 | 8>9 | |
10 | 10 | 10≥10 | |
11 | 11 | 11≤11 | |
12 | 12 | 12≠12 |
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 |
|~~=r0c1+5~~|6|
6 |
| ~~=label(ex13_1)~~pommes | 32 | | oranges | 54 | | pêches | 75 | | pommes | 86 | Pommes: ~~=countif(ex13_1.r0c0:r9c0,#pommes,#=)~~
pommes | 32 |
oranges | 54 |
pêches | 75 |
pommes | 86 |
Pommes: