calculer la série en cours de la dernière valeur d'une colonne (résolu)

domexcel35

XLDnaute Nouveau
bonjour,

dans la colonne A1, j'ai une série de valeurs (aléatoires):

AS
BT
UF
AS
DE
AS
AS
RE
FC
AS
AS

AS

dans l'exemple, la dernière cellule a pour valeur AS, je cherche a trouver la formule pour calculer la série en cours de la dernière valeur de la colonne, cette dernière valeur est égale à AS, et ici le résultat à trouver devrait etre de 3, en effet il y a bien 3 valeurs AS qui se suivent

merci d'avance à ceux qui peuvent me donner un coup de main

cordialement
 
Dernière édition:

excfl

XLDnaute Barbatruc
Re : calculer la série en cours de la dernière valeur d'une colonne

Bonsoir le forum,

En attendant mieux :
2j5j5sh.png


B2 :
Code:
=SI(A2=INDEX($A$1:$A$100;MAX(SI($A$1:$A$100<>0;LIGNE($A$1:$A$100))));1+B1;0)

C2 :
Code:
=INDEX(A1:A100;MAX(SI(A1:A100<>0;LIGNE(A1:A100))))&" : "&MAX(B2:B100)

Formules matricielles.
 

Victor21

XLDnaute Barbatruc
Re : calculer la série en cours de la dernière valeur d'une colonne

Bonsoir, domexcel35, excfl.

Une proposition en pj, toujours avec une colonne supplémentaire, mais sans matricielle.
Attendons les spécialistes de la matrice pour supprimer cette colonne disgracieuse :)
 

Pièces jointes

  • domexcel.xlsx
    12.2 KB · Affichages: 32

excfl

XLDnaute Barbatruc
Re : calculer la série en cours de la dernière valeur d'une colonne

Bonsoir le forum, Victor 21

Sans colonne supplémentaire :
Code:
=MAX(FREQUENCE(SI(A1:A100=INDEX(A1:A100;MAX(SI(A1:A100<>0;LIGNE(A1:A100))));LIGNE(A1:A100));SI(A1:A100<>INDEX(A1:A100;MAX(SI(A1:A100<>0;LIGNE(A1:A100))));LIGNE(A1:A100);)))
Formule matricielle.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : calculer la série en cours de la dernière valeur d'une colonne

Bonjour domexcel35, excfl :), Victor21 :),

Un essai avec une fonction personnalisée : DerSerie(Plage; Quoi)

Plage : c'est la plage à examiner (on n'en prend que la première colonne)

Quoi : Indique la valeur à retourner:

  • si Quoi est omis, on retourne la dernière valeur. Ex:=DerSerie(B3:B99)
  • si Quoi est n'importe quelle valeur, on retourne le nombre de valeur de la dernière série. Ex:=DerSerie(B3:B99; 0)

Code de la fonction (dans module1):
VB:
Function DerSerie(x As Range, Optional Quoi)
Dim n&, m&, i&, y
On Error Resume Next
  If Not IsMissing(Quoi) Then
    If Application.WorksheetFunction.CountA(x.Columns(1)) = 0 Then Exit Function
    n = Application.WorksheetFunction.Match(String(9, "z"), x.Columns(1), 1)
    m = Application.WorksheetFunction.Match(9E+99, x.Columns(1), 1)
    If n < m Then n = m
    y = x.Columns(1).Cells(n - 1, 1).Value
    For i = n To 1 Step -1
      If x.Columns(1).Cells(i, 1) <> y Then Exit For
    Next i
    DerSerie = n - i - (i = n)
    Exit Function
  Else
    DerSerie = ""
    If Application.WorksheetFunction.CountA(x.Columns(1)) = 0 Then Exit Function
    n = Application.WorksheetFunction.Match(String(9, "z"), x.Columns(1), 1)
    m = Application.WorksheetFunction.Match(9E+99, x.Columns(1), 1)
    If n < m Then n = m
    DerSerie = x.Columns(1).Cells(n, 1).Value
  End If
End Function
 

Pièces jointes

  • domexcel35-série dernière valeur-v1.xlsm
    18.6 KB · Affichages: 34
Dernière édition:

GerardCalc

XLDnaute Occasionnel
Re : calculer la série en cours de la dernière valeur d'une colonne

Bonsoir,

Bonsoir le forum, Victor 21

Sans colonne supplémentaire :
Code:
=MAX(FREQUENCE(SI(A1:A100=INDEX(A1:A100;MAX(SI(A1:A100<>0;LIGNE(A1:A100))));LIGNE(A1:A100));SI(A1:A100<>INDEX(A1:A100;MAX(SI(A1:A100<>0;LIGNE(A1:A100))));LIGNE(A1:A100);)))
Formule matricielle.
Cette formule renvoie la série la plus longue, pas la série en cours.
Une variante, à tester :

Code:
=RECHERCHE(9^9;FREQUENCE(SI(A2:A100=RECHERCHE("zzz";A2:A100);LIGNE(A2:A100));SI((A2:A100<>RECHERCHE("zzz";A2:A100))*(A2:A100<>"");LIGNE(A2:A100))))
A+
 

Discussions similaires

Réponses
7
Affichages
349

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino