Fréquence, conditions et liste d'exclusion

Hello there,

Petite reflexion dominicale :

Comment obtenir une fréquence sur une liste 1 avec une condition respectée d'une liste 2 (jusque là j'y arrive) mais en excluant certaines valeurs de la fréquence sur la liste 1 ?

Pas clair ? Je sais c'est pourquoi j'ai joint un exemple en pièce jointe.

A savoir qu'il n'y aura pas de cellules vides entre les lignes et que toutes les valeurs sont des valeurs texte !

A gauche : Liste 1 et 2

En jaune : Liste d'exclusion des objets de la liste 1 à ne pas prendre en compte dans les calculs

En blanc : Les fréquences que je veux obtenir.

Je ne sais même pas si c'est techniquement possible je n'ai rien trouvé de tel. J'étais parti sur une formule du style

SOMMEPROD(SI(NB.SI(Liste_1;Exclusion)=0;SI(Liste_2="*AA*";1/NB.SI(Liste_1;Liste_1)))

Mais sans succès ..

Merci par avance !

13frequence.xlsx (9.04 Ko)

Bonjour

Tu devrais donner un exemple du résultat souhaité....

Bye !

Hello,

Voilà j'ai mis les résultats attendus et la manip que j'ai fait pour obtenir le résultat en commentaire.

A savoir que j'ai peut être mésusé le mot "Fréquence", j'aurai plutôt dû parler "d'occurence unique" désolé

19frequence-v2.xlsx (10.98 Ko)

Bonjour,

Avec une fonction perso en VBA :

Function FREQUENCEPERSO(PlgRecherche As Range, PlgExclure As Range, PlgDecaler As Long, Critere As String) As Long

    Dim Cel1 As Range
    Dim Cel2 As Range
    Dim Dico As Object

    Set Dico = CreateObject("Scripting.Dictionary")

    For Each Cel1 In PlgRecherche

        Set Cel2 = PlgExclure.Find(Cel1.Value, , xlValues, xlWhole)

        If Cel2 Is Nothing Then

            If Critere <> "" Then
                If Cel1.Offset(, PlgDecaler).Value = Critere Then Dico(Cel1.Value) = Cel1.Value
            Else
                Dico(Cel1.Value) = Cel1.Value
            End If

        End If

    Next Cel1

    FREQUENCEPERSO = Dico.Count

End Function

utilisable de cette façon dans Excel :

Pour "Fréquence dans liste 1"

=FREQUENCEPERSO(Liste_1;Exclusion;1;"")

Pour "Fréquence dans liste 1 avec AA dans liste 2"

=FREQUENCEPERSO(Liste_1;Exclusion;1;"AA")

Note, "PlgDecaler" indique l'offset pour la liste 2 (Critere)

Bonjour à tous,

Deux petites formules matricielles ...

27frequence-v2.xlsx (9.23 Ko)

Merci à vous deux pour vos solutions chacune fonctionne !

Pourquoi n'ai-je pas pensé au (SI(ERREUR()) au lieu de me concentrer sur le NB.SI qui, je le sais, ne fonctionne pas en matricielle

Passez une bonne fin de WE !

Content que les matricielles fonctionnent ...

Merci .... pour tes remerciements ...

Bonjour à tous

Une variante macro, pour le fun.

Bye !

13frequence-v3.xlsm (24.82 Ko)
Rechercher des sujets similaires à "frequence conditions liste exclusion"