Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trier un nombre de cellules identique et adjacentes

  • Initiateur de la discussion Initiateur de la discussion remdodo
  • 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 !

R

remdodo

Guest
Bonjour à tous et merci de m'accueillir sur votre forum.
Je pense que j'ai un bon exercice à vous proposer.

Le fichier joint comporte un état (sommeil =S; Eveil= W) pour chaque minute d'une semaine d'enregistrement par accélérométrie.
L'endormissement du sujet est considéré "officiel" au premier S suivi de 14 autres S ininterrompus par un W.
Les réveils sont considérés si il y a au moins 5 minutes de W précédés par au moins 15 minutes de S.
Enfin, l'Eveil matinal final est la première minute de la première période d'éveil suivant le dernier épisode de sommeil....

Je vous avais prévenu.

Sachant que j'ai 56 sujets à traiter, je serai ravi de pouvoir scorer cela automatiquement, mais seul j'en suis incapable.

Quelqu'un peut t'il m'aider?

Un grand merci!
 

Pièces jointes

Dernière modification par un modérateur:
Re : Trier un nombre de cellules identique et adjacentes

Bonjour à tous,
Bienvenue sur XLD,

Merci de déposer ton fichier de données.
Cela sera plus simple pour tenter de t'aider.

A+ à tous
 
Re : Trier un nombre de cellules identique et adjacentes

Bonjour et bienvenu sur le forum, salut JCGL,

Deux petites remarques :

- Tu ne précises sous quelle forme il faut renvoyer les résultats, un petit exemple serait le bienvenu.

- Trois façon de procéder :

1. par une formule non matricielle dans chaque ligne, soit 15675 formules + celles du tableau des résultats
Si de plus tu souhaites avoir les 56 patients dans un meme fichier, cela fera +/- 878000 formules !

2. par formule matricielle qui devra balayer les 15675 lignes !

3. par macro

Les deux premières solutions seront fort lentes à chaque calcul, il me semble que la macro s'impose.
Qu'en penses-tu ?
 
Re : Trier un nombre de cellules identique et adjacentes

Salut remdodo et le forum
Il faut que tu partes du principe, que ce qui est évident pour toi ne l'est que pour toi.
Par formule, c'est sans doute possible, mais elles seraient tellement alambiquées que je préfère travailler par macro.
Un essais pour le sommeil :
Code:
Sub test_S()
Dim Cel As Range, X As Long, Flg_S As Boolean, Y As Byte
For X = 4 To Cells(Rows.Count, "C").End(xlUp).Row - 14
    If Range("C" & X) = "S" Then
        Flg_S = True
        For Y = 1 To 14
            If Range("C" & X).Offset(Y, 0) <> "S" Then
                X = X + Y
                Flg_S = False
                Exit For
            End If
        Next Y
        If Flg_S And _
        Range("A" & X) + Range("B" & X) + TimeSerial(0, 14, 0) = _
        Range("A" & X + 14) + Range("B" & X + 14) Then
            Range("D" & X) = "S"
            Set Cel = Range("C:C").Find(What:="W", After:=Range("C" & X))
            
            If Cel.Row < X Then Exit Sub
            X = Cel.Row
        End If
    End If
Next X
End Sub
Vérifie que ça correspond à ce que tu cherches (J'ai un doute avec les 14 minutes).
Tu auras un S d'inscrit en colonne D à chaque fois qu'on répondra à ta définition de l'endormissement.

Il serait bien que tu nous donnes les 2 premières lignes correspondant à ce que tu veux, pour chaque cas :
- endormissement => à priori : 368 et 413
Pour les autres, j'attends de savoir si j'ai bon avec ma macro, avant de les faire.
A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…