formule sur la frequence d'apparition Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
l
lecoach8
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 août 2015
Version d'Excel : 2013 Fr

Message par lecoach8 » 14 août 2015, 10:27

Bonjour,

A partir d'une serie de chiffre de depart (l'ordre des chiffres est a respecter), je souhaiterais trouver une formule perrmettant de classer par ordre croissant d'autres liste de chiffres plus ou moins similaires a celle du depart.
Ex : 11122333 = liste de depart dans une meme cellule.
Nous cherchons une formule qui permettrait de classer toutes les autres cellules selectionnnees par ordre croissant d'apparition des chiffres de la liste de depart.
Ex: 11122333; 11102333 (meme formule que celle de depart avec une difference); 11122003 (meme formule que celle de depart mais avec 2 differences) ...et ce jusqu'à ce que la grille de depart n'est plus aucune similitude avec les cellules comparees.

Dans l'attente de votre aide veuillez accepter mes sinceres remerciements.

cordialement'
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 14 août 2015, 11:11

Bonjour,

merci de joindre un fichier exemple
l
lecoach8
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 août 2015
Version d'Excel : 2013 Fr

Message par lecoach8 » 14 août 2015, 12:04

La colonne A reprend les éléments de chacune des lignes (A1 = B3,C3, D3...). J'ai chercher à simplifier les colonnes.
Pour compléter mon exemple si on prend la première ligne : 221211N12121N2 => je souhaiterais trouver dans un ordre croissant toutes les similitudes jusqu'à 1 prêt parmi toutes les autres ligne de la colonne A. Si possible sans prendre en compte les cellules qui n'ont aucune similitude avec la ligne choisie.

dans l'attente de votre réponse,

Cordialement,
Classement 2 envoye.xlsx
Voici le tableau excel que j'ai réalisé.
(73.92 Kio) Téléchargé 11 fois
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 14 août 2015, 15:55

Bonjour,

proposition via une macro, qui met les solutions dans la feuille "feuil1", mais qui ne trouve aucune similitude à 1 près pour l'exemple que tu as donné. (à tester donc)
Sub test()
    Dim sol(387, 2)
    Set ws = Sheets("classement")
    t = ws.Range("B1:P387")
    nsol = 0
    For n = 1 To 387
        If t(n, 1) <> 0 Then
            n = Val(n)
            c = 0

            Erase sol
            For k = n + 1 To 387
                If k <> n Then
                    j = 1
                    i = 1
                    d = 0
                    Do While i <= 15 And j <= 15
                        If t(k, i) = t(n, j) Then
                            i = i + 1
                            j = j + 1
                        Else
                            d = d + 1
                            If d > 1 Then Exit Do
                            i = i + 1
                        End If
                    Loop
                    If d > 1 Then
                        d = 0
                        For i = 1 To 15
                            If t(k, i) <> t(n, i) Then d = d + 1: If d > 1 Then Exit For
                        Next i
                    End If
                    If d = 1 Then
                        c = c + 1
                        sol(c, 1) = ws.Cells(k, 1)
                        sol(c, 2) = k
                    End If
                End If
            Next k
            If c <> 0 Then
                With Sheets("feuil1")
                    .Cells(nsol + 1, 1) = ws.Cells(n, 1)
                    .Cells(nsol + 1, 2) = n
                    For i = 1 To c
                        .Cells(nsol + i, 3) = sol(i, 1)
                        .Cells(nsol + i, 4) = sol(i, 2)
                    Next i
                    .Range("C" & nsol + 1 & ":D" & nsol + c).Sort key1:=.Range("C" & nsol + 1), order1:=xlAscending, Header:=xlNo
                    nsol = nsol + c
                End With
            End If
        End If
    Next n
End Sub
l
lecoach8
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 août 2015
Version d'Excel : 2013 Fr

Message par lecoach8 » 14 août 2015, 16:17

Merci pour vos recherches, mais comment dois je utiliser les infos que vous m'avez donné ?

Cordialement,
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 14 août 2015, 16:33

Bonjour,

j'ai mis la macro dans le classeur ci-joint,

lancer la macro "test" par alt-f8 et ensuite aller sur feuil1 pour voir le résultat
Classement 2 envoye.xlsm
(66.69 Kio) Téléchargé 20 fois
l
lecoach8
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 août 2015
Version d'Excel : 2013 Fr

Message par lecoach8 » 14 août 2015, 16:56

allez je regarde cela et vous tiens informé.
Par contre je n'ai pas votre version d'excel, je vais voir comment faire autrement.

Merci pour vos informations,

Cordialement,
l
lecoach8
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 août 2015
Version d'Excel : 2013 Fr

Message par lecoach8 » 15 août 2015, 00:57

Bonsoir,

Apres plusieurs essais la feuille 1 reste vierge. Aucun résultat n’apparaît.
Peut être est ce moi qui utilise mal les données ?

Pour plus d'informations,

Cordialement,
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 15 août 2015, 10:39

lecoach8 a écrit :Bonsoir,

Apres plusieurs essais la feuille 1 reste vierge. Aucun résultat n’apparaît.
Peut être est ce moi qui utilise mal les données ?

Pour plus d'informations,

Cordialement,
bonjour,

tu devrais au moins recevoir le message "pas de similitude trouvée", Si tel n'est pas le cas alors voici les conditions pour que la macro fonctionne.

1) il faut autoriser les macros (tu reçois peut-être un message d'avertissement au moment du chargement du classeur que j'ai mis en pj)
2) il faut une feuille "classement" telle que tu l'as mise dans le fichier exemple
3) il faut une feuille qui s'appele "feuil1"
4) il faut lancer la macro "test" (touche alt et touche F8)
5) avec ton fichier de test, tu devrais recevoir "pas de similitude trouvée"

la macro recherche les similitudes à 1 près, soit une et une seule valeur de différence, soit une et une seule insertion.

je te mets en pièce jointe un fichier dans lequel j'ai modifié les données pour avoir des similitudes à 1 près.
Classement 2 envoye (1).xlsm
(66.8 Kio) Téléchargé 13 fois
l
lecoach8
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 août 2015
Version d'Excel : 2013 Fr

Message par lecoach8 » 15 août 2015, 11:50

Merci beaucoup, je regarde cela au plus vite. Mais en effet dans la feuille 1 il y avait marqué : pas de similitude trouvée. Hors il en existe. Du coup est ce que je dois sélectionner quelque part une des séries pour laquelle je veux avoir les similitudes ou simplement j'applique la formule ?


Merci encore,
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message