Difference between revisions of "FR/Documentation/Calc/Sommes et calculs conditionnels"

From Apache OpenOffice Wiki
< FR‎ | Documentation‎ | Calc
Jump to: navigation, search
(NB.SI)
m
 
(93 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Documentation/FR/AideDemandee}}
 
 
Cette page est en cours de traduction d'après la page
 
http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Conditional_Counting_and_Summation dont le lien est dans l'OLH.
 
 
 
<!--
 
<!--
Auteur: David King : Traducteur : flepennu
+
Auteur: David King : Traducteur : flepennu & Docgranville
 
//-->
 
//-->
  
Line 11: Line 6:
 
=Sommes et calculs conditionnels dans Calc=
 
=Sommes et calculs conditionnels dans Calc=
  
 
+
Ceci est un résumé sur les différentes façons de compter des cellules et de faire la somme de leur contenu en fonction du résultat de certains tests.
Ceci est un résumé sur les différentes façons de compter des cellules et de faire la somme de leurs contenu en fonction du résultat de certains tests.
+
  
 
==NB==
 
==NB==
  
La [[Documentation/FR/Calc:Fonction_NB|fonction NB]] compte le nombre de cellules qui contient des nombres et ignorera les autres. Par exemple les cellules contenant du texte seront ignorées.
+
La [[Documentation/FR/Calc:_fonction_NB|fonction NB]] compte le nombre de cellules qui contient des nombres et ignorera les autres. Par exemple les cellules contenant du texte seront ignorées.
  
 
==NBVAL==
 
==NBVAL==
  
La [[Documentation/FR/Calc:Fonction_NBVAL|fonction NBVAL]] compte le nombre de cellules quelque soit leurs contenus (du texte, des nombres, des erreurs, des valeurs logiques ou des formules ). Elle ignore les cellules vides.
+
La [[Documentation/FR/Calc:_fonction_NBVAL|fonction NBVAL]] compte le nombre de cellules quel que soit leur contenu (du texte, des nombres, des erreurs, des valeurs logiques ou des formules ). Elle ignore les cellules vides.
  
 
==NB.VIDE==
 
==NB.VIDE==
  
La [[Documentation/FR/Calc:Fonction_NB.VIDE|fonction NB.VIDE ]] compte le nombre de cellules vides.
+
La [[Documentation/FR/Calc:_fonction_NB.VIDE|fonction NB.VIDE ]] compte le nombre de cellules vides.
  
 
==SOMME==
 
==SOMME==
  
La [[Documentation/FR/Calc:Fonction_SOMME|fonction SOMME]] fait la somme des nombres contenus dans les cellules spécifiées. Voir plus bas sur la facon de l'utiliser comme une fonction conditionnelle.
+
La [[Documentation/FR/Calc:_fonction_SOMME|fonction SOMME]] fait la somme des nombres contenus dans les cellules spécifiées. Voir ci-dessous l'utilisation de cette fonction en combinaison avec une condition.
  
 
==SOUS.TOTAL==
 
==SOUS.TOTAL==
  
La [[Documentation/Fr/Calc:Fonction_SOUSTOTAL|fonction SOUS.TOTAL]] renvoie les résultats <tt>'''NB'''</tt>, <tt>'''NBVAL'''</tt> ou <tt>'''SOMME'''</tt> pour des données filtrées, donc pour les données contenues dans des cellules, précédemment choisies grâce à un filtre.
+
La [[Documentation/FR/Calc:_fonction_SOUS.TOTAL|fonction SOUS.TOTAL]] renvoie les résultats <tt>'''NB'''</tt>, <tt>'''NBVAL'''</tt> ou <tt>'''SOMME'''</tt> pour des données filtrées, donc pour les données contenues dans des cellules, précédemment choisies grâce à un filtre.
  
 
==NB.SI==
 
==NB.SI==
  
La [[Documentation/FR/Calc:Fonction_NB.SI|fonction NB.SI]] compte les éléments qui remplissent une condition unique. Par exemple <tt>'''NB.SI(A1:A4; >4”)'''</tt> compte les cellules de la plage <tt>'''A1:A4'''</tt> qui sont supérieures à <tt>'''4'''</tt>.
+
La [[Documentation/FR/Calc:_fonction_NB.SI|fonction NB.SI]] compte les éléments qui remplissent une condition unique. Par exemple <tt>'''NB.SI(A1:A4; ">4")'''</tt> compte les cellules de la plage <tt>'''A1:A4'''</tt> qui sont supérieures à <tt>'''4'''</tt>.
  
 
==SOMME.SI==
 
==SOMME.SI==
  
