Connaitre nombre d'elements identiques qui se suivent

Fermé
misterweby Messages postés 6 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 18 février 2016 - 8 déc. 2015 à 16:51
misterweby Messages postés 6 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 18 février 2016 - 18 janv. 2016 à 13:53
Bonjour,

Je voudrais connaitre le nombre d’éléments identiques d'une série, qui se suivent, en ne prenant en compte que la dernière séquence de nombres identiques.

Ex :

j'ai la suite ci dessous : O, O, O, O, N, N, O, O, N, N, N, N, O, O, (une valeur par cellule)

Je souhaite connaitre le nombre de N qui se suivent en dernier (la dernière suite de la série uniquement), c'est a dire dans mon exemple avoir un 4 en retour.

Enfin, pour compliquer encore un peu, il ne faudrait pas tenir compte des cellules vides, c'est a dire :

Exemple 2 : dans la suite O, O, O, N, O, N, N, vide, vide, N, O, O, je voudrais avoir un 3 en retour (3 N qui se suivent dans la dernière série de N, en comptant que les cellules vides ne cassent pas la suite de N).

Avez-vous une idée ?

Merci d'avance !

3 réponses

ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
Modifié par ccm81 le 8/12/2015 à 18:53
Bonjour

Un exemple avec une fonction personnalisée (macro)
http://www.cjoint.com/c/ELir0EkI338

Cdlmnt

Lien modifié à 18h53
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
9 déc. 2015 à 03:04
Bonjour à tous,

une solution par formule matricielle :
=SOMMEPROD(--(DECALER(E3:X3;;MAX((E3:X3="O")*(COLONNE(E3:X3)<MAX((E3:X3="N")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1)))*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1));1;MAX((E3:X3="N")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1))-MAX((E3:X3="O")*(COLONNE(E3:X3)<MAX((E3:X3="N")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1)))*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1)))="N"))

j'ai considéré que ta plage de données était en E3:X3 (pourquoi pas)

Le principe : on cherche le dernier N puis le dernier O précédent le dernier N et enfin on compte le nombre de N entre ces 2 bornes.

cordialement
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 254
9 déc. 2015 à 09:24
Bonjour à tous,

JvDo ça ne serait pas plutôt le nombre de cellules qu'il faudrait compter ?
Ou que tu comptes... Je n'ai pas testé, j'ai confiance en tes formules :-)
eric
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
9 déc. 2015 à 11:26
Bonjour eriic,

Oui, je compte le nombre de cellules contenant N.
En revanche, en testant avec des N en dernière position, j'ai vu que la formule ne fonctionnait pas correctement.
Voici la modif et les valeurs testées :
=SOMMEPROD(--(DECALER(E3:X3;;MAX((E3:X3="O")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1<MAX((E3:X3="N")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1)))*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1));1;MAX((E3:X3="N")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1))-MAX((E3:X3="O")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1<MAX((E3:X3="N")*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1)))*(COLONNE(E3:X3)-COLONNE(INDEX(E3:X3;1))+1)))="N"))


O, O, O, O, N, N, O, O, N, N, , N, , N, N, O, O, O, O, N donne 1
O, O, O, N, O, N, N, N, , N, O, O, , , , , , , , donne 4
, N, , , , , , , , , , , , , , , , , , donne 1
O, O, O, O, N, N, O, O, N, N, , N, , N, N, O, O, O, O, O donne 5


cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
9 déc. 2015 à 14:07
et pour que ce soit plus facile à comprendre : https://www.cjoint.com/c/ELjnglWNUX1

cdlt
0
misterweby Messages postés 6 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 18 février 2016
18 janv. 2016 à 13:46
Bonjour et merci pour la réponse, (désolé pour le retard !)

Cette fonction correspond bien a mon besoin,néanmoins j'ai besoin d'affiner un peu la solution :

En effet, mes variables "N" peuvent en fait être "N" ou "IN", et mes autres variables "O" peuvent prendre différentes valeurs (donc il faudrait surveiller les valeurs differentes de N et IN ?

Y-a-t-il un moyen de faire ça en gardant la même logique de formule ?
0
misterweby Messages postés 6 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 18 février 2016
18 janv. 2016 à 13:53
J'ai essayé d’insérer une fonction OU("IN";"N") mais cela ne semble pas fonctionner ou alors je l’insère mal...
0