Formule nb.si.ens avec beaucoup de critères...

Résolu

Bonjour,

Je recherche une formule pour calculer un nombre de cases qui ne soient pas zéro dans une autre feuille. Je vous explique :

J'ai une feuille "stats" dans laquelle j'ai construit un tableau pour ressortir différentes données d'une autre feuille nommée "retraitement pour import" dans le même excel.

Dans ma feuille "retraitement pour import" :
- ma colonne C correspond à une ville, soit Lyon, Reims ou Aix
- ma colonne I correspond à la distance en km entre le lieu de domicile de mes contacts et leur lieu de travail
- ma colonne L est complétée s'ils prennent le TER
- ma colonne M est complétée s'ils prennent le métro
- ma colonne O est complétée s'ils prennent le bus

Je souhaite calculer le nombre de personnes qui utilisent ces 3 types de transports (avoir le nombre total des 3 colonnes réunies) s'ils habitent à Lyon et que la distance est comprise entre 50 et 100km

la formule que j'utilise est la suivante mais elle ne fonctionne pas :
=NB.SI.ENS('Retraitement pour import'!I:I;">=50"; 'Retraitement pour import'!I:I;"<=100";'Retraitement pour import'!C:C;"Lyon";'Retraitement pour import'!O:O;"<>0";'Retraitement pour import'!L:L;"<>0";'Retraitement pour import'!M:M;"<>0")
 

Je n'ai pas de message d'erreur mais la formule affiche toujours le résultat zéro.

Est-ce que vous pourriez m'aider s'il vous plaît ?
Merci par avance, bonne journée :)


Windows / Chrome 114.0.0.0

3 réponses

Résumé de la discussion

Le besoin est de compter les enregistrements où la ville est Lyon et la distance est comprise entre 50 et 100 km, et où au moins l’un des trois transports (bus, TER ou métro) est renseigné non nul. L’erreur provient d’une NB.SI.ENS appliquée simultanément sur plusieurs colonnes pour cumuler les trois transports, qui renvoie souvent zéro. Une solution fiable consiste à additionner les comptes pour chaque transport séparément, par exemple: =NB.SI.ENS(I:I,">=50",I:I,"<=100",C:C,"Lyon",O:O,"<>0") + NB.SI.ENS(I:I,">=50",I:I,"<=100",C:C,"Lyon",L:L,"<>0") + NB.SI.ENS(I:I,">=50",I:I,"<=100",C:C,"Lyon",M:M,"<>0"). Alternative, plus complexe, avec SUMPRODUCT: =SUMPRODUCT((I:I>=50)*(I:I<=100)*(C:C="Lyon")*((O:O<>0)+(L:L<>0)+(M:M<>0)>0)), en privilégiant des plages finies pour la performance.

Bobot (l’IA à votre service)
  1. pour que ta formule fonctionne, il faudrait prendre a la fois le bus, le metro et le rer  pour le meme voyage!


    Crdlmt

    1
    1. Merci, est-ce qu'il y aurait une formule appropriée pour que ça additionne les 3 sans qu'on prenne à la fois plusieurs moyens de transports ?
       

      0
    2. @ch_7368

      =sommeprod(('Retraitement pour import'!I:I>=50)*( 'Retraitement pour import'!I:I<=100)*('Retraitement pour import'!C:C="Lyon";)*(('Retraitement pour import'!O:O<>0)+'Retraitement pour import'!L:L<>0)+'Retraitement pour import'!M:M;<>0))).

      Il faut au moins un transport


      Crdlmt

      0
    3. @ch_7368

      Bonjour.

      .

      En C37, par exemple, il faut remplacer =NB.SI.ENS(RI!B:B;">=11"; RI!B:B;"<=20";RI!A:A;"Lyon";RI!D:D;"<>0";RI!E:E;"<>0";RI!G:G;"<>0") par

      =NB.SI.ENS(RI!B:B;">=11"; RI!B:B;"<=20";RI!A:A;"Lyon";RI!D:D;"<>0")

      +NB.SI.ENS(RI!B:B;">=11"; RI!B:B;"<=20";RI!A:A;"Lyon";RI!E:E;"<>0")

      +NB.SI.ENS(RI!B:B;">=11"; RI!B:B;"<=20";RI!A:A;"Lyon";RI!G:G;"<>0")

      .

      En G36 le total, tous moyens de transport confondus, est donné par la formule

      =NB.SI.ENS(RI!B:B;">=51"; RI!B:B;"<=99";RI!A:A;"Lyon")

      https://www.cjoint.com/c/MHebgBIa5eU

      0
    4. @Raymond PENTIER

      Super !! Je vous remercie beaucoup :) 

      1
    5. @DjiDji59430

      Merci beaucoup pour votre aide !

      0
  2. Hello,

    Avec un exemple de fichier posté sur Cjoint.com et en donnant ici le lien créé, on y verra plus clair

    0
    1. Bonjour.

      .

      "mais la formule affiche toujours le résultat zéro" : Ce n'est pas le logiciel qui se trompe !


       1) Aller dans https://www.cjoint.com/
       2) Cliquer sur [Parcourir] pour sélectionner le fichier (15 Mo maxi)
       3) Défiler vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
       4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; faire un clic-droit dessus et choisir "Copier le lien"
       5) Revenir dans la discussion sur CCM, et dans votre message faire "Coller".
      =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

      Il existe aussi https://www.transfernow.net/

      0
    2. Merci pour votre retour, voici le lien : https://www.cjoint.com/c/MHdqzjFe77q

      J'ai supprimé des colonnes pour des questions de confidentialité donc celles que j'ai énumérées dans mon message ne sont plus valides. J'espère que cela ne posera pas de problème pour vous

      0
  3. Hello,

    Dans ton exemple pour Lyon entre 50 et 100 km il n'y a personne qui prend le bus, donc ...

    0