LA [[Documentation/FR/Calc:Fonction_SOMME.SI|function SOMME.SI]] fait la somme d'éléments qui remplissent une seule condition. Par exemple <tt>'''SOMME.SI(A1:A4; =rouge”; B1:B4)'''</tt> fait la somme des valeurs dans <tt>'''B1:B4'''</tt> qui correspondent a la condition“<tt>'''rouge'''</tt>” entrées dans <tt>'''A1:A4'''</tt>.
+
La [[Documentation/FR/Calc:_fonction_SOMME.SI|fonction SOMME.SI]] totalise les éléments qui vérifient une condition unique. Par exemple <tt>'''SOMME.SI(A1:A4; "=rouge"; B1:B4)'''</tt> totalise les valeurs de la plage <tt>'''B1:B4'''</tt> qui correspondent à la valeur “<tt>'''rouge'''</tt>” dans la plage <tt>'''A1:A4'''</tt>.
  
 
==BDNB, BDNBVAL, BDPRODUIT==
 
==BDNB, BDNBVAL, BDPRODUIT==
  
Les [[Documentation/FR/Calc:Fonction_BDNB|fonction BDNB ]],
+
Les fonctions [[Documentation/FR/Calc:_fonction_BDNB|BDNB]], [[Documentation/FR/Calc:_fonction_BDNBVAL|BDNBVAL]] et [[Documentation/FR/Calc:_fonction_BDSOMME|BDSOMME]] agissent de la même façon que <tt>'''NB'''</tt>, <tt>'''NBVAL'''</tt> et <tt>'''SOMME'''</tt>, à cette différence près que les cellules comptées ou totalisées sont choisies en fonction d'une série de conditions (désignée sous le vocable "critères de recherche"). Par exemple, <tt>'''BDNB(A1:C5; 0; E6:F7)'''</tt> compte le nombre de lignes de la plage <tt>'''A1:C5'''</tt> pour lesquelles les conditions figurant dans la plage  <tt>'''E6:F7'''</tt> sont toutes vérifiées.
[[Documentation/FR/Calc:Fonction_BDNBVAL|fonction BDNBVAL ]], et  
+
[[Documentation/FR/Calc:Fonction_BDPRODUIT|fonction BDPRODUIT ]] perform similarly to <tt>'''COUNT'''</tt>, <tt>'''COUNTA'''</tt> and <tt>'''SUM'''</tt>, except that the cells to be counted or summed are chosen according to a table of conditions. For example, <tt>'''DCOUNT(A1:C5; 0; E6:F7)'''</tt> counts the number of rows of <tt>'''A1:C5'''</tt> for which the multiple conditions specified in <tt>'''E6:F7'''</tt> are all true.
+
  
==Conditions dans la selection des cellules==
+
==Conditions dans la sélection des cellules==
  
One simple method to count or sum using multiple conditions is to enter those conditions in a new row or column. For example, if <tt>'''A1:A6'''</tt> contains a list of colours and <tt>'''B1:B6'''</tt> a list of sizes, then we can enter in cell <tt>'''D1'''</tt> the formula <tt>'''<nowiki>=(A1=”red”)</nowiki>'''</tt>, which returns <tt>'''TRUE'''</tt> or <tt>'''FALSE'''</tt> depending if cell <tt>'''A1'''</tt> is <tt>'''red'''</tt> or not. Alternatively, we can enter in cell <tt>'''D1'''</tt> the formula <tt>'''<nowiki>=AND(A1=”red”; B1=”big”)</nowiki>'''</tt>, which returns <tt>'''TRUE'''</tt> if cell <tt>'''A1'''</tt> is <tt>'''red'''</tt> AND cell <tt>'''B1'''</tt> is <tt>'''big'''</tt> and <tt>'''FALSE'''</tt> otherwise. Copy and paste this formula to <tt>'''D2:D6'''</tt> and we have a range of cells which are <tt>'''TRUE'''</tt> if the conditions are met and <tt>'''FALSE'''</tt> otherwise.
+
Un moyen très simple de compter ou de totaliser en utilisant plusieurs conditions consiste à indiquer ces conditions dans une nouvelle ligne ou une nouvelle colonne. Par exemple  <tt>'''A1:A6'''</tt> contient une liste de couleurs et <tt>'''B1:B6'''</tt> une liste de tailles, il est possible d'entrer dans la cellule <tt>'''D1'''</tt> la formule <tt>'''<nowiki>=(A1="rouge")</nowiki>'''</tt>, qui renvoie <tt>'''VRAI'''</tt> ou <tt>'''FAUX'''</tt> selon que le contenu de la cellule <tt>'''A1'''</tt> est <tt>'''rouge'''</tt> ou pas. Une alternative consiste à entrer dans la cellule <tt>'''D1'''</tt> la formule <tt>'''<nowiki>=ET(A1="rouge"; B1="grand")</nowiki>'''</tt> ou <tt>'''<nowiki>=((A1="rouge") ET (B1="grand"))</nowiki>'''</tt>, qui renvoie <tt>'''VRAI'''</tt> si le contenu de la cellule <tt>'''A1'''</tt> est <tt>'''rouge'''</tt> ET celui de la cellule <tt>'''B1'''</tt> est <tt>'''grand'''</tt> et qui renvoie <tt>'''FAUX'''</tt> dans les autres cas. Copier et coller cette formule dans les cellules de la plage <tt>'''D2:D6'''</tt> permet d'obtenir une série de cellules contenant <tt>'''VRAI'''</tt> si les conditions sont vérifiées et <tt>'''FAUX'''</tt> autrement.
  
 
[[Image:Fr-calc-Sommeconditions.png|exemple]]
 
[[Image:Fr-calc-Sommeconditions.png|exemple]]
  
In numerical calculations, <tt>'''TRUE'''</tt> is treated as <tt>'''1'''</tt>, and <tt>'''FALSE'''</tt> is treated as <tt>'''0'''</tt>. So entering <tt>'''<nowiki>=SUM(D1:D6)</nowiki>'''</tt> will simply sum those <tt>'''1'''</tt>s and <tt>'''0'''</tt>s, and give us the count of items that are both <tt>'''red'''</tt> AND <tt>'''big'''</tt>.
+
En terme de calcul numérique, <tt>'''VRAI'''</tt> est traité en tant que <tt>'''1'''</tt>, et <tt>'''FAUX'''</tt> est traité en tant que <tt>'''0'''</tt>. Aussi, saisir <tt>'''<nowiki>=SOMME(D1:D6)</nowiki>'''</tt> totalisera simplement ces <tt>'''1'''</tt> et ces <tt>'''0'''</tt>, et renverra le total des éléments qui sont à la fois <tt>'''rouge'''</tt> ET <tt>'''grand'''</tt>.
  
  
In fact, because <tt>'''TRUE'''</tt> and <tt>'''FALSE'''</tt> evaluate as <tt>'''1'''</tt> and <tt>'''0'''</tt>, we do not need the <tt>'''AND'''</tt> function - in <tt>'''D1'''</tt> we can simply write <tt>'''<nowiki>=(A1=”red”)*(B1=”big”)</nowiki>'''</tt>, and copy/paste down to <tt>'''D2:D6'''</tt>.
+
En fait, puisque <tt>'''VRAI'''</tt> et <tt>'''FAUX'''</tt> valent <tt>'''1'''</tt> et <tt>'''0'''</tt>, le recours à la fonction <tt>'''ET'''</tt> n'est pas indispensable - dans <tt>'''D1'''</tt> il est possible de simplement écrire <tt>'''<nowiki>=(A1="rouge")*(B1="grand")</nowiki>'''</tt>, et copier/coller cette formule dans la plage de cellules <tt>'''D2:D6'''</tt>.
  
Now let us say that <tt>'''C1:C6'''</tt> contains a list of weights of these items, and we wish to know the total weight for all <tt>'''big'''</tt> <tt>'''red'''</tt> items. In <tt>'''D1'''</tt> we write <tt>'''<nowiki>=(A1=”red”)*(B1=”big”)*C1</nowiki>'''</tt>, and copy/paste down to <tt>'''D2:D6'''</tt>. <tt>'''D1'''</tt> will contain the weight in <tt>'''C1'''</tt> if the conditions are met (and zero otherwise) and so on for <tt>'''D2:D6'''</tt>, Therefore <tt>'''<nowiki>=SUM(D1:D6)</nowiki>'''</tt> will now give us the total weight.
+
Maintenant, supposons que <tt>'''C1:C6'''</tt> contient une liste de poids de ces articles, et que nous souhaitons connaître le poids total de tous les articles <tt>'''grand'''</tt> <tt>'''rouge'''</tt>. En <tt>'''D1'''</tt> nous écrivons <tt>'''<nowiki>=(A1="rouge")*(B1="grand")*C1</nowiki>'''</tt>, et effectuons un copier/coller dans la plage de cellules <tt>'''D2:D6'''</tt>. <tt>'''D1'''</tt> contiendra le poids mentionné en <tt>'''C1'''</tt> si les conditions sont vérifiées (et zéro autrement) et ainsi de suite pour <tt>'''D2:D6'''</tt>. Ainsi <tt>'''<nowiki>=SOMME(D1:D6)</nowiki>'''</tt> nous donnera maintenant le poids total.
  
 
[[Image:Fr-calc-Sommeconditions2.png|exemple]]
 
[[Image:Fr-calc-Sommeconditions2.png|exemple]]
  
Alternatively, it is possible to fill <tt>'''D1:D6'''</tt> with an array formula. In <tt>'''D1'''</tt>, write <tt>'''<nowiki>=(A1:A6=”red”)*(B1:B6=”big”)*C1:C6</nowiki>'''</tt>, and enter by pressing Ctrl_Shift_Enter. All the cells in <tt>'''D1:D6'''</tt> now show the desired weights as before.
+
D'une autre manière, il est possible de remplir la plage <tt>'''D1:D6'''</tt> avec une formule de matrice. En <tt>'''D1'''</tt>, on peut écrire  <tt>'''<nowiki>=(A1:A6="rouge")*(B1:B6="grand")*C1:C6</nowiki>'''</tt>, et valider en pressant simultanément Ctrl+Maj+Entrée. Toutes les cellules dans la plage <tt>'''D1:D6'''</tt> affichent maintenant les poids souhaités, comme précédemment.
  
 
==SOMMEPROD==
 
==SOMMEPROD==
  
The [[Documentation/FR/Calc:Fonction_SOMMEPROD|fonction SOMMEPROD]] can be used to perform the counting and summation calculations in the previous section, without using extra columns. It is necessary to understand array formulas to understand this.
+
La [[Documentation/FR/Calc:_fonction_SOMMEPROD|fonction SOMMEPROD]] peut être utilisée pour effectuer les comptages et les totalisations de la section précédente, sans avoir à recourir à des colonnes supplémentaires. Il est nécessaire de comprendre les formules matricielles pour comprendre cela.
 
+
 
+
Using the summation example from the previous section, <tt>'''A1:A6=”red”'''</tt>, <tt>'''B1:B6=”big”'''</tt> and <tt>'''C1:C6'''</tt> may be treated as 3 separate arrays, not displayed but internally calculated.
+
 
+
<tt>'''<nowiki>=SUMPRODUCT(A1:A6=”red”; B1:B6=”big”; C1:C6)</nowiki>'''</tt> will multiply corresponding elements of the arrays together and return their sum, i.e.:
+
 
+
'''(A1=”red”)*(B1=”big”)*C1 + (A2=”red”)*(B2=”big”)*C2 + ...'''
+
  
[[Image:Condsummation_3.png|example]]
 
  
This again gives us the total weight, without requiring an extra column.
+
L'exemple de totalisation de la section précédente, <tt>'''A1:A6="rouge"'''</tt>, <tt>'''B1:B6="grand"'''</tt> et <tt>'''C1:C6'''</tt> peut être traité comme 3 matrices séparées, non affichées et calculées de manière interne.
  
 +
<tt>'''<nowiki>=SOMMEPROD(A1:A6="rouge"; B1:B6="grand"; C1:C6)</nowiki>'''</tt> va multiplier les éléments correspondants des matrices mentionnées et renvoyer leur somme, à savoir :
  
Notice that <tt>'''SUMPRODUCT'''</tt> formulas are simply entered by pressing the Enter key - they do not require Ctrl_Shift_Enter even though arrays are involved.
+
'''(A1="rouge")*(B1="grand")*C1 + (A2="rouge")*(B2="grand")*C2 + ...'''
  
 +
[[Image:Fr-calc-Sommeconditions3.png|example]]
  
Also, be aware that calculations using very large arrays take a lot of computer processing time, and may slow the spreadsheet down.
+
Ceci donne à nouveau le poids total, sans avoir recours à une colonne supplémentaire.
  
 +
Notez que les formules <tt>'''SOMMEPROD'''</tt> sont simplement entrées en pressant la touche Entrée – elles ne nécessitent pas la combinaison Ctrl+Maj+Entrée, même si elles mettent en œuvre les matrices.
  
==SOMME with array formulas==
+
Il est également nécessaire d'avoir conscience du fait que les calculs portant sur des matrices de grande taille nécessitent beaucoup de temps processeur et sont susceptibles de ralentir la feuille de calcul.
  
An alternative to SUMPRODUCT is to use the [[Documentation/How_Tos/Calc: SUM function|SUM function]]. The previous example would be written:
+
==SOMME avec des formules matricielles==
  
'''<nowiki>=SUM( (A1:A6=”red”)*(B1:B6=”big”)*C1:C6) )</nowiki>'''
+
Une alternative à SOMMEPROD est d'utiliser la [[Documentation/FR/Calc:_fonction_SOMME|fonction SOMME]]. L'exemple précédent serait rédigé :
  
and entered as an array formula by pressing Ctrl_Shift_Enter. As with SUMPRODUCT, this works by multiplying corresponding elements of the arrays together and returning their sum.
+
'''<nowiki>=SOMME( (A1:A6="rouge")*(B1:B6="grand")*C1:C6) )</nowiki>'''
  
==DataPilot==
+
et saisit comme une formule matricielle en pressant Ctrl+Maj+Entrée. Comme avec SOMMEPROD, ceci agit en multipliant entre eux les éléments correspondants des matrices et en renvoyant leur somme.
  
Another way to approach conditional counting and summation is to use the DataPilot to generate an interactive table, whereby data can be arranged and summarised according to different points of view.
+
==Le pilote de données==
  
==Trucs et Astuces: checking settings==
+
Une autre approche des sommes et calculs conditionnels consiste à recourir au Pilote de données et générer une table interactive, dans laquelle les données peuvent être arrangées et résumées de différentes façons.
  
When matching text with some functions (such as <tt>'''SUMIF'''</tt>) , the results may well depend on the settings on the ''Tools menu-> Options-> OpenOffice.org Calc-> Calculate'' page. If the user's settings are incorrect, the results may therefore be wrong.
+
==Trucs et Astuces : Vérifiez les paramètres==
  
[[Image:Condsummation_4.png|settings]]
+
En manipulant du texte avec certaines fonctions (comme <tt>'''SOMME.SI'''</tt>), le résultat obtenu peut dépendre des réglages effectués dans la page ''Menu Outils-> Options-> OpenOffice.org Calc-> Calcul''. Si les réglages de l'utilisateur sont incorrects, les résultats obtenus peuvent, de ce fait, être faux.
  
One solution is to include prominently in the spreadsheet a check that the settings are correct. For example:
+
[[Image:Fr-calc-Sommeconditions4.png|Paramétrages]]
  
'''<nowiki>=IF(ISERR(SEARCH(".";"a"));"ERROR: please enable regular expressions";"")</nowiki>'''
+
Une solution peut consister à inclure, en haut de la feuille de calcul, un contrôle de l'exactitude des réglages. Par exemple :
  
will show an error message if regular expressions are disabled.
+
'''<nowiki>=SI(ESTERR(CHERCHE(".";"a"));"ERREUR: veuillez autoriser les caractères génériques dans les formules";"")</nowiki>'''
  
Another example - in cell <tt>'''A3'''</tt> enter the text:
+
affichera un message d'erreur si les caractères génériques dans les formules ne sont pas autorisés.
  
'''Check: '''
+
Un autre exemple – dans la cellule <tt>'''A3'''</tt> saisissez le texte :
  
In cell <tt>'''A4'''</tt> enter:
+
'''Vérification : '''
  
'''<nowiki>="Regular expressions are "&IF(COUNTIF(A3;".*"); "enabled"; "disabled")</nowiki>'''
+
Dans la cellule <tt>'''A4'''</tt> saisissez :
  
In cell <tt>'''A5'''</tt> enter:
+
'''<nowiki>="Les expressions régulières sont "&SI(NB.SI(A3;".*"); "activées"; "désactivées")</nowiki>'''
  
'''<nowiki>="Whole cell matching is "&IF(COUNTIF(A3;"<>e"); "enabled"; "disabled")</nowiki>'''
+
Dans la cellule <tt>'''A5'''</tt> saisissez :
  
[[Image:Condsummation_7.png|checking the settings]]
+
'''<nowiki>="L'option exactitude comme affiché est "&SI(NB.SI(A3;"<>e"); "activée"; "désactivée")</nowiki>'''
  
or better, use appropriate error messages.
+
[[Image:Fr-calc-Sommeconditions5.png|Vérification des paramètres]]
  
==Trucs et Astuces: items between two dates==
+
ou mieux encore, utilisez des messages d'erreurs appropriés.
  
Dates are stored internally as numbers and can thus be compared easily. For example, to count the number of cells in A1:A6 between two dates, you could use:
+
==Trucs et Astuces : Valeurs entre deux dates==
  
'''<nowiki>=SUMPRODUCT(A1:A6>DATEVALUE("5 Nov 06"); A1:A6<DATEVALUE("5 Dec 06"))</nowiki>'''
+
Les dates sont stockées en interne comme des nombres et peuvent donc être comparées facilement. Par exemple pour compter le nombre de cellules dans A1:A6 entre deux dates vous pouvez utiliser :
  
 +
'''<nowiki>=SOMMEPROD(A1:A6>DATEVAL("5 Nov 06"); A1:A6<DATEVAL("5 Dec 06"))</nowiki>'''
  
If you express the dates with slashes (e.g. “<tt>'''1/2/2005'''</tt>”) you can dispense with the <tt>'''DATEVALUE'''</tt> function, as Calc will convert the date. However, be aware that in one country this text may be converted to 1Feb05 and in another to 2Jan05.
 
  
==Trucs et Astuces: summing the largest/smallest items==
+
Si vous exprimez les dates avec des barres obliques (par exemple. “<tt>'''1/2/2005'''</tt>”) vous pouvez vous passer de la fonction <tt>'''DATEVAL'''</tt> , puisque Calc convertira la date. Cependant tenez compte du fait que dans certains pays cette date peut être interprétée comme le 1 Février 2005 et dans d'autres comme le 2 Janvier 2005.
  
To add up the largest 3 numbers in <tt>'''A1:A5'''</tt>, the most straightforward method is to enter:
+
==Trucs et Astuces : Faire la somme des plus grandes valeurs / ou plus petites==
  
<tt>'''<nowiki>=LARGE(A1:A5; 1)</nowiki>'''</tt> in cell <tt>'''B1'''</tt>
+
Pour faire la somme des 3 plus grandes valeurs de la plage <tt>'''A1:A5'''</tt>, le plus simple est de saisir :
  
<tt>'''<nowiki>=LARGE(A1:A5; 2)</nowiki>'''</tt> in cell <tt>'''B2'''</tt>
+
<tt>'''<nowiki>=GRANDE.VALEUR(A1:A5; 1)</nowiki>'''</tt> dans la cellule <tt>'''B1'''</tt>
  
<tt>'''<nowiki>=LARGE(A1:A5; 3)</nowiki>'''</tt> in cell <tt>'''B3'''</tt>
+
<tt>'''<nowiki>=GRANDE.VALEUR(A1:A5; 2)</nowiki>'''</tt> dans la cellule <tt>'''B2'''</tt>
  
 +
<tt>'''<nowiki>=GRANDE.VALEUR(A1:A5; 3)</nowiki>'''</tt> dans la cellule <tt>'''B3'''</tt>
  
so that the largest 3 numbers are in <tt>'''B1:B3'''</tt>, and then use the formula:
 
  
<tt>'''<nowiki>=SUM(B1:B3)</nowiki>'''</tt> to give the result.
+
Pour que les 3 plus grands nombres apparaissent dans <tt>'''B1:B3'''</tt>, puis d'utiliser la formule :
  
[[Image:Condsummation_5.png|example]]
+
'''<nowiki>=SOMME(B1:B3)</nowiki>'''</tt> pour obtenir le résultat.
  
This method is very clear, and generally therefore to be recommended.
+
[[Image:Fr-calc-Sommeconditions6.png|exemple]]
  
 +
Cette méthode est très claire et à recommander pour le cas général.
  
However if you wish to derive the same result in a single cell, you could use
+
Cependant si vous voulez obtenir ce résultat en passant par une seule cellule, vous pouvez utiliser :
  
 +
'''<nowiki>=SOMMEPROD(GRANDE.VALEUR(A1:A5; LIGNE(A1:A3)))</nowiki>'''
  
'''<nowiki>=SUMPRODUCT(LARGE(A1:A5; ROW(A1:A3)))</nowiki>'''
+
[[Image:Fr-calc-Sommeconditions7.png|exemple]]
  
[[Image:Condsummation_6.png|example]]
+
Ici <tt>'''LIGNE(A1:A3)'''</tt> est un tableau d'une colonne et 3 lignes contenant les nombres <tt>'''1'''</tt>, <tt>'''2'''</tt>, et <tt>'''3'''</tt>.
  
Here <tt>'''ROW(A1:A3)'''</tt> is a 1 column 3 row array containing the numbers <tt>'''1'''</tt>, <tt>'''2'''</tt>, <tt>'''3'''</tt>.
+
<tt>'''GRANDE.VALEUR(A1:A5; LIGNE(A1:A3))'''</tt> est un tableau d'une colonne et 3 lignes contenant les plus grands nombres et <tt>'''SOMMEPROD'''</tt> fait juste la somme des 3. On pourrait aussi utiliser <tt>'''SOMME'''</tt> à la place de <tt>'''SOMMEPROD'''</tt> mais dans ce cas la formule doit être saisie comme une une formule de matrice en en tapant Ctrl+Maj+Entrée.
  
<tt>'''LARGE(A1:A5; ROW(A1:A3))'''</tt> is then a 1 column 3 row array containing the largest 3 numbers and <tt>'''SUMPRODUCT'''</tt> simply adds them up. We could use <tt>'''SUM'''</tt> instead of <tt>'''SUMPRODUCT'''</tt> but in that case the formula must be entered as an array formula by pressing Ctrl_Shift_Enter.
 
  
 +
Pour additionner les 4 plus grand nombres, utilisez <tt>'''...LIGNE(A1:A4)..'''</tt> au lieu de <tt>'''...LIGNE(A1:A3)..'''</tt>
  
To add up the largest 4 numbers (say), use <tt>'''...ROW(A1:A4)..'''</tt> instead of <tt>'''...ROW(A1:A3)..'''</tt>
 
  
 +
Pour additionner les plus petits nombres, utilisez <tt>'''PETITE.VALEUR(...)'''</tt> au lieu de <tt>'''GRANDE.VALEUR(...)'''</tt>.
  
To add the smallest numbers, use <tt>'''SMALL(...)'''</tt> instead of <tt>'''LARGE(...)'''</tt>.
+
==Trucs et Astuces : Faire la somme de cellules correspondant à d'autres cellules vides==
  
==Trucs et Astuces: summing matching blank, etc cells==
+
'''<nowiki>=SOMMEPROD(ESTVIDE(A1:A5); B1:B5)</nowiki>'''
  
'''<nowiki>=SUMPRODUCT(ISBLANK(A1:A5); B1:B5)</nowiki>'''
+
Fera la somme des cellules dans <tt>'''B1:B5'''</tt> correspondant aux cellules vides dans <tt>'''A1:A5'''</tt>.
  
sums those cells in <tt>'''B1:B5'''</tt> corresponding to blank cells in <tt>'''A1:A5'''</tt>.
+
D'autre fonctions similaires (par exemple <tt>'''ESTTEXTE'''</tt>, <tt>'''ESTNUM'''</tt>) peuvent être utilisées de la même façon.
  
Other similar functions (e.g. <tt>'''ISTEXT'''</tt>, <tt>'''ISNUMBER'''</tt>) can be used in the same way.
+
==Trucs et Astuces : Faire la somme de plus d'une colonne==
  
==Trucs et Astuces: summing more than one column==
+
'''<nowiki>=SOMMEPROD(D1:D6="rouge";E1:E6+F1:F6)</nowiki>'''
  
'''<nowiki>=SUMPRODUCT(D1:D6="red";E1:E6+F1:F6)</nowiki>'''
+
Fera la somme des cellules <tt>'''E1:E6'''</tt> et <tt>'''F1:F6'''</tt> qui correspondent aux cellules dans <tt>'''D1:D6'''</tt> contenant <tt>'''rouge'''</tt>. Par exemple si <tt>'''D2'''</tt> et <tt>'''D4'''</tt> contiennent rouge, le résultat est <tt>'''E2+F2+E4+F4'''</tt>.
  
will sum cells in <tt>'''E1:E6'''</tt> and in <tt>'''F1:F6'''</tt> which correspond to cells in <tt>'''D1:D6'''</tt> containing <tt>'''red'''</tt>. For example if <tt>'''D2'''</tt> and <tt>'''D4'''</tt> contain red, the result is <tt>'''E2+F2+E4+F4'''</tt>.
+
==Trucs et Astuces : Faire la somme chaque 'n' lignes==
  
==Trucs et Astuces: summing every nth row==
+
'''<nowiki>=SOMMEPROD(MOD(LIGNE(A1:A8); 2)=0; </nowiki> A1:A8)'''
  
'''<nowiki>=SUMPRODUCT(MOD(ROW(A1:A8); 2)=0; </nowiki> A1:A8)'''
+
Fera la somme de chaque deuxième ligne dans <tt>'''A1:A8'''</tt>. Changer le  <tt>'''=0'''</tt> en <tt>'''=1'''</tt> permettra de commencer à la première ligne. Changer le <tt>'''2'''</tt> en <tt>'''3'''</tt> pour faire la somme toutes les trois lignes, etc........
  
will sum every second row in <tt>'''A1:A8'''</tt>. Change the <tt>'''=0'''</tt> to <tt>'''=1'''</tt> to sum every second row, but starting at the first row. Change the <tt>'''2'''</tt> to <tt>'''3'''</tt> to sum every third row, and so on.  
+
[[Image:Fr-calc-Sommeconditions8.png|exemple]]
  
[[Image:Condsummation_8.png|example]]
+
==Trucs et Astuces : Faire la somme d'objets respectant un certain formatage==
  
==Trucs et Astuces: summing items with certain formatting==
+
La fonction CELLULE renvoie des informations sur les cellules, par exemple le format d'affichage des nombres ou des dates, et la largeur des colonnes. Elle peut être utilisée dans les mêmes conditions que les paragraphes précédents. Il n'y a pas de fonction qui renvoie la couleur ou la police d'une cellule, si aucune formule relative à la couleur ou à la police n'existe, il sera nécessaire de faire appel à une macro.
  
The CELL function returns information about cells, for instance the format that numbers or dates are displayed in and the column width. It can thus be used with one of the methods above. There is no function that returns the colour or font of a cell. If no independent formula relating to colour or font exists, then it may be necessary to use a macro.
+
==Trucs et Astuces : Faire la somme d'objet similaires dans une liste séparée==
  
==Trucs et Astuces: summing matching items in a separate list==
+
Disons que <tt>'''A1:A9'''</tt> contient une liste de dates, <tt>'''B1:B9'''</tt> contient des numéros de téléphones, et <tt>'''C1:C9'''</tt> le coût de ces appels. <tt>'''F1:F5'''</tt> est une liste de certains numéros et vous voulez établir les coûts d'appels à ces numéros.
  
Say that <tt>'''A1:A9'''</tt> contains a list of dates, <tt>'''B1:B9'''</tt> contains phone numbers and <tt>'''C1:C9'''</tt> the costs of making phone calls. <tt>'''F1:F5'''</tt> is a list of certain phone numbers, and you want to know the total cost of calls to these numbers.
 
  
 +
Dans la cellule <tt>'''D1'''</tt> saisissez :
  
In cell <tt>'''D1'''</tt> enter:
+
'''<nowiki>=ESTNUM(EQUIV(B1; F$1:F$5; 0))*C1</nowiki>'''
  
'''<nowiki>=ISNUMBER(MATCH(B1; F$1:F$5; 0))*C1</nowiki>'''
+
et copiez/collez vers le bas dans <tt>'''D2:D9'''</tt>
  
and copy/paste down to <tt>'''D2:D9'''</tt>
+
<tt>'''<nowiki>=SOMME(D1:D9)</nowiki>'''</tt> donne maintenant le coût total des appels.
  
<tt>'''<nowiki>=SUM(D1:D9)</nowiki>'''</tt> now gives the total cost of calls.
+
[[Image:Fr-calc-Sommeconditions9.png|exemple]]
  
[[Image:Condsummation_9.png|example]]
+
Pour faire le calcul sans colonne supplémentaire, on peut utiliser :
  
To perform this calculation without an extra column, you could use:
+
<nowiki>=SOMMEPROD(NON(ESTERREUR(EQUIV(B1:B9; F$1:F$5; 0))); C1:C9)</nowiki>
  
<nowiki>=SUMPRODUCT(NOT(ISERROR(MATCH(B1:B9; F$1:F$5; 0))); C1:C9)</nowiki>
+
Nous avons vu plus haut qu'il est important de vérifier les paramétrages de Calc, ceci en est un bon exemple car si l'utilisateur a activé les expressions régulières (réglages par défaut) un numéro de téléphone écrit comme (720) 528-1700 est interprété comme une expression régulière et pourrait correspondre à d'autres lignes que (720) 528-1700.
  
We discussed above how it can be important to check Calc settings; this is a good example - if the user has regular expressions turned on (the default) a telephone number written as (720) 528-1700 is interpreted as a regular expression and might match entries other than (720) 528-1700.
 
 
 
{{PDL1}}
 
{{PDL1}}
[[Category: Documentation]] [[Category: FR]]
+
[[Category: FR/Documentation/Calc|Sommes et calculs conditionnels]]  
 +
[[en:Documentation/How_Tos/Conditional_Counting_and_Summation]]

Latest revision as of 12:53, 6 May 2009


Sommes et calculs conditionnels dans Calc

Ceci est un résumé sur les différentes façons de compter des cellules et de faire la somme de leur contenu en fonction du résultat de certains tests.

NB

La fonction NB compte le nombre de cellules qui contient des nombres et ignorera les autres. Par exemple les cellules contenant du texte seront ignorées.

NBVAL

La fonction NBVAL compte le nombre de cellules quel que soit leur contenu (du texte, des nombres, des erreurs, des valeurs logiques ou des formules ). Elle ignore les cellules vides.

NB.VIDE

La fonction NB.VIDE compte le nombre de cellules vides.

SOMME

La fonction SOMME fait la somme des nombres contenus dans les cellules spécifiées. Voir ci-dessous l'utilisation de cette fonction en combinaison avec une condition.

SOUS.TOTAL

La fonction SOUS.TOTAL renvoie les résultats NB, NBVAL ou SOMME pour des données filtrées, donc pour les données contenues dans des cellules, précédemment choisies grâce à un filtre.

NB.SI

La fonction NB.SI compte les éléments qui remplissent une condition unique. Par exemple NB.SI(A1:A4; ">4") compte les cellules de la plage A1:A4 qui sont supérieures à 4.

SOMME.SI

La fonction SOMME.SI totalise les éléments qui vérifient une condition unique. Par exemple SOMME.SI(A1:A4; "=rouge"; B1:B4) totalise les valeurs de la plage B1:B4 qui correspondent à la valeur “rouge” dans la plage A1:A4.

BDNB, BDNBVAL, BDPRODUIT

Les fonctions BDNB, BDNBVAL et BDSOMME agissent de la même façon que NB, NBVAL et SOMME, à cette différence près que les cellules comptées ou totalisées sont choisies en fonction d'une série de conditions (désignée sous le vocable "critères de recherche"). Par exemple, BDNB(A1:C5; 0; E6:F7) compte le nombre de lignes de la plage A1:C5 pour lesquelles les conditions figurant dans la plage E6:F7 sont toutes vérifiées.

Conditions dans la sélection des cellules

Un moyen très simple de compter ou de totaliser en utilisant plusieurs conditions consiste à indiquer ces conditions dans une nouvelle ligne ou une nouvelle colonne. Par exemple A1:A6 contient une liste de couleurs et B1:B6 une liste de tailles, il est possible d'entrer dans la cellule D1 la formule =(A1="rouge"), qui renvoie VRAI ou FAUX selon que le contenu de la cellule A1 est rouge ou pas. Une alternative consiste à entrer dans la cellule D1 la formule =ET(A1="rouge"; B1="grand") ou =((A1="rouge") ET (B1="grand")), qui renvoie VRAI si le contenu de la cellule A1 est rouge ET celui de la cellule B1 est grand et qui renvoie FAUX dans les autres cas. Copier et coller cette formule dans les cellules de la plage D2:D6 permet d'obtenir une série de cellules contenant VRAI si les conditions sont vérifiées et FAUX autrement.

exemple

En terme de calcul numérique, VRAI est traité en tant que 1, et FAUX est traité en tant que 0. Aussi, saisir =SOMME(D1:D6) totalisera simplement ces 1 et ces 0, et renverra le total des éléments qui sont à la fois rouge ET grand.


En fait, puisque VRAI et FAUX valent 1 et 0, le recours à la fonction ET n'est pas indispensable - dans D1 il est possible de simplement écrire =(A1="rouge")*(B1="grand"), et copier/coller cette formule dans la plage de cellules D2:D6.

Maintenant, supposons que C1:C6 contient une liste de poids de ces articles, et que nous souhaitons connaître le poids total de tous les articles grand rouge. En D1 nous écrivons =(A1="rouge")*(B1="grand")*C1, et effectuons un copier/coller dans la plage de cellules D2:D6. D1 contiendra le poids mentionné en C1 si les conditions sont vérifiées (et zéro autrement) et ainsi de suite pour D2:D6. Ainsi =SOMME(D1:D6) nous donnera maintenant le poids total.

exemple

D'une autre manière, il est possible de remplir la plage D1:D6 avec une formule de matrice. En D1, on peut écrire =(A1:A6="rouge")*(B1:B6="grand")*C1:C6, et valider en pressant simultanément Ctrl+Maj+Entrée. Toutes les cellules dans la plage D1:D6 affichent maintenant les poids souhaités, comme précédemment.

SOMMEPROD

La fonction SOMMEPROD peut être utilisée pour effectuer les comptages et les totalisations de la section précédente, sans avoir à recourir à des colonnes supplémentaires. Il est nécessaire de comprendre les formules matricielles pour comprendre cela.


L'exemple de totalisation de la section précédente, A1:A6="rouge", B1:B6="grand" et C1:C6 peut être traité comme 3 matrices séparées, non affichées et calculées de manière interne.

=SOMMEPROD(A1:A6="rouge"; B1:B6="grand"; C1:C6) va multiplier les éléments correspondants des matrices mentionnées et renvoyer leur somme, à savoir :

(A1="rouge")*(B1="grand")*C1 + (A2="rouge")*(B2="grand")*C2 + ...

example

Ceci donne à nouveau le poids total, sans avoir recours à une colonne supplémentaire.

Notez que les formules SOMMEPROD sont simplement entrées en pressant la touche Entrée – elles ne nécessitent pas la combinaison Ctrl+Maj+Entrée, même si elles mettent en œuvre les matrices.

Il est également nécessaire d'avoir conscience du fait que les calculs portant sur des matrices de grande taille nécessitent beaucoup de temps processeur et sont susceptibles de ralentir la feuille de calcul.

SOMME avec des formules matricielles

Une alternative à SOMMEPROD est d'utiliser la fonction SOMME. L'exemple précédent serait rédigé :

=SOMME( (A1:A6="rouge")*(B1:B6="grand")*C1:C6) )

et saisit comme une formule matricielle en pressant Ctrl+Maj+Entrée. Comme avec SOMMEPROD, ceci agit en multipliant entre eux les éléments correspondants des matrices et en renvoyant leur somme.

Le pilote de données

Une autre approche des sommes et calculs conditionnels consiste à recourir au Pilote de données et générer une table interactive, dans laquelle les données peuvent être arrangées et résumées de différentes façons.

Trucs et Astuces : Vérifiez les paramètres

En manipulant du texte avec certaines fonctions (comme SOMME.SI), le résultat obtenu peut dépendre des réglages effectués dans la page Menu Outils-> Options-> OpenOffice.org Calc-> Calcul. Si les réglages de l'utilisateur sont incorrects, les résultats obtenus peuvent, de ce fait, être faux.

Paramétrages

Une solution peut consister à inclure, en haut de la feuille de calcul, un contrôle de l'exactitude des réglages. Par exemple :

=SI(ESTERR(CHERCHE(".";"a"));"ERREUR: veuillez autoriser les caractères génériques dans les formules";"")

affichera un message d'erreur si les caractères génériques dans les formules ne sont pas autorisés.

Un autre exemple – dans la cellule A3 saisissez le texte :

Vérification : 

Dans la cellule A4 saisissez :

="Les expressions régulières sont "&SI(NB.SI(A3;".*"); "activées"; "désactivées")

Dans la cellule A5 saisissez :

="L'option exactitude comme affiché est "&SI(NB.SI(A3;"<>e"); "activée"; "désactivée")

Vérification des paramètres

ou mieux encore, utilisez des messages d'erreurs appropriés.

Trucs et Astuces : Valeurs entre deux dates

Les dates sont stockées en interne comme des nombres et peuvent donc être comparées facilement. Par exemple pour compter le nombre de cellules dans A1:A6 entre deux dates vous pouvez utiliser :

=SOMMEPROD(A1:A6>DATEVAL("5 Nov 06"); A1:A6<DATEVAL("5 Dec 06"))


Si vous exprimez les dates avec des barres obliques (par exemple. “1/2/2005”) vous pouvez vous passer de la fonction DATEVAL , puisque Calc convertira la date. Cependant tenez compte du fait que dans certains pays cette date peut être interprétée comme le 1 Février 2005 et dans d'autres comme le 2 Janvier 2005.

Trucs et Astuces : Faire la somme des plus grandes valeurs / ou plus petites

Pour faire la somme des 3 plus grandes valeurs de la plage A1:A5, le plus simple est de saisir :

=GRANDE.VALEUR(A1:A5; 1) dans la cellule B1

=GRANDE.VALEUR(A1:A5; 2) dans la cellule B2

=GRANDE.VALEUR(A1:A5; 3) dans la cellule B3


Pour que les 3 plus grands nombres apparaissent dans B1:B3, puis d'utiliser la formule :

=SOMME(B1:B3)</tt> pour obtenir le résultat.

exemple

Cette méthode est très claire et à recommander pour le cas général.

Cependant si vous voulez obtenir ce résultat en passant par une seule cellule, vous pouvez utiliser :

=SOMMEPROD(GRANDE.VALEUR(A1:A5; LIGNE(A1:A3)))

exemple

Ici LIGNE(A1:A3) est un tableau d'une colonne et 3 lignes contenant les nombres 1, 2, et 3.

GRANDE.VALEUR(A1:A5; LIGNE(A1:A3)) est un tableau d'une colonne et 3 lignes contenant les plus grands nombres et SOMMEPROD fait juste la somme des 3. On pourrait aussi utiliser SOMME à la place de SOMMEPROD mais dans ce cas la formule doit être saisie comme une une formule de matrice en en tapant Ctrl+Maj+Entrée.


Pour additionner les 4 plus grand nombres, utilisez ...LIGNE(A1:A4).. au lieu de ...LIGNE(A1:A3)..


Pour additionner les plus petits nombres, utilisez PETITE.VALEUR(...) au lieu de GRANDE.VALEUR(...).

Trucs et Astuces : Faire la somme de cellules correspondant à d'autres cellules vides

=SOMMEPROD(ESTVIDE(A1:A5); B1:B5)

Fera la somme des cellules dans B1:B5 correspondant aux cellules vides dans A1:A5.

D'autre fonctions similaires (par exemple ESTTEXTE, ESTNUM) peuvent être utilisées de la même façon.

Trucs et Astuces : Faire la somme de plus d'une colonne

=SOMMEPROD(D1:D6="rouge";E1:E6+F1:F6)

Fera la somme des cellules E1:E6 et F1:F6 qui correspondent aux cellules dans D1:D6 contenant rouge. Par exemple si D2 et D4 contiennent rouge, le résultat est E2+F2+E4+F4.

Trucs et Astuces : Faire la somme chaque 'n' lignes

=SOMMEPROD(MOD(LIGNE(A1:A8); 2)=0;  A1:A8)

Fera la somme de chaque deuxième ligne dans A1:A8. Changer le =0 en =1 permettra de commencer à la première ligne. Changer le 2 en 3 pour faire la somme toutes les trois lignes, etc........

exemple

Trucs et Astuces : Faire la somme d'objets respectant un certain formatage

La fonction CELLULE renvoie des informations sur les cellules, par exemple le format d'affichage des nombres ou des dates, et la largeur des colonnes. Elle peut être utilisée dans les mêmes conditions que les paragraphes précédents. Il n'y a pas de fonction qui renvoie la couleur ou la police d'une cellule, si aucune formule relative à la couleur ou à la police n'existe, il sera nécessaire de faire appel à une macro.

Trucs et Astuces : Faire la somme d'objet similaires dans une liste séparée

Disons que A1:A9 contient une liste de dates, B1:B9 contient des numéros de téléphones, et C1:C9 le coût de ces appels. F1:F5 est une liste de certains numéros et vous voulez établir les coûts d'appels à ces numéros.


Dans la cellule D1 saisissez :

=ESTNUM(EQUIV(B1; F$1:F$5; 0))*C1

et copiez/collez vers le bas dans D2:D9

=SOMME(D1:D9) donne maintenant le coût total des appels.

exemple

Pour faire le calcul sans colonne supplémentaire, on peut utiliser :

=SOMMEPROD(NON(ESTERREUR(EQUIV(B1:B9; F$1:F$5; 0))); C1:C9)

Nous avons vu plus haut qu'il est important de vérifier les paramétrages de Calc, ceci en est un bon exemple car si l'utilisateur a activé les expressions régulières (réglages par défaut) un numéro de téléphone écrit comme (720) 528-1700 est interprété comme une expression régulière et pourrait correspondre à d'autres lignes que (720) 528-1700.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages