Rechercher une séquence dans un tableau excel

bouclesdor

XLDnaute Occasionnel
Bonjour à tous,

C,est la première fois que je fais appel à vous mais je vous lis très souvent et je trouve bien des réponses ici mais cette fois j'ai besoin de votre aide.

J'ai un tableau excel (2007) dans lequel j'ai des séquences (des valeurs 1, 2 ou 12) et j'aimerais trouvé un option qui me permettrait de faire une recherche et trouver des séquences et savoir combien de fois la séquence revient et à quel endroit. Exemple: si je veux savoir combien de fois la séquence 2,2,2 est survenu dans tout mon tableau sans tenir compte des colonnes je veux seulement qu'il me sorte toute les séquences 2,2,2.

Jespère que je m'explique bien. je n'ai aucune idée si excel a une fonction pour faire ça ou si c'est de la programmation VBA je suis un peu dépasser par l'ampleur de mon projet.

PS je peux vous envoyer le fichier par courriel ça va etre plus simple pour vous de voir ce que je veux...

Merci à lavance du temps et de votre aide pour m'aider à trouver une solution à mon problème.

Bouclesdor
 

Pièces jointes

  • test calcul.xlsx
    43.2 KB · Affichages: 141
  • test calcul.xlsx
    43.2 KB · Affichages: 156
  • test calcul.xlsx
    43.2 KB · Affichages: 155
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : Rechercher une séquence dans un tableau excel

Bonjour à tous,

Un essai de calcul du nombre de séquence. Le bouton "CALCUL" lance la recherche.

Le choix des séquences va de 2 chiffres à n chiffres...

Le résultat de la recherche du nombre de séquence est affiché en AL2.

Afin de rentrer dans le gabarit de fichier zip de 48,8 Ko, quelques lignes ont été supprimé. Cependant cela ne modifiera pas le fonctionnement sur une base plus longue.

Plus la base sera longue et plus le traitement sera longgg.:cool:
 

Pièces jointes

  • TestSequence.zip
    47.4 KB · Affichages: 172

bouclesdor

XLDnaute Occasionnel
Re : Rechercher une séquence dans un tableau excel

Un gros merci Bernard de ton aide. Je suis impressionnée par la rapidité de ta réponse et aussi pas ta formule VBA j’ai été voir ton code et pour moi c’est du chinois!! :confused: C’est hors de mes connaissances!

