=SOMMEPROD(1/NB.SI(matrice;matrice))

Signaler
-
via55
Messages postés
11759
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
16 février 2020
-
Bonjour,
J'aimerais savoir ce que signifie cette formule
Apparemment elle compte le nombre total d’occurrences différentes dans une matrice (colonne). Peut-on lui adjoindre des conditions supplémentaires pour affiner ce comptage ?


Configuration: Windows / Chrome 79.0.3945.130

9 réponses

Messages postés
23263
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 février 2020
5 910
Bonjour à tous,

pour t'expliquer le fonctionnement ce cette formule, 1/NB.SI(matrice;matrice) te met 1/x pour chaque élément.
Par exemple tu a 4 merles, chacun recevra 1/4 dont la somme te donnera 1.

Déposer le fichier xls sur cjoint.com et coller ici le lien fourni.
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
le voici encore
https://www.cjoint.com/c/JBhpVTFaV3U
A+
Messages postés
11759
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
16 février 2020
1 661
Bonjour

Je ne comprends pas les formules avec FREQUENCE ou avec NB.SI ne donnent des résultats corrects (j'obtiens pour l'une une erreur DIV/0 que je ne m'explique pas, il y a bien des valeurs non nulles dans toutes les colonnes semble-t-il)
Donc je suis passé par une fonction personnalisée qui elle fonctionne
https://mon-partage.fr/f/mpCS5Pg2/

Cdlmnt
Via
Messages postés
11759
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
16 février 2020
1 661
C'est une macro écrite en VBA que tu peux utiliser librement comme tu veux
Pour la mettre sur une autre fichier :
1) 1er fichier : ALT+F11 pour ouvrir l'éditeur VBA
2) Copier toute la macro et fermer l'éditeur
3) 2eme fichier : ALT+F11 pour ouvrir l'éditeur puis Insertion et Module puis coller la macro dans la page blanche et fermer l'éditeur

La macro s'utilise comme n'importe quelle fonction Excel selon la syntaxe :
=especes_diff(champ à compter, champ du critère, critère)
Les champs peuvent être des plages indiquées sous la forme A2:A2000 ou sous leur nom pour les plages nommées (dans ton fichier tu avais nommé les plages piafs et année)
En dernier c'est l'adresse de la cellule où se situe le critère

Si tu n'arrives pas à adapter ainsi à l'autre fichier, poste moi ce fichier, je t'adapterai ça

A+
Messages postés
11759
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
16 février 2020
1 661
Tant mieux

La macro n'est pas de moi, rendons à César ce qui est à César, elle est de Jacques Boisgonthier
Avec l'objet Dictionnary on crée un tableau à une dimension (voir : http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm) dans lequel en bouclant sur les cellules du champ choisi on place les valeurs répondant au critère voulu dans le champ critère.Dictionnary permet d'avoir un tableau sans doublons.A la fin on compte combien il y a d'items dans le dictionnaire ce qui donne le total des valeurs répondant au critère

A + quand tu veux

Messages postés
11759
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
16 février 2020
1 661
Bonjour

Oui c'est cela, les doublons ne sont comptés qu'une fois

Pour des conditions supplémentaires sur d'autres colonnes tu peux utiliser NB.SI.ENS
=SOMMEPROD(1/NB.SI.ENS(matrice1;matrice1;matrice2;matrice2; etc))
Avec par exemple
col A col B
1 Lyon
2 Lyon
3 Lyon
4 Lyon
1 Lyon
2 Lyon
3 Toulouse
4 Toulouse
=SOMMEPROD(1/NB.SI.ENS(A2:A9;A2:A9;B2:B9;B2:B9)) renvoie 6

Cdlmnt
Via

Bonjour
Et merci pour cet exercice, que j'ai bien compris
Mais ma demande n'est pas tout a fait ça, mais on s'en approche
En fait il y a 2 tableaux :
Une matrice de 5000 lignes, 2 colonnes : Espèces (d'oiseau bagués), Date de baguage. Cette matrice est tirée d'une autre qui en contient plus de 10000 lignes
Un second petit tableau distinct contenant des conditions à remplir à partir de calculs faits sur la matrice. Il s'agit de dénombrer les espèces par année, les journées de baguage, etc.
Comme tu le vois, je suis ornithologue et je bague les passereaux migrateurs depuis 1991
Mais est-il possible de t'envoyer le tableau excel en question et comment ?
Bien à toi
https://www.cjoint.com/c/JBhpVTFaV3U
Voila c'est en principe envoyé
Merci encore !
Merci !
Mais c'est quoi une fonction personnalisée?
Peut-on la récupérer sans... payer les droits d'auteurs ?
J'ai essayé d'adapter cette fonction sur un autre fichier du même acabit avec les mêmes structures mais avec des variables différentes, il me répond #NOM?
Que puis-je faire?
J"ai une matrice de 15 colonnes et plus de 11000 lignes sur un autre fichier !
Depuis 1991 !
sinon je dois travailler manuellement en repérant chaque changement de date
Je ne connais pas le VBA
A+
Eh bien merci !
Cela fonctionne pour les + de 11000 lignes d'un extrait du fichier original (11000 x 2). Les résultats sur le gros fichier original sont quelque peu différents... à rechercher pourquoi
Je vais essayer d'aller plus en détail : mensuel, journalier...
Cela me permet d'avoir un début de statistiques du baguage ornitho sur un site déterminé depuis 1995 (nonante-cinq, c'est du belge !!!)
Par ailleurs, quant à comprendre la fonction personnalisée, j'ai du mal...
Jadis (il y a 40 ans) j'ai appris un certain nombre de langages informatiques (langage machine, fortran, basic etc.), mais le VBA...!!!!

A+ pour d'autres questions peut-être ?