Comptabiliser des valeurs identiques cote à cote dans une plage

sellig 29

XLDnaute Occasionnel
Bonjour à tous,

J'aimerais pouvoir comptabiliser à l'aide d'une formule le nombre de fois que la lettre R se trouve cote à cote avec une autre lettre R dans la plage donnée.
J'ai donné des précisions dans la pièce jointe!
D'avance merci à tous ceux qui pourront m'aider.
 

Pièces jointes

  • 2 valeurs cote à cote dans une plage.xls
    17.5 KB · Affichages: 95
  • 2 valeurs cote à cote dans une plage.xls
    17.5 KB · Affichages: 102
  • 2 valeurs cote à cote dans une plage.xls
    17.5 KB · Affichages: 105

ROGER2327

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir à tous


J'ai eu raison de me méfier hier en disant :
cette fonction qui semble devoir donner les même résultats que la formule de CISCO et la fonction de pierrejean.
Peut-être aurais-je dû écrire​
VB:
Function titi&(r As Range)
Application.Volatile
Dim i&, n&
    For i = 1 To r.Cells.Count
        If r(i).Value = "R" Then
            n = n + 1
        Else
            If n > 1 Then titi = titi + 1
            n = 0
        End If
    Next
    If n > 1 Or (n > 0 And r(1).Value = "R" And r(2).Value <> "R") Then titi = titi + 1
End Function
De cette façon, le but recherché est peut-être atteint... Testeurs avertis, à vous de voir !​


Bonne nuit.



ROGER2327
#5996


Lundi 9 Gidouille 139 (Sainte Outre, psychiâtre - fête Suprême Quarte)
5 Messidor An CCXX, 9,5492h - mulet
2012-W25-6T22:55:05Z
 

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour ROGER2327,
Idem Paritec, il persiste un petit "Hic"! Si je mets un "R" en AI8 AJ8 B6 et C6, votre code considère ces 4 "R" cote à cote comme deux valeurs (au lieu d'une souhaitée!)
Ce n'est toutefois pas bien grave puisque la formule de CISCO ou le code de pierrejean (post#23) intègre cette subtilité! Merci pour votre persévérance.
Cordialement
Gilles
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjours à tous,

Il n'y a pas de raison, j'essaye moi aussi!

Pas de colonne intermédiaire, une formule matricielle, doit fonctionner si le tableau n'est rempli que de "R".

Code:
=SI(NB.SI(A3:AI5;"<>"&"R")=0;1) + SOMME(N((FREQUENCE(SI(A3:AI5="R";LIGNE(A3:AI5)*COLONNES(A3:AI5)+COLONNE(A3:AI5);"");SI(A3:AI5<>"R";LIGNE(A3:AI5)*COLONNES(A3:AI5)+COLONNE(A3:AI5);""))>1))) + ET(A3="R";AI5="R")-(NB.SI(A3:B3;"R")=2)-(NB.SI(AH5:AI5;"R")=2)
Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.
 

Pièces jointes

  • Comtage Cellules R v1.xls
    59.5 KB · Affichages: 40
Dernière édition:

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour mapomme (J'ai l'impression de me souhaiter le bonjour!!) :)
Super! j'ai toutefois trouvé un cas de figure qui ne donne pas le résultat attendu! :eek: Si A3, B3 C3... contiennent un "R" mais AI5 sans "R", la formule ne reconnait pas les "R" en A3, B3, C3... comme une valeur. Idem, si AH5, AI5 contiennent un "R" sans qu'il y ait un "R" en A3, la formule ne reconnait pas AH5, AI5 comme une valeur.
Cordialement
Gilles
 

ROGER2327

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Re...


