XL 2019 Extraire les chiffres d'une cellule par ordre et faire un caclul

Rabeto

XLDnaute Occasionnel
Bonjour,

J'aimerai svp, faire un calcul des chiffres dans une cellule en respectant l'ordre des positions des chiffres.
Un fichier avec un exemple sera plus clair, le but est d'avoir le résultat dans la cellule en vert
La valeurs cellule en jaunes est 10, si ces éléments se présente dans l'une des chaines de caractère.

merci
 

Pièces jointes

  • CR.xlsx
    9.3 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Rabeto, AtTheOne,
Un essai en PJ avec la fonction perso :
VB:
Function Decode(C$, N)
    On Error GoTo Fin: T = Split(C, "a")
    For i = 0 To UBound(T)
        If Left(T(i), 1) = "(" Then T(i) = Split(T(i), ")")(1)
    Next i
    Decode = T(N - 1)
Fin:
End Function
La syntaxe est : =Decode($A11;COLONNE()-1) ( le -1 car le 1er résultat est en colonne 2 )
J'ai aussi modifié la formule avec :
Code:
=SIERREUR((5*(11-B11)+4*(11-C11)+3*(11-10)+2*(11-E11))/4;"")
Car pour la 4eme chaine la colonne C donne "R" donc provoque une erreur.
 

Pièces jointes

  • CR (1).xlsm
    15.2 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
possible dans ce cas de remplacer les valeurs supérieur à 9 ou <> de chiffre par 11 directement ?
Avec une autre fonction perso, plus simple :
VB:
Function Calcul(Plage As Range)
    On Error GoTo Fin2: T = Plage
    For i = 1 To UBound(T, 2)
        If Not IsNumeric(T(1, i)) Or T(1, i) > 9 Then T(1, i) = 11
    Next i
    Calcul = (5 * (11 - T(1, 1)) + 4 * (11 - T(1, 2)) + 3 * (11 - 10) + 2 * (11 - T(1, 4))) / 4
Fin2:
End Function
Syntaxe : =Calcul(Plage)
 

Pièces jointes

  • CR (V2).xlsm
    16.4 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oups !
Ou encore plus simple, en L11 par ex :
VB:
=(5*SIERREUR(11-B11;0)+4*SIERREUR(11-C11;0)+3*(11-10)+2*SIERREUR(11-E11;0))/4
Attention, cette formule ne supprime que les cas avec lettres mais ne résous pas le pb si la valeur est >9. Si ce cas se présente, l'approche par fonction perso est préférable.

Petite question : Pourquoi le (11-10) et non ( 11- D11 ) pour être homogène ?
 
Dernière édition:

Rabeto

XLDnaute Occasionnel
Merci à tous pour votre contribution,

J'ai trouver ce fichier sur le forum, une solution que je trouve bcp plus facile.
Il dissocie les éléments de la colonne J, mais ce qui le différence de mes bases, il y a de l'espace entre les valeurs
quelqu'un sait quoi changer dans la formule si il n'y pas d'espace dans les valeurs ?
 

Pièces jointes

  • Aide iso Coefficient de réussite 2.zip
    7.7 KB · Affichages: 7

AtTheOne

XLDnaute Accro
Supporter XLD
Re-Bonjour @Rabeto
J'ai pas bien compris ta question,
Je cherchais à découper les chaînes que tu donnes en exemple :
8aRa(22)Da1a5a(21)1a1aDa
avec comme séparateur "a" ou "a(22)" ou "a(21)" pour obtenir ta suite de nombres : 8, R, D, 1, 5, 1, 1, D
D'où ma question : les séparateurs sont-ils toujours des "a" ou des "a(##)" (a suivi de 2 chiffres entre parenthèses).
J'ai compris qu'il n'y avait qu'une lettre, mais est-ce toujours un "a" ?
Et qu'il faut ignorer les chiffres entre parenthèses, mais n'y en a-t-il toujours que 2 ?
Tout cela pour chercher une formule matricielle alambiquée avec des noms définis.
Or je suis sur mon téléphone et je ne peux pas définir de nom ni saisir une formule matricielle !
Donc on laisse tomber ...
A bientôt
 

Rabeto

XLDnaute Occasionnel
La lecture logique de ces valeurs est comme suit : 8a Ra (22) Da 1a 5a (21) 1a 1a Da
J'ai mis des espaces pour que vous comprenez mieux, le (22) correspondent l'année.

Pour être plus précis, c'est une musique ce cheval de course, sur l'année 2022, lors de sa dernière course, le cheval a fini 8-ème en course attelé, d'où le 8a.
Ce que je cherche, c'est de pourvoir extraire le premier élément avant chaque lettre a.

AtTheOne je n'ai pas bien compris ta question, désolé, oui le a peut changer selon la discipline de la course,
Plat : p
Attelé : a
Monté : m
Steeple : s
haie : h
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @Lorenzini
@AtTheOne je n'ai pas bien compris ta question,
Oui mais tu y as répondu !
Désolé, mais je ne peux pas t'aider avec le matériel dont je dispose pour 3 semaines : un téléphone Samsung A8 et la version gratuite d'Excel (pas de nom défini, pas de formule matricielle etc...)
A bientôt
Alain
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 102
Messages
2 116 224
Membres
112 690
dernier inscrit
noureddinee