Nombre d'occurence unique sur plage avec selection

Bonjour à tous,

Je viens de perdre ma journée sur ce problème sans succès et si quelqu'un pouvait m'aider cela m'aiderait grandement

J'ai un ensemble de colonne de A => J

Je souhaite filtrer ma colonne G sur un critère (nom+chiffre) de même que ma colonne J sur le status "pending".

En colonne A, j'ai une liste de nom d'ordinateurs (ABCDE-1234567) avec de multiple doublons.

J'aimerai, grâce à une formule, avoir le nombre d'ordinateur unique basé sur une sélection des colonnes G et J.

J'ai essaye Somme(si , somme(si(frequence, NB.si et d'autres sans succès, je dois surement faire une erreur quelque part.

Merci d'avance pour votre aide

Bonsoir yatzou et bienvenue

Sans fichier, difficile de répondre à ta question ... mais un Tableau Croisé Dynamique devrait faire le boulot, il me semble?

Merci

Oui en effet ca pourrait faire l'affaire cependant mon but est ensuite de reporter cette valeur dans un autre tableau de synthèse en jouant sur une trentaine de variables en colonne G d’où ma préférence vers une formule.

En PJ un modele qui sera en effet certainement plus parlant.

L'option de supprimer les doublons n'est pas possible car les valeurs dans les autres colonnes sont différentes.

21exemple-yatzou.xlsx (10.38 Ko)

Bonsoir,

Les fonctions tenant compte du filtrage sont SOUS.TOTAL et AGREGAT, qui ne comportent pas de fonctions SOMMEPROD et NB.SI habituellement utilisées pour le calcul que tu souhaites...

Je proposerai donc une fonction personnalisée...

Function NBUNICFILTRE(plg As Range)
    Dim d As Object, c As Range
    Application.Volatile
    Set d = CreateObject("Scripting.Dictionary")
    For Each c In plg
        If c.Rows.Hidden = False Then d(c.Value) = ""
    Next c
    NBUNICFILTRE = d.Count
End Function

Voir utilisation dans le classeur.

Cordialement.

Bonjour,

Ca fonctionne tres bien merci, cependant je vois que le resultat est dynamique en fonction du filtre qui est positionné.

De mon coté j'ai besoin que ces valeurs soient reportées dans un autre onglets "Resultat" sans avoir besoin de filtrer manuellement.

Vu que j'ai un niveau proche de zero en macro, je n'arrive pas à l'adapter.

Je veux bien un coup de main supplementaire.

J'ai mis à jour le fichier de facon plus lisible avec la creation d'un onglet resultat.

Pour mettre les résultats dans un tableau, plus besoin de filtre...

Fonction réaménagée pour calculer toutes les options :

Function NBUNICMARKSTT(plg As Range, Optional plMark As Range, Optional mark As String, _
 Optional plStt As Range, Optional stt As String)
    Dim d As Object, op%, i%
    Application.Volatile
    Set d = CreateObject("Scripting.Dictionary")
    If mark <> "" And Not plMark Is Nothing Then op = 1
    If stt <> "" And Not plStt Is Nothing Then op = op + 2
    With plg
        For i = 1 To .Cells.Count
            Select Case op
                Case 0
                    d(.Cells(i).Value) = ""
                Case 1
                    If plMark.Cells(i) = mark Then d(.Cells(i).Value) = ""
                Case 2
                    If plStt.Cells(i) = stt Then d(.Cells(i).Value) = ""
                Case 3
                    If plMark.Cells(i) = mark And plStt.Cells(i) = stt Then _
                     d(.Cells(i).Value) = ""
            End Select
        Next i
    End With
    NBUNICMARKSTT = d.Count
End Function

Voir dans ton tableau de résultats, l'utilisation selon options retenues. Pour chaque zone colorée, la formule de la cellule supérieure gauche de la zone colorée est recopiable sur toute la zone de même couleur...

Cordialement.

NB- pour la cellule jaune, le même résultat aurait été obtenu avec la formule classique :

=SOMMEPROD(1/NB.SI(Feuil1!$A$3:$A$39;Feuil1!$A$3:$A$39))

C'est exactement ce dont j'avais besoin. Merci beaucoup pour votre aide et votre retour rapide

A moi maintenant de creuser pour tout saisir

Rechercher des sujets similaires à "nombre occurence unique plage selection"