Bonjour ROGER2327,
Idem Paritec, il persiste un petit "Hic"! Si je mets un "R" en AI8 AJ8 B6 et C6, votre code considère ces 4 "R" cote à cote comme deux valeurs (au lieu d'une souhaitée!)
(...)
Un nouvel essai un peu plus élaboré que les précédents :
VB:
Function tete&(r As Range)
Application.Volatile
Dim i&, n&, d&
    d = r.Cells.Count
    For i = 1 To d
        If r(i).Value <> "R" Then Exit For
    Next
    If i <= d Then
        For i = i To i + d
            If r(1 + i Mod d).Value = "R" Then
                n = n + 1
            Else
                tete = tete - (n > 1)
                n = 0
            End If
        Next
    End If
End Function
En espérant être plus efficace cette fois-ci !​



ROGER2327
#5998


Mardi 10 Gidouille 139 (Saint Boudin, recteur - fête Suprême Quarte)
6 Messidor An CCXX, 5,9655h - romarin
2012-W25-7T14:19:02Z
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour sellig 29,
j'ai toutefois trouvé un cas de figure qui ne donne pas le résultat attendu! Si A3, B3 C3... contiennent un "R" mais AI5 sans "R", la formule ne reconnait pas les "R" en A3, B3, C3... comme une valeur. Idem, si AH5, AI5 contiennent un "R" sans qu'il y ait un "R" en A3, la formule ne reconnait pas AH5, AI5 comme une valeur.
Mais c'est ti ben vrai ça!, j'y retourne voir ce soir :confused:
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

(re)Bonjour sellig 29 et au forum,

J'ai essayé de corriger ma précédente formule matricielle (en orange) par une nouvelle (en vert) en modifiant la partie correctrice finale. Le plus difficile est de la tester et d'être certain qu'elle fonctionne dans tous les cas!

Formule matricielle (cellule verte en AM5):
Code:
=SI(NB.SI(A3:AI5;"<>"&"R")=0;1) + SOMME(N((FREQUENCE(SI(A3:AI5="R";LIGNE(A3:AI5)*COLONNES(A3:AI5)+COLONNE(A3:AI5);"");SI(A3:AI5<>"R";LIGNE(A3:AI5)*COLONNES(A3:AI5)+COLONNE(A3:AI5);""))>1)))+ET(A3="R";AI5="R")*CHOISIR(1+(B3="R")+(AH5="R");1;0;-1)

NB: les deux cas litigieux (théoriquement corrigés) cités dans le post #34 sont à la fin du fichier.
 

Pièces jointes

  • Comptage Cellules R v3.xls
    69.5 KB · Affichages: 41
Dernière édition:

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Impeccable mapomme, le défaut est corrigé! :D
ROGER2327, j'ai essayé votre code, il subsiste toujours une erreur! Si B6, C6, AI8 et AJ8 sont renseignées par des "R", on obtient 2 valeurs au lieu d'une :confused:
Cordialement
Gilles
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir Sellig 29 et le forum,

Puisque cette formule matricielle (message #37) semble convenir, je propose la même formule mais ne faisant n'intervenir en 'paramètre' plages de cellules qu'une seule plage A3:AI5, celle du tableau des valeurs. Elle sera plus facilement adaptable puisqu'avec un "remplacer (Ctrl+H) on pourra changer facilement la référence de la plage en une seule fois.

La formule matricielle (en rose dans le fichier):
Code:
=SI(NB.SI(A3:AI5;"<>"&"R")=0;1) + SOMME(N((FREQUENCE(SI(A3:AI5="R";LIGNE(A3:AI5)*COLONNES(A3:AI5)+COLONNE(A3:AI5);"");SI(A3:AI5<>"R";LIGNE(A3:AI5)*COLONNES(A3:AI5)+COLONNE(A3:AI5);""))>1)))+ET(INDEX(A3:AI5;1;1)="R";INDEX(A3:AI5;LIGNES(A3:AI5);COLONNES(A3:AI5))="R")*CHOISIR(1+(INDEX(A3:AI5;1;2)="R")+(INDEX(A3:AI5;LIGNES(A3:AI5);COLONNES(A3:AI5)-1)="R");1;0;-1)
 

Pièces jointes

  • Comptage Cellules R v4.xls
    93 KB · Affichages: 40

CISCO

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir

à tous

Est-ce que par "hasard", la formule
Code:
SOMMEPROD((C6:AK8="R")*(D6:AL8="R")*(E6:AM8<>"R"))
donnerait aussi le bon résultat, toujours avec les colonnes AL et AM à remplir ?

@ plus
 

Pièces jointes

  • 2 valeurs cote à cote dans une plage ter.xls
    60 KB · Affichages: 28
  • 2 valeurs cote à cote dans une plage ter.xls
    60 KB · Affichages: 39
  • 2 valeurs cote à cote dans une plage ter.xls
    60 KB · Affichages: 39

ROGER2327

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Re...

(...)
ROGER2327, j'ai essayé votre code, il subsiste toujours une erreur! Si B6, C6, AI8 et AJ8 sont renseignées par des "R", on obtient 2 valeurs au lieu d'une (...)
J'ai essayé aussi et j'ai obtenu 1. Peut-être une erreur de transcription de la formule ? Je joins un classeur d'essai (avec les solutions de pierrejean et de mapomme).​


ROGER2327
#6000


Mardi 10 Gidouille 139 (Saint Boudin, recteur - fête Suprême Quarte)
6 Messidor An CCXX, 9,0132h - romarin
2012-W25-7T21:37:54Z
 

Pièces jointes

  • XLD_187001_Comptage_(2).xls
    51.5 KB · Affichages: 47

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour à tous,

A priori, les solutions de Cisco, Roger2327 (15 au jus - on se rapproche) , PierreJean et mapomme semblent donner les mêmes résultats excepté le cas où tout le tableau n'est rempli que de R mais c'est un cas aisément intégrable.
 

Pièces jointes

  • Comptage Cellules R v5 (4 méthodes).xls
    115.5 KB · Affichages: 45
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour à tous


À mapomme : reste effectivement le cas où le tableau est intégralement rempli de R. Il faudra que sellig 29 nous dise ce qu'il attend le cas échéant.
A priori, je pense qu'on devrait trouver 0 (zéro) dans ce cas puisqu'on ne trouve jamais de séquence de deux R ou plus, suivie d'autre chose. Attendons ce qu'il en pense...​


Bonne journée.


ROGER2327
#6001


Mercredi 11 Gidouille 139 (Sacre de Talou VII, empereur du Ponukélé - fête Suprême Quarte)
7 Messidor An CCXX, 3,4673h - concombre
2012-W26-1T08:19:18Z
 

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir à tous,
La probabilité d'avoir la grille remplie que de "R" est nulle donc aucune importance! Vos réponses me conviennent parfaitement et encore merci pour votre ténacité et vos partages de compétences! :D
Bonne soirée
Gilles
 

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
187

Membres actuellement en ligne

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 823
dernier inscrit
ben talha redouane