Calcul du nombre de référence selon 2 critères

Résolu/Fermé
SG-1_Charpy Messages postés 10 Date d'inscription mercredi 30 mars 2022 Statut Membre Dernière intervention 29 juin 2022 - Modifié le 7 juin 2022 à 11:16
Le Pingou Messages postés 12137 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 27 août 2024 - 9 juin 2022 à 18:06
]Bonjour, je reviens vers vous pour améliorer la formule que j'ai appliquer sur ce post il y a quelques temps:

https://forums.commentcamarche.net/forum/affich-37560842-aide-avec-nb-si
Je me suis rendu compte que la formule comptait aussi des doublons (par rapport à un critère)

[https://img-19.ccm2.net/WF6DYx2lUd_hAfUcJz9RiL-pCP0=/d94df86cad9d45f888d12be8deeeb59b/tmp/Capture.PNG
|
Dans mon exemple il y 4 occurrences de DMP1 trouvé avec la formule du 1er post =NB.SI(K:K;"DMP1*"). Par contre il y 2 fois une occurrence avec la même largeur! Ce que voudrais c'est prendre en compte le critère DMP1(colonne K) et le critère de la largeur différente (colonne G) pour avoir le résultat de 3 DMP1 de largeur différentes.
Pour information il s'agit de pièces identiques mais de largeur différentes à usiner sur une commande numérique (même programme mais variable en largeur)





Configuration: Configuration: Windows / Firefox 101.0
A voir également:

8 réponses

DjiDji59430 Messages postés 4107 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 10 septembre 2024 667
7 juin 2022 à 12:50
Bonjour à tous,
En 365
Avec un tableau non fourni en A2:C15, ni la version d'excel non plus,

=NBVAL(UNIQUE(FILTRE(A2:A15;SIERREUR(CHERCHE("dmp1*";C2:C15);0)>0)))

Crdlmt
1
Le Pingou Messages postés 12137 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 27 août 2024 1 446
7 juin 2022 à 12:23
Bonjour,
Je vous propose d'utiliser une fonction personnalisée [=NbRefSansDoublons()] que vous mettez dans une cellule de votre choix et le code suivant dans un module :
Function NbRefSansDoublons()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("K1", [K65000].End(xlUp))
    If Left(c, 4) = "DMP1" Then
        n = c.Offset(0, -2) & Value2 + Left(c, 4)
        mondico(n) = ""
    End If
Next c
NbRefSansDoublons = mondico.Count
End Function


0
SG-1_Charpy Messages postés 10 Date d'inscription mercredi 30 mars 2022 Statut Membre Dernière intervention 29 juin 2022
Modifié le 7 juin 2022 à 13:41
Bonjour, merci pour vos réponse rapide !
Pour Le Pingou : Je ne préfère pas utiliser une macro pour avoir ce résultat. Cela m'obligerait à lancer la macro pour chaque fichier. Mais merci pour l'astuce je la garde pour un autre travail !
Pour DjiDji59430: Je ne comprends pas pourquoi vous avez besoin des colonnes A et C. Les informations utiles sont dans les colonnes G et K. Quoi qu'il en soit je vous propose le tableau un peu plus complet et pour la version de excel c'est la version 2010.

Ce que je voudrais c'est le nombre de pièces portant le même code programme (colonne K) et ayant une largeur (colonne D ou G) différente. Sans cela j'obtiens 4 pièces DMP1 à faire, alors qu'il en a 2 parmi les 4 qui sont identiques (même largeur). Donc normalement le résultat devrait être de 3 pièces DMP1 à faire !
0
Le Pingou Messages postés 12137 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 27 août 2024 1 446
Modifié le 7 juin 2022 à 15:03
Bonjour,
Pour info c'est une macro-fonction personnalisée donc elle fonctionne comme une fonction Excel pas besoin de la lancer.
Note la proposition de DjiDji59430 est très bien, toutefois ce n’est pas certain que cela fonctionne avec Version 2010 !
Concernant sa formule il suffit de l'adapter selon la structure de votre plage de données:
=NBVAL(UNIQUE(FILTRE(G10:G27;SIERREUR(CHERCHE("dmp1*";K10:K27);0)>0)))


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SG-1_Charpy Messages postés 10 Date d'inscription mercredi 30 mars 2022 Statut Membre Dernière intervention 29 juin 2022
9 juin 2022 à 11:12
Salut, je reviens vers vous, la formule adapté pour mon tableau, de "Le Pingou", me renvoi le résultat de 1 au lieu de 3.
Peut-être elle n'est pas compatible avec ma version .
0
Le Pingou Messages postés 12137 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 27 août 2024 1 446
Modifié le 9 juin 2022 à 14:16
Bonjour,
Si je reviens vers vous s'adresse à moi alors je vous prie de bien contrôler si la fonction [UNIQUE] est bien compatible avec votre version Excel 2010...!
Voir ici : https://support.microsoft.com/fr-fr/office/fonction-unique-c5ab87fd-30a3-4ce9-9d1a-40204fb85e1e

Si c'est bien le cas, je pense qu'il faut passer par ma proposition!

0
SG-1_Charpy Messages postés 10 Date d'inscription mercredi 30 mars 2022 Statut Membre Dernière intervention 29 juin 2022
9 juin 2022 à 15:49
Oups, oui c'était à vous que je m'adressait. Le soucis c'est que actuellement je n'ai plus accès a l'ordinateur avec office 2010. Je suis sur ordinateur avec la suite libreoffice et votre fonction personnalisée ne fonctionne pas dessus. Libreoffice utilise le Basic pour les fonctions personnalisés (macro) et Excel utilise le VBA. Comme je ne suis pas sur le bon forum je ne peux m’étendre sur le sujet ici. Merci quand même.
0
Le Pingou Messages postés 12137 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 27 août 2024 1 446
9 juin 2022 à 18:06
Bonjour,
Merci et bonne suite.
0