J'ai joint ma version test afin que tu puisses mieux comprendre...
Donc avec ton calcul ça règle une de mes questions mais voilà…. (un p'tit bug...):confused:

1- J'ai fait 2-3 petits tests et il semble que le résultat n’est pas à 100% correct. Exemple je cherchais les suites de 12, 12, 12 et avec ton calcul ça donne 3 et moi j’en voie 4 (voir dans la colonne AE voir vis-à-vis le numéro 44, 47, 90 et 97).

2- Est-ce que tu crois qu’il y a un moyen de savoir à quel endroit se trouve les séquences comme ça la vérification du calcul serait plus facile et rapide (soit en mettant de couleur selon la séquence indiqué dans la colonne AK ou encore en inscrivant le # se trouvant dans la colonne AE ou une autre façon que je n’ai pas imaginé…)

Finalement étant donné que tu sembles être un pro d’excel j’aurais une autre question :
Ma ligne 7 je m’en sers pour coller une ligne que je prends dans mon tableau et pouvoir la comparer aux autres lignes du tableau afin de savoir s’il y a une autre ligne identique à celle-ci ou connaitre la ligne qui se rapproche le plus de cette séquence complète. Ce que je fais présentement c’est soit descendre ligne par ligne et je vois par moi-même les valeurs les plus proches sinon j’utilise le filtre mais ce que j’aime moins c’est que je ne peux pas trouver la ou les lignes qui se rapprochent le plus de ma ligne 7.

Ouff c’est difficile d’expliquer tout ça par e-mail… mais bon j’espère que je ne t’ai pas perdu dans mes explications.

Merci à l'avance de ton aide... Ça va me sauver énormément de temps d’automatiser tout ça…

bouclesdor
 

Pièces jointes

  • Bogg séquence.xlsm
    48.5 KB · Affichages: 123

CBernardT

XLDnaute Barbatruc
Re : Rechercher une séquence dans un tableau excel

Bonjour Bouclesdor,

Il y a mauvaise interprétation du sens de recherche. la recherche actuelle des séquences s'effectue dans les colonnes et apparemment tu souhaites une recherche de séquences dans les lignes du tableau ?
 
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : Rechercher une séquence dans un tableau excel

Re,

Un fichier avec recherche sur les lignes. Affichage "Séquence" en colonne AJ.

Pour ta dernière question, précise ce que sont deux lignes qui se rapprochent le plus entre elles ?
Identique, ok, c'est précis !
Mais le plus proche entre elles, ça l'est beaucoup moins compte-tenu de la diversité de comparaisons possibles.
 

Pièces jointes

  • Bogg séquence.zip
    45.5 KB · Affichages: 86

suistrop

XLDnaute Impliqué
Re : Rechercher une séquence dans un tableau excel

Salut,
Juste une question sur tes données :
Est ce que chaque case vide compte, ce que je veux dire c est que :
2 1 vide vide vide vide 1 2 c est pareil pour toi que
2 1 vide 1 2 ?
En gros si on conside que V = vide : 21VVVV12 = 21V12 ?

Si tu pouvais en dire plus sur ce que tu cherches sur ces données et d'ou elles viennent peut etre tu auras d'autres pistes.

Cordialement

Suistrop
 

bouclesdor

XLDnaute Occasionnel
Re : Rechercher une séquence dans un tableau excel

Bonsoir à vous,

Ce que je cherche c'est des séquences identiques ou plus près de... donc oui les cases vides sont importante donc V = vide : 21VVVV12 et non 21V12.

BERNARD: pour répondre à ta question oui c'est bien ça je cherche les lignes identiques... Désolé pour la confusion j'ai oublié de le préciser... Milles excuses...

J'ai regardé ton fichier et c'est vraiment merveilleux c'est facile de repérer les séquences. Un petit problème persiste... si je cherche les séquences de 12,12,12 je ne veux pas qu'il m'indique une séquence si elle est séparer par une colonne vide (12,12,V,12) v=vide.

Pour ce qui est de comparer 2 lignes dans le fond lorsque je copie une ligne dans la ligne 7 je veux trouver dans le tableau la ou les lignes qui sont presque identiques (en me basant sur les emplacements de ma ligne 7) je sais que pour plusieurs lignes il n'y a pas de ligne jumelle dans mon tableau mais je veux savoir la ligne qui est presque identique à quelques lignes près (soit il y aura 1,2,3 ou 4 lignes non identiques mais je veux savoir à quel ligne elles apparaisses selon le numéro dans ma colonne AE.

Ce site est vraiment génial, merci à vous qui essayez de m'aider avec mon projet un peu trop expert pour moi...

Merci à l'avance pour votre aide!

Bouclesdor
 
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : Rechercher une séquence dans un tableau excel

Bonjour à tous,

Un fichier avec recherche sur les lignes avec des séquences resserrées. Résultat en colonne AK.

Pour la dernière question :
1- En colonne AJ, une formule basée sur la fonction sommeprod calcule le nombre de cellules identiques de la ligne avec la ligne base.

2- On repère facilement qu'une seule ligne est identique, la ligne 12 (28 cellules identiques).

3- Un index de comparaison en AJ7 et une mise en forme conditionnelle permettent de visionner les lignes les plus approchantes.
 

Pièces jointes

  • TestSequenceV2.zip
    47.2 KB · Affichages: 108
Dernière édition:

suistrop

XLDnaute Impliqué
Re : Rechercher une séquence dans un tableau excel

Salut,

Ci joint une méthode utilisant l'algo de JARO WINKLER que j ai un peu mis à ma sauce.
Cet algo donne un % de ressemblance entre 2 chaines de caracteres.


Cordialement
 

Pièces jointes

  • CBernardT.zip
    42.1 KB · Affichages: 110

bouclesdor

XLDnaute Occasionnel
Re : Rechercher une séquence dans un tableau excel

Bonjour à vous,

Premièrement je vous remercie de votre aide si rapide...

J'ai regardé vos 2 fichiers très rapidement et je n'ai pas saisi comment tout ça fonctionne mais je vais regarder ça plus en profondeur en fin de semaine et si j'ai des questions je vais vous récrire.

Merci encore de votre aide et du temps que vous avez mis pour m'aider à résoudre mon problème.

Bouclesdor
 

bouclesdor

XLDnaute Occasionnel
Re : Rechercher une séquence dans un tableau excel

Les 2 versions semblent bien fonctionner même si je n'ai aucune idée comment vous avez pu faire le code VBA. J'ai regardé les formules et je n'y comprends rien mais le principale c'est que ça semble bien fonctionner.

suistrop: peux-tu me dire pourquoi il y a 2 colonnes avec des pourcentages? ça se base sur quoi car les valeurs sont un peu différente d'une à l'autre...

Merci encore de votre aide je vais utiliser vos fichiers pour voir lequel répond le plus à mes critères.

Bonne journée,
bouclesdor
 

bouclesdor

XLDnaute Occasionnel
Re : Rechercher une séquence dans un tableau excel

Bonsoir à vous,

Je viens d'essayer de faire fonctionner la version de suistrop avec les pourcentages tout en combinant la recherche de séquence que Cbernardt a fait mais je n'y arrive pas on dirait que un défait l'autre... Je suis un peu gêné de vous demandé encore votre aide mais comme je ne comprends pas vos formules je suis incapable de faire des modifications.

J'aurais aussi une autre demande pour une autre formule: Je vous explique: j'ai 3 choix de réponse 1 ou 2 et 12 (12 veut dire que c'est toutes ses réponses 1 et 2 ensemble) et bien sur si je laisse la case vide c'est aucune de ses réponses... Ceci étant dit j'aimerais ajouter une autre fonction au tableau. j'aimerais que par lui même le tableau m'indique (soit en changeant de couleur) les 10 meilleures lignes qui se ressemble le plus et qui me donne la plus haute valeur en sachant que 12 (qui vaut 2 bonnes réponses soit 1 et 2 combinés) et des 1 et 2 qui valent une réponse....

Merci beaucoup encore de votre temps...

Bouclesdor
 
Dernière édition:

bebop

XLDnaute Nouveau
Re : Rechercher une séquence dans un tableau excel

Bonjour
J'ai récupéré votre macro pour l 'adapter à un besoin similaire. J' ai joint un fichier. Je cherche à avoir un total de séquences identique par ligne . J' y suis presque arrivé. Mais je dois modifier le numéro de ligne pour pour chaque ligne dans la cellule AN9. J' essaye de créer une boucle supplémentaire pour régler le problème mais je n'y arrive pas . J'ai bug sur bug.

voici mon code. Après les apostrophes mon dernier essai de boucle.

Sub SearchSequence()
Dim Derlig As Integer, Tablo, Seq, Temp, i As Integer, j As Byte, k As Byte, l As Byte, N As Byte, Z As Byte, X As Integer, nv As Variant, nu As Variant
Application.ScreenUpdating = False

With Sheets("planning")
Derlig = .Range("A200").End(xlUp).Row

'For l = 1 To 20
'nu = l

nu = Range("AN9").Value
nv = Range("AM" & nu).Value

Tablo = Range(nv).Value

Range("AK9:AK200").ClearContents
Derlig = Range("AK200").End(xlUp).Row
Seq = Range("AK2:AK" & Derlig)

N = UBound(Seq, 1)
For i = 1 To UBound(Tablo, 1)

For j = 1 To UBound(Tablo, 2)
If Tablo(i, j) = Seq(1, 1) And j + N - 2 < UBound(Tablo, 2) Then
Z = 0
For k = j To j + N - 1
If Tablo(i, k) = Seq(k - j + 1, 1) Then
Z = Z + 1
Else
j = k - 1
Exit For
End If
Next k
If Z = N Then
X = X + 1

Range("AK" & i + nu - 1) = X

j = k - 1
End If
End If
Next j
Next i

' Next l

End With
End Sub

Si le post n'est pas trop ancien pour que quelqu'un me donne un coup de main.

merci .
 

Pièces jointes

  • total Sequence.xlsm
    30.9 KB · Affichages: 50

lnahdv

XLDnaute Nouveau
Re : Rechercher une séquence dans un tableau excel

Bonjour à tous,

Un essai de calcul du nombre de séquence. Le bouton "CALCUL" lance la recherche.

Le choix des séquences va de 2 chiffres à n chiffres...

Le résultat de la recherche du nombre de séquence est affiché en AL2.

Afin de rentrer dans le gabarit de fichier zip de 48,8 Ko, quelques lignes ont été supprimé. Cependant cela ne modifiera pas le fonctionnement sur une base plus longue.

Plus la base sera longue et plus le traitement sera longgg.:cool:
Bonsoir,

Plutôt débutant sur Excel ( totalement fasciné par ses possibilités !) je voudrais adapter votre macro VBA au tableau ci-joint (très réduit par souci de simplicité ; chaque colonne (10, 11, 12, 13 14 & 15) contient en fait des milliers de valeurs, exclusivement des chiffres).

Je promets ne pas avoir cédé à la facilité avant d’écrire ce message :) et avoir essayé de comprendre la macro alors que totalement débutant en VBA (mais elle me semble vraiment trop ardue pour quelqu’un qui n’a jamais pratiqué...).

Les différences souhaitées par rapport au tableau de « bouclesdor » sont les suivantes :

  • Recherche d’une séquence (de 2 nombres à plus) uniquement en colonne, et sur une colonne, pas sur toutes les colonnes à la fois, d’où la présence d’une macro à la droite de chaque colonne, représentée dans le tableau par « séquence, suivi de 3 x » x étant les chiffres à saisir, pour reproduire quelque peu votre solution.
  • Recherche d’une séquence « directe », c’est-à-dire 2 ou plus de chiffres qui se suivent sans « cassure » (représenté dans le tableau à titre d’exemple par la suite 0, 4, 6 sur fond vert. Juste après on trouve une séquence 0, 4, (3) 6 sur fond rouge, mais comme justement cette séquence est « interrompue » par « 3 » cela ne m’intéresse pas de la trouver. J’espère que je suis clair dans mes explications.
Je vous remercie par avance pour votre temps et votre aide précieuse.
 

Pièces jointes

  • Suites.xlsm
    28.8 KB · Affichages: 3

Discussions similaires

Réponses
13
Affichages
395

Statistiques des forums

Discussions
312 576
Messages
2 089 844
Membres
104 290
dernier inscrit
Beloumi3