Calculer un total avec deux conditions à partir de deux colonnes

Fermé
KCCrock Messages postés 7 Date d'inscription jeudi 30 août 2012 Statut Membre Dernière intervention 11 février 2014 - 7 févr. 2014 à 22:53
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 11 févr. 2014 à 21:40
Bonjour,

J'essaie de trouver une façon d'obtenir un total de fréquence où 1) si dans une colonne la valeur est "1", calculer le nombre de fois total où il y a valeur de "1" ou "2" dans une autre colonne.

Mise en contexte:
J'ai la colonne "75" (ID d'une femelle) et je souhaite savoir si la colonne "273" (ID de son juvénile) est codé "1" pour la même ligne.

Mon fichier est monté comme suit:
Colonne = Identification de chaque individu
Ligne = date
Donc, durant tout un été, j'ai observé les mêmes individus tous les jours, et donc, chaque jour:
le juvénile est codé "0" (absence) ou "1" (présence)
la femelle est codée une valeur entre 0 et 16, selon qu'elle soit vue seule, avec un bébé ou un juvénile...

Mon but est de savoir combien de fois la femelle est vue codée "1" ou "2" alors que son juvénile (dont je sais la colonne par l'identifiant) doit être codé "1" et ce, pour chacun des lignes, soit chacune des journées.

Dans un autre sens, je voudrais éliminer les codes de "1" ou "2" pour la femelle alors que le juvénile n'est pas vu cette même date là...Je ne sais pas si l'inverse est plus clair. Car j'ai tenté le countif() pour le code "2" par exemple pour la femelle, mais le total m'inclut même les journées où le jeune n'y est pas... Alors le total est surévalué.

J'ai tenté une formule dans le logiciel R, mais j'aimerais vérifier "à la main" les sorties de comptes qu'il fait. Version à la main faite par Excel si possible car j'ai des tonnes de femelles et de juvéniles, tonnes de dates et 20 ans de données...Alors si ça se fait dans Excel...

Merci beaucoup à l'avance!!!


A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 704
Modifié par gbinforme le 7/02/2014 à 23:33
Bonjour,

Tu peux utiliser SOMMEPROD
=SOMMEPROD((=1)+ (colonne "75"=2)*(colonne "273" =1))

Tu remplaces bien sûr <colonne "273"> et <colonne "75"> par la lettre de la colonne A:A par exemple.

Pour vérifier, tu peux mettre un filtre et choisir les codes voulus dansles colonnes voulues.
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
0
KCCrock Messages postés 7 Date d'inscription jeudi 30 août 2012 Statut Membre Dernière intervention 11 février 2014
11 févr. 2014 à 19:39
Bonjour,

Tout d'abord merci pour ta réponse! J'ai pris le temps d'essayer.

Malgré cette méthode, je reçois un message d'erreur #VALUE.
J'ai vérifié que mes chiffres soient en format Nombre sans décimale.

Voici un exemple de ma feuille:
Date (Colonne I:femelle) 75 (Colonne CU:juvénile) 273
31/05/2001 2 0
01/06/2001 1 1
01/06/2001 2 1
02/06/2001 1 0

(J'ai plusieurs fois la même date car je note différentes observations par jour)
(Juvénile toujours soit code 1 présent ou 0 absent)

À la ligne 1000, au bas, j'ai fait:
Total code (Colonne I:femelle) 75 (Colonne CU:juvénile) 273
1 =SUMPRODUCT(I$2:I$252=1)*(CU$2:CU$252=1) =COUNTIF(CU$2:CU$252;1)
2 =SUMPRODUCT(I$2:I$252=2)*(CU$2:CU$252=1) 0
3 =COUNTIF(I$2:I$252;3)
4 =COUNTIF(I$2:I$252;4)
... jusqu'à 16

Les codes 3 et plus sont calculés avec countif car il est certain que le juvénile est là.

Les countif sont bien exécutés, mais j'ai besoin d'exclure les codes 1 et 2 de femelle où le juvénile 273 est codé 0....ou prendre seulement ceux où il est codé 1.

Enfin, je ne sais pas ce que je fais de pas correct....

Merci d'avance énormément!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 704
Modifié par gbinforme le 11/02/2014 à 21:44
Bonsoir,

Il me semble que ta formule devrait s'écire :
=SUMPRODUCT(((I$2:I$252=1)+(I$2:I$252=2))*(CU$2:CU$252=1))
Cela signifie "si colonne I égale 1 ou (le +) 2" multiplier par valeur colonne CU si égale à 1
et ainsi tu devrais avoir ton résultat correct, ce que j'ai testé en français sans souci.
Attention, il faut bien mettre les parenthèses voulues et comme tu l'avais fait que les plages aient la même taille.

Si tu mets ta formule en ligne 1000 tu peux écrire ainsi même si tes lignes 252:999 son vides :
=SUMPRODUCT(((I$2:I$999=1)+(I$2:I$999=2))*(CU$2:CU$999=1))
0