Compter le nombre de majuscule dans une cellule [Résolu]

Signaler
Messages postés
64
Date d'inscription
mardi 8 septembre 2015
Statut
Membre
Dernière intervention
13 octobre 2020
-
Messages postés
17244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
-
Bonjour,

J'aimerais savoir si il y a une formule ou une astuce permettant de compter le nombre de lettres en majuscule dans une cellule ?

Merci d'avance,

4 réponses

Messages postés
17244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
4 285
Bonjour,

si le nombre de majuscule se limite à seulement quelques lettres tu peux utiliser cette formule

=SOMMEPROD((STXT(A1;LIGNE(INDIRECT(1&":"&NBCAR(A1)));1)={"A"."B"."C"."D"."E"."I"."O"."U"."Y"})*1)

par contre si toutes les lettres de l'alphabet sont concernée il faudra compléter la formule.
Je regarde s'il est possible de faire plus simple
Messages postés
18564
Date d'inscription
dimanche 9 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
3 563
Bonjour,

je n'ai pas la solution, mais je peux te donner un indice pour la détection

le code binaire des majuscules commence par 4 ou 5
et pour les minuscules, ça commence par 6 ou 7

et vue en poids binaire, (1-2-4-8) il y a le bit 4+1 ou 4 seul en majuscule et rien d'autre
et le bit 4+2 ou 4+2+1 en minuscule

Le "A" = 45 et le "a" = 65 par ex. (en Hexadecimal)

voilà ça peut servir, mais je n'ai rien d'autre.
Messages postés
64
Date d'inscription
mardi 8 septembre 2015
Statut
Membre
Dernière intervention
13 octobre 2020
1
Bonjour Mike-31 et merci pour ta réponse,

elle fonctionne parfaitement car je n'ai pas beaucoup de lettres majuscule possibles.
Messages postés
17244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
4 285
Re,

Voilà en complément sans définir la lettre majuscule
=SOMMEPROD((CODE((STXT(A1;LIGNE(INDIRECT(1&":"&NBCAR(A1)));1)))*1>=65)*(CODE((STXT(A1;LIGNE(INDIRECT(1&":"&NBCAR(A1)));1)))*1<=90)*(CODE((STXT(A1;LIGNE(INDIRECT(1&":"&NBCAR(A1)));1)))*1<>""))


peut être existe il plus court

A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...