XL 2019 Calcul d'une sequence

  • Initiateur de la discussion Initiateur de la discussion Mopire
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Mopire

XLDnaute Junior
Bonjour à tous,

Dans mon fichier je voudrais connaitre les séquences de nombre de buts qu'une équipe a fait.
Dans mon exemple je voudrai savoir combien de fois une équipe a fait de match a un but (but total du match) à la suite.


Merci d'avance de me donner des pistes.
 

Pièces jointes

Dernière édition:
Bonjour Mopire,

Voyez le fichier joint et cette formule en K5 à tirer sur la plage K5:O24 :
Code:
=SOMMEPROD(((INDEX(calendrier_ligue_1_2010_2011;;3)=$J5)+(INDEX(calendrier_ligue_1_2010_2011;;4)=$J5))*(INDEX(calendrier_ligue_1_2010_2011;;7)=--GAUCHE(K$4)))
Pour chaque colonne P Q R la formule est adaptée.

A+
 

Pièces jointes

Bonjour,
Merci de ta réponse mais c'est pas ce que je recherche a faire. Je recherche a savoir le nombre de fois qu'une équipe a fait par exemple 1 but consécutif. Si au maximum il y a eu 2 fois de suite des matchs a 1 buts donc on affiche 2.
J'espère que c'est plus claire comme ca !!
 
Dans ce fichier je vous ai mis un exemple de ce que cela doit donner !!
Dans l'exemple il y a 2 fois de suite auxerre qui a fait deux fois 1 buts au maximum donc on affiche 2. Ils ont fait 3 fois de suite au maximum 2 buts donc on affiche 3...
J'espère que c'est plus clair ainsi !!
 

Pièces jointes

C'est juste pour l'exemple, pour vous montrez le concept. Dans le dernier fichier j'ai allongé Auxerre sur toutes les lignes et il y avait donc Auxerre - Auxerre donc j'ai mis lens. C'était pour avoir les résultats d'une équipe seulement pour être plus clair et pourvoir les compter.
 
J'ai fais cette formule qui me dit le nombre de 1 but consécutif mais c'est de toutes les équipes, comment mettre en condition seulement une équipe en particulier (HOME + AWAY)?

formule matricielle
VB:
=MAX(FREQUENCE(SI(calendrier_ligue_1_2010_2011[Total_but]=1;LIGNE(calendrier_ligue_1_2010_2011[Total_but]));(calendrier_ligue_1_2010_2011[Total_but]<>1)*LIGNE(calendrier_ligue_1_2010_2011[Total_but])))
 
Bonjour Mopire, JHA, le forum,

Bon j'ai pris mon courage à 2 mains, voyez le fichier joint et cette macro :
VB:
Sub MAJ()
Dim S As Range, nlig&, D As Range, dest, i&, nom$, source, j&, but As Byte, maxi&, compte&
Set S = [A1].CurrentRegion
nlig = S.Rows.Count
If nlig = 1 Then Exit Sub
Set D = [sequence_2010_2011] 'tableau structuré
dest = D 'matrice, plus rapide
Application.ScreenUpdating = False
S.Columns(2).Insert xlToRight 'insère une colonne auxiliaire
For i = 1 To UBound(dest)
    nom = dest(i, 1)
    S.Columns(2).ClearContents 'RAZ de la colonne auxiliaire
    source = S.Value2 'matrice, plus rapide
    For j = 2 To nlig
        If source(j, 4) = nom Or source(j, 5) = nom Then source(j, 2) = source(j, 3) 'copie la date
    Next j
    S.Columns(2) = Application.Index(source, , 2) 'restitue les dates
    S.Sort S(1, 2), xlAscending, Header:=xlYes 'tri sur la colonne auxiliaire
    source = S.Value2 'matrice, plus rapide
    '---colonnes 2 à 6---
    For but = 1 To 5
        maxi = 0
        For j = 1 To nlig
            If source(j, 2) = "" Then Exit For
            If source(j, 8) <> but Then compte = 0 Else _
                compte = compte + 1: If compte > maxi Then maxi = compte
        Next j
        dest(i, but + 1) = maxi
    Next but
    '---colonne 7---
    maxi = 0
    For j = 1 To nlig
        If source(j, 2) = "" Then Exit For
        If source(j, 8) <> 0 And source(j, 8) <> 1 Then compte = 0 Else _
            compte = compte + 1: If compte > maxi Then maxi = compte
    Next j
    dest(i, 7) = maxi
    '---colonne 8---
    maxi = 0
    For j = 1 To nlig
        If source(j, 2) = "" Then Exit For
        If source(j, 8) <> 2 And source(j, 8) <> 3 Then compte = 0 Else _
            compte = compte + 1: If compte > maxi Then maxi = compte
    Next j
    dest(i, 8) = maxi
    '---colonne 9---
    maxi = 0
    For j = 1 To nlig
        If source(j, 2) = "" Then Exit For
        If Val(source(j, 8)) < 4 Then compte = 0 Else _
            compte = compte + 1: If compte > maxi Then maxi = compte
    Next j
    dest(i, 9) = maxi
Next i
'---restitution---
S.Columns(2).Delete xlToLeft 'supprime la colonne auxiliaire
S.Sort S(1, 2), xlAscending, Header:=xlYes 'ordre initial
D = dest
End Sub
Edit : If nlig = 1 Then Exit Sub

Les résultats sont exactement les mêmes que ceux de JHA.

A+
 

Pièces jointes

Dernière édition:
Merci beaucoup Job75 aussi. Tu as du passé bon moment aussi pour avoir ce résultat. Franchement vous êtres trop fort.
Comme je veux le faire pour plusieurs saison, je vais partir sur la méthode de Job75, peu être je reviendrais vers toi si jamais j'ai un soucis.
Encore merci a vous deux.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
625
Réponses
4
Affichages
266
Deleted member 453598
D
Réponses
11
Affichages
606
Réponses
6
Affichages
166
Retour