Excel : détecter le début d'une séquence

Résolu/Fermé
lightman77 Messages postés 5 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 7 octobre 2008 - 18 sept. 2008 à 15:06
lightman77 Messages postés 5 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 7 octobre 2008 - 19 sept. 2008 à 11:01
Bonjour,

Je fais face à un blocage pour lequel je ne trouve pas de solution sur le web malgré mes recherche depuis plusieurs jours.

Résumé du contexte : je suis en train de réalisé un graphique dynamique, où l'axe des abscisses est chronologique et basé sur une tableau qui évolue avec le temps (une ligne au max par jour, mais pas tous les jours). Le graphique doit représenter les données sur un an glissant. Il y a donc sur X une borne de début et une borne de fin pour définir la plage à retenir. Vous suivez ? Bon.

Pour déterminer les dates à retenir, j'ai utiliser une colonne F remplie avec l'équation "=SI((AUJOURDHUI()-A5)<365;1;"")". Exit les années bissextiles, on est pas à un jour près...
Du coup, j'ai un train de '1' verticaux qui évoluent jour après jour entre les cellules F4 et F(4+n). Je détecte la longeur de la séquence avec "=NB(F:F)" ou "=NBVAL(F4:F65536)". Mais je n'arrive pas à trouver un moyen de détecter le début de la séquence.

Actuellement, tout est en place et fonctionnel, même le graphique dynamique, sauf qu'il se base sur 2 cellules où j'entre le départ et la longeur à la main. Il ne me manque donc que cette formule (pas de VBA) qui me retournerait la réf. de la cellule de départ de la séquence.

Auriez-vous une idée ?

Merci d'avance.
A voir également:

5 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
18 sept. 2008 à 15:17
Excuse, j'ai du louper un truc.

Du coup, j'ai un train de '1' verticaux qui évoluent jour après jour entre les cellules F4 et F(4+n). Je détecte la longeur de la séquence avec "=NB(F:F)" ou "=NBVAL(F4:F65536)". Mais je n'arrive pas à trouver un moyen de détecter le début de la séquence.

C'est quoi, le début? Une référence de cellule, une date, une valeur??? Quelle séquence??? Je comprends presque tout et tu ne dois pas être loin de la solution, mais là je décroche.
0
lightman77 Messages postés 5 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 7 octobre 2008 1
18 sept. 2008 à 15:51
C'est quoi, le début? Une référence de cellule, une date, une valeur??? Quelle séquence???

C'est simple : la plage de cellules qui nous intéresse est F4:F65536. Tout se passe ici. Au-dessus ce sont des données d'en-tête. Dans la plage, on peut avoir par exemple :
F4 = ""
F5 = ""
F6 = 1
F7 = 1
F8 = 1
F9 = 1
...
F100 = 1
F101 = ""

avec "" une cellule 'vide' (au sens visuel).
Et le landemain par exemple :
F4 = ""
F5 = ""
F6 = ""
F7 = ""
F8 = 1
F9 = 1
...
F100 = 1
F101 = 1
F102 = ""

Je cherche la fonction qui me retournera le premier jour $F$6 et le landemain $F$8. Voilà, c'est tout bête, mais je sèche.
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
18 sept. 2008 à 16:11
Bonjour,
pour détecter le premier 1, tu vois si la cellule est égale ou non à la cellule du dessus.
par exemple, tu mets en G4 =SI(F4=F3;"";LIGNE()) et tu étires.
La référence de la cellule-début sera =ADRESSE(MIN(G:G);6)
I.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
18 sept. 2008 à 16:24
Bonjour,

Si tu veux la reference en texte :
="F" & EQUIV(1;F:F;0)
Si tu veux la cellule :
=INDIRECT("F" & EQUIV(1;F:F;0))

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lightman77 Messages postés 5 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 7 octobre 2008 1
19 sept. 2008 à 11:01
Merci Ivan-hoe. J'ai testé ta solution. Elle marche (au moins pour ma question précise), et j'aurais dû y penser tout seul.

Cependant, je préfère la solution de eriiic car elle ne nécessite pas la création de colonne supplémentaire. J'ai donc utilisé la fonction EQUIV() avec une variante (EQUIV(1;$F$4:$F$65536;0)-1) que j'injecte ensuite dans une fonction DECALER().

On dirait que ça marche. Merci de votre efficacité. J'édite en résolu.
0