Compter le nombre de valeurs uniques avec conditions

Bonjour,

Je sais que le sujet à déjà été abordé mais ne comprenant pas les formules utilisées, je n'arrive pas à les appliquer à mon fichier.

Voilà mon problème : je souhaite compter le nombre de formations différentes (ce que j'ai réussi à faire) qui ont été proposées pour chaque mois (la condition à rajouter).

Aussi, le nombre de formation va augmenter au cours de l'année, la formule devra donc contenir des vides pour faire évoluer le fichier.

Ci-joint une partie du fichier en question.

Merci d'avance.

https://www.cjoint.com/c/GHki1tQW3jo

Bonjour,

comme ceci

P.

ps: il est préférable de déposer ton fichier ci dessous

106julie1234-xlp.xlsx (13.97 Ko)

Bonjour,

Tiens essaye ça.

Attenttion si tu peux avoir 0 en formations il faudra AJOUTER un SOMME.SI

Est-ce le cas?

A+

JB

100test.xlsx (10.71 Ko)

Mince, je n'ai pas été assez claire.

Ce dont j'ai besoin ce n'est pas le nombre de formation de chaque type. C'est le nombre le formation unique par mois.

Exemple : en janvier il n'y a eu qu'une seule formation : Nuage de point. La valeur à renvoyer est donc 1. En février on a Odoo et nuage de point donc la valeur à renvoyer en février est 2.

Bonjour,

Un exemple à étudier.

Cdlt.

131julie1234-xlp.xlsx (20.83 Ko)

Merci Jean-Eric, les résultats sont les bons, mais le problème c'est que le vrai fichier est bien plus grand que ça et, ce que je cherche, le nombre de formation différente par mois, n'est qu'une donnée parmi une dizaine

Donc le problème du TCD et des colonnes intermédiaire est que ça charge un fichier déjà volumineux

Idéalement, je recherche des formules qui pourraient fonctionner sur une seule cellule. Donc dans mon exemple, le top serait juste d'avoir une formule par cellule, de D2 à O2 (à l'image de la formule en P2).

Bonjour à toutes et tous,

Une autre proposition dans le fichier joint.

Cordialement.

129julie1234-v1.xlsx (14.67 Ko)

Oups....

pas bien lu la question

Comme ceci alors

P.


Julie1234 a écrit :

Merci Jean-Eric, les résultats sont les bons, mais le problème c'est que le vrai fichier est bien plus grand que ça et, ce que je cherche, le nombre de formation différente par mois, n'est qu'une donnée parmi une dizaine

Donc le problème du TCD et des colonnes intermédiaire est que ça charge un fichier déjà volumineux

Idéalement, je recherche des formules qui pourraient fonctionner sur une seule cellule. Donc dans mon exemple, le top serait juste d'avoir une formule par cellule, de D2 à O2 (à l'image de la formule en P2).

Donne alors un exemple (30-40 lignes) plus proche de la réalité une copie anonymisée

95julie1234-xlp.xlsx (14.48 Ko)

Patrick, le fichier joint est suffisant pour répondre à la question mais la difficulté est d'essayer d'y répondre en n'utilisant que les cellules de D2 à O2 donc sans calculs intermédiaire. C'est pour cela que le TCD ne sembble pas approprié, surtout qu'il n'est pas dynamique si je rajoute de nouvelles formations.

Je sais que c'est compliqué, mais j'avais réussi à calculer le nombre de formations différentes en une seule fois, dans la cellule P2. Mais ce que je n'ai pas réussi à faire c'est ajouter la conditions des mois.

Re Julie1234,

As-tu au moins regardée ma proposition ?

Julie1234 a écrit :

Patrick, le fichier joint est suffisant pour répondre à la question mais la difficulté est d'essayer d'y répondre en n'utilisant que les cellules de D2 à O2 donc sans calculs intermédiaire. C'est pour cela que le TCD ne sembble pas approprié, surtout qu'il n'est pas dynamique si je rajoute de nouvelles formations.

Je sais que c'est compliqué, mais j'avais réussi à calculer le nombre de formations différentes en une seule fois, dans la cellule P2. Mais ce que je n'ai pas réussi à faire c'est ajouter la conditions des mois.

Un TCD peut être dynamique via une instruction VBA

Exact Mdo100, je suis passé un peu vite sur ta proposition pourtant elle est très intéressante.

Est-ce que tu as une idée pour transformer ton fichier et ne conserver que la partie en fluo et donc réussir à se passer de ce que j'ai grisé ?

Evidemment sans passer par un simple masquer ! Mais donc avoir des formules uniquement sur la partie jaune, sans aucun autre ajout de données ailleurs sur le document.

24julie1234-v1-1.xlsx (14.12 Ko)

bonjour

un essai (en dur)

plus de tablo intermediaire ; la fonction est matricielle

36julie1234-2.xlsx (10.74 Ko)

cordialement

Bonjour,

Pour le fun et faire rager l'ancêtre tridactyle.

Non pas 1 TCD mais 2 TCDs, et un soupçon de VBA.

Cdlt.

16julie1234-xlp.xlsm (27.61 Ko)

Bonsoir Julie1234, le forum

Vois ceci Julie

Option Explicit
Sub test()
Dim a, i As Long, e, pos, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    With Sheets("Exemple")
        a = .Range("a5").CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            If Not dico.exists(MonthName(a(i, 2))) Then
                Set dico(MonthName(a(i, 2))) = _
                CreateObject("Scripting.Dictionary")
                dico(MonthName(a(i, 2))).CompareMode = 1
            End If
            dico(MonthName(a(i, 2)))(a(i, 1)) = Empty
        Next
        .Rows(2).ClearContents
        For Each e In dico.keys
            pos = Application.Match(e, .Rows(1), 0)
            If Not IsError(pos) Then
                .Cells(2, pos) = dico(e).Count
            End If
        Next
    End With
    Set dico = Nothing
End Sub

klin89

salut Jean Eric

et pourquoi pas l'ordinateur de la NASA ; non mais,,,des fois

cordialement

Re Julie1234

ou ceci :

Option Explicit
Sub test()
Dim a, i As Long, dico As Object, r As Range, rng As Range
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    With Sheets("Exemple")
        a = .Range("a5").CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            If Not dico.exists(MonthName(a(i, 2))) Then
                Set dico(MonthName(a(i, 2))) = _
                CreateObject("Scripting.Dictionary")
                dico(MonthName(a(i, 2))).CompareMode = 1
            End If
            dico(MonthName(a(i, 2)))(a(i, 1)) = Empty
        Next
        Set rng = .Range(.Cells(1, 4), .Cells(1, 4).End(xlToRight))
        rng.Offset(1).Resize(, rng.Columns.Count - 1).ClearContents
        For Each r In rng
            If dico.exists(r.Value) Then
                r(2).Value = dico(r.Value).Count
            End If
        Next
    End With
    Set dico = Nothing
End Sub

klin89

Hello à tous,

@Klin89

Si un mois n'existe pas dans la colonne de gauche, j'ai testé tu penses bien, il faudrait néanmoins que les colonnes soient au nombre de 12 ... ça serait mieux je pense Enfin , c'est peut être une question qui arrivera

Pas trouvé comment faire encore

P.

Rechercher des sujets similaires à "compter nombre valeurs uniques conditions"