Opérateurs de comparaison faisant référence à des cellules avec NB.SI.ENS

Bonjour à tous,

Je dispose d'une base de données Excel comprenant :

  • un champ "Sexe" (renseigné par "H" ou "F")
  • un champ "Date de naissance" (XXXX)
  • un champ "Age" (déduit du champ "Date de naissance") (XX)

Je cherche à faire des sous-totaux (effectif par classes d'âge) en vue de réaliser une pyramide des âges.

Pour cela j'ai tenté de le faire via une formule nb.si.ens contenant 3 paramètres de dénombrement (le sexe, l'âge mini ou la date de naissance maxi, l'âge maxi ou la date de naissance mini), sous cette forme :

B2=NB.SI.ENS(PlageSexe;"H";PlageAge;">=AgeMin";PlageAge;"<=AgeMax")

où AgeMin et AgeMax font référence à la cellule de classes d'âge (ex de contenu : 35-39)

ce qui donne :

AgeMin : >=gauche(A2;2)

AgeMax : <=droite(A2;2)

Sauf que ça ne marche pas car je mets autre chose qu'un nombre derrière mon opérateur de comparaison (>=, >, <= ou <) pour les âges (je fais référence à des cellules et c'est rédhibitoire).

Je peux certes résoudre le problème en rentrant directement les âges en question dans chaque formule. Voici un exemple pour les hommes de la classe d'âge 35-39 ans :

B2=NB.SI.ENS(PlageSexe;"H";PlageAge;">=35";PlageAge;"<=39")

Mais je préférerais automatiser au maximum pour limiter les erreurs de saisie, et donc ne pas avoir saisir les âges dans chaque formule.

Dans ce cas, auriez-vous des idées de rectificatif de ma formule afin qu'elle puisse fonctionner. Ou peut-être une approche VBA pour que je puisse arriver à mes fins ?

En vous remerciant d'avance de vos conseils.

Bien cordialement,

Bonjour,

Un fichier serait bienvenu ! Une piste à tester :

=NB.SI.ENS(PlageSexe;"H";PlageAge;">="&GAUCHE(A2;2);PlageAge;"<="&DROITE(A2;2))

Merci beaucoup, c'est tout à fait ça !

Il faut donc si on veut utiliser une comparaison avec un nombre situé dans une cellule :

  • mettre l'opérateur de comparaison entre guillemets
  • puis concaténer le nom de la cellule ou la formule y faisant référence avec une esperluette (&)

D'où, de manière simplifiée :

NB.SI.ENS(PlageAge;">="&CelluleAgeMin)

ou

NB.SI.ENS(PlageAge;">="&FormuleCelluleAgeMin)

Je suis loin de maîtriser toutes les subtilités de la syntaxe sous Excel en VBA, mais manip par manip, on progresse !

Problème résolu !

Merci beaucoup et à bientôt !

Tu as tout compris !

Rechercher des sujets similaires à "operateurs comparaison faisant reference ens"