Compter combien de fois on a une meme valeur

Signaler
Messages postés
110
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
21 octobre 2008
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour je voudrai savoir comment faire pour compter combien de fois j'ai la valeur 888 dans la colonne K et savoir à quel numéro de ligne il se trouve.

Si qq'un peut m'aider, merci!!!

4 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,


Essaie cette petite fonction.
NOTE: Peu etre que excel est capable de le faire tout seul mais j'ai pas trouver comment








Private Function FindString(ByVal StrWhat As String, ByRef TabLignes() As Long) As Boolean 
Dim LaCase As Range 
    'Activation de la feuille
    Worksheets(4).Activate 
    'Redimensionnement du tableau de ligne
    ReDim TabLignes(0) 
    'Selectionne la Colonne K
    ActiveSheet.Columns("K:K").Select 
    'Pour chaque cellule
    For Each LaCase In Selection 
        'Teste le la valeur de la cellule avec la veleur chercher
        If Trim(LaCase.Text) =  StrWhat Then 
            'On memorise le fait d'avoir trouve
            FindString = True 
            'On ajoute une ligne au tableau
            ReDim Preserve TabLignes( UBound (TabLignes) + 1) 
            'Et on stoke la ligne de la cellule courante
            TabLignes(UBound(TabLignes))  = LaCase.Row 
        End If 
    Next 
End Function 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       





Ensuite tu l'appelle de la facon suivante.




Dim TabLignes() As Long 
If FindString("888", TabLignes) Then 
    'Ubound(Tablignes) te renvoie le nombre de fois
    'ou la valeur a et trouve
    'De Tabligne(1) a Tabligne(Ubound(Tablignes))
    ' te renvoie les nuemeros des lignes
End If 
 







<small> Coloration syntaxique automatique [AFCK]</small>

J espere que ca t'aide       













@+, Julien
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
Bouh jrivet, bouuuuuuuh

POur la première partie, à savoir, compter combien de fois on trouve 888 dans la colonne K, effectivement, Excel le fait tout seul : il suffit de mettre dans une cellule la formule suivante : =NB.SI(K:K;888).

Magique ^^

Par contre, la 2ème partie, c'est plus dur.
Je vais chercher.
En Excel pur, juste avec une formule, on doit pouvoir ressortir le n° de la ligne où un chiffre cherché se trouve, mais s'il y a plusieurs fois le même chiffre, plus dur.
Par contre, quand je te lis tortuegénie, j'ai un petit doute : "combien de fois j'ai la valeur 888 dans la colonne K et savoir à quel numéro de ligne il se trouve."
Tu veux tous les num de ligne de chaque occurrence de ton 888 ? Ou juste le premier numéro ? ou encore tu sais qu'il y en aura qu'une seule occurrence ?

Dans les 2 derniers cas, je ne doute pas de trouver la solution juste avec des formules. Dans le 1er, ca va être dur.

Molenn
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
Alors, attention les yeux, j'ai la solution purement EXCEL.

D'abord, je vous donne la formule de ma première piste : Je n'ai pas gardé cette solution, mais elle est tellement belle que je me dois de vous la donner ^^

Tes chiffres sont dans la colonne K.
Dans la colonne L par exemple, sur mets cette formule (ici, dans la cellule L3) :
SI(ESTERREUR(DROITE(SI(K32;CELLULE("adresse";K3);"");(NBCAR(SI(K3=2;CELLULE("adresse";K3);""))-SI(ESTERREUR(CHERCHE("$";SI(K3=2;CELLULE("adresse";K3);"");2))=VRAI;"";CHERCHE("$";SI(K3=2;CELLULE("adresse";K3);"");2)))))=VRAI;"";DROITE(SI(K3=2;CELLULE("adresse";K3);"");(NBCAR(SI(K3=2;CELLULE("adresse";K3);""))-SI(ESTERREUR(CHERCHE("$";SI(K3=2;CELLULE("adresse";K3);"");2))=VRAI;"";CHERCHE("$";SI(K3=2;CELLULE("adresse";K3);"");2)))))
En face de chaque donnée correspondant à ton critère (moi, je cherchais le nb 2 dans ma colonne K), le numéro de ligne s'incrit.
Pb, impossible de concaténer pour enlever les espaces, autre qu'un filtre automatique, ce qui n'est pas intéressant dans une optique de simplification. Et sans contraction des infos, ça n'a aucun intérêt, autant interpréter l'adresse de la cellule.

Donc, j'attaque ma solution :
La colonne K contient donc une suite de chiffres dans laquelle tu cherches la valeur 888.

Dans une cellule (moi j'ai pris G5), tu colles la formule "=EQUIV(888;K:K;0)"
Qu'est ce que fait cette formule ? Elle cherche dans la colonne K, qui est une matrice, la position du premier 888 rencontré. Comme notre matrice n'a qu'une colonne, et que l'on prend la colonne entière, la position qui ressort est égale au numéro de ligne de la première occurence.
On en arrive donc à l'astuce :
Comment déterminer la position de la 2ème occurence ? La réponse est simple, il faut prendre pour matrice les éléments de la colonne amputés de tout ce qui se trouve avant la première ocurrence, incluse. C'est à dire que la matrice ira de la ligne trouvée en G5 + 1 jusqu'à la fin de la colonne. Et pour avoir le numéro de ligne, on ajoute, le numéro trouvé précédemment.
Ce qui nous donne la formule suivante :
=G5+EQUIV(888;INDIRECT(ADRESSE(G5+1;11) & ":" & ADRESSE(65536;11));0)

En français : Numéro de ligne trouvé précédemment + la position dans la matrice du premier élément 888 rencontré, dans une matrice allant de Numéro ligne + 1, colonne K (K est la 11ème colonne) jusqu'à la ligne 65536 de la colonne K.
Dans notre 2eme cellule, on a donc le numéro de ligne de la 2eme occurence.

Plus qu'à copier la formule sur les cellules en dessous (le même nb de fois que le nb d'occurence trouvé avec la formule de mon premier post, ou alors, jusqu'à ce que tu vois apparaitre #N/A.)
La formule est faite de manière à ce qu'il te suffise de copier la formule le nb d'occurence, rien à modifier dans la formule.

Les numéros de ligne sont donc visibles facilement, et en plus, ça se met à jour dynamiquement. Tu rajoutes ou enlèves un 888 dans la colonne K et tes numéros s'affichent dans l'ordre aussitôt.

Alors, on dit merci qui ? ^^

Molenn.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Sacré Molenn et son Excel.
Tu ne m'as toujours pas envoyé ton invitation pour ta Communauté Excel !!

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"