Microsoft 365 Calcul valeurs identiques avec NB.SI incorrect; Solution VBA

chris6999

XLDnaute Impliqué
Bonjour

J'essaye de calculer le nombre d'occurrences pour une valeur colonne A à renseigner colonne K.
Ne sachant pas comment le faire en VBA j'ai utilisé l'enregistreur de macro avec la formule NB.SI mais les résultats sont erronés.

Ce n'est pas la première fois que je constate le manque de fiabilité de NB.SI.

Avez-vous une solution VBA pour obtenir un résultat cohérent?

Merci par avance
 

Pièces jointes

  • test NB SI.xlsx
    245.2 KB · Affichages: 17

djidji59430

XLDnaute Barbatruc

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Chris,

Le problème semble venir du fait que la colonne A est considéré comme des nombres lors de l'évaluation du NB.SI, mais qui sont au delà de la précision d' XL.
Donc il met sous forme scientifique avec 15 décimales, donc on "perd" les trois dernières décimales. .... D'où les égalités.
Le problème c'est qu'appliqué en VBA, c'est la même chose. On obtient le même résultat.

J'ai contourné le problème en convertissant la colonne A en chaine. En faisant précéder chaque nombre de "Ref=", et ça marche.
Ceci dit il doit exister d'autres solutions plus "esthétiques" mais j'ai pas trouvé.
 

Pièces jointes

  • test NB SI (1).xlsm
    254.9 KB · Affichages: 3

chris6999

XLDnaute Impliqué
Bonjour Chris,

Le problème semble venir du fait que la colonne A est considéré comme des nombres lors de l'évaluation du NB.SI, mais qui sont au delà de la précision d' XL.
Donc il met sous forme scientifique avec 15 décimales, donc on "perd" les trois dernières décimales. .... D'où les égalités.
Le problème c'est qu'appliqué en VBA, c'est la même chose. On obtient le même résultat.

J'ai contourné le problème en convertissant la colonne A en chaine. En faisant précéder chaque nombre de "Ref=", et ça marche.
Ceci dit il doit exister d'autres solutions plus "esthétiques" mais j'ai pas trouvé.
Merci beaucoup pour cette réponse qui confirme mes doutes.
Malheureusement je ne peux pas modifier les données de la colonne A il faut juste que je trouve un moyen de modifier dans ma fonction la partie de la chaîne que j'ai besoin de traiter.
Je vais creuser
Encore merci
 

chris6999

XLDnaute Impliqué
Bonjour,

Dans le fichier joint, une solution par SommeProd avec mfc pour contrôle, une par PowerQuery et une par TCD

Cordialement
Merci pour cette proposition Sommeprod que j'avais déjà prévu dans mon code et que je voulais éviter car trop lourde à l'exécution sur un grand nb de lignes.
La solution du TCD ne peut s'adapter à mon projet.
Je te remercie néanmoins du temps que tu as accordé à ma demande.
Bonne journée
 

chris6999

XLDnaute Impliqué

chris6999

XLDnaute Impliqué
Bonjour à tous,

Va voir la :

apparemment, nb.si transforme ta ref en nombre de 15 chiffres et toi tu en a 18 et remplace les 3 par des zeros

Crdlmt
Super merci. J'ajoute cette page à ma base de données Excel. très intéressant
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 841
dernier inscrit
ferid87