Comment convertir les nombres à double parité en nombres strictement impairs ?

gozi

XLDnaute Nouveau
Bonjour à tous,

dans une des colonnes de mon tableau, certains nombres (mais pas tous) comportent un slash pour indiquer une double parité. Voici deux exemples : 8502/3, 8527/6.

Mais dans mon idéal, cette colonne ne devrait contenir que des nombres strictement impairs.
Pour reprendre les deux exemples précédents, je voudrais voir ceci à la place : 8503, 8527.

Actuellement, je dois corriger un à un tous les nombres concernés...
Existe-t-il une formule qui puisse se charger de cette fastidieuse tâche ?

(Le fichier que je joins en guise d'exemple vient d'être réalisé à la maison, mais au boulot nous utilisons la version Excel 2002.)

Merci beaucoup pour votre aide,

gozi
 

Pièces jointes

  • Nombres Impairs avec Slash.xlsx
    9.2 KB · Affichages: 58

Modeste

XLDnaute Barbatruc
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Bonjour gozi,

Le titre de la discussion fait un peu peur: j'ai cru que ce serait une question à laquelle seuls ROGER2327 et quelques autres pourraient répondre :eek: ...

Cependant, peux-tu expliquer pourquoi 8527/6 devient 8527, alors que 29347/8 devient 29347? A première vue, je croyais qu'on prenait le plus grand de 2 chiffres avant et après le "slash" (quand il est présent)!? ... ou alors c'est vraiment aussi compliqué que le titre le laissait supposer?

Oups: Seulement vu la notion de nombre impair maintenant ... je reviens (s'il n'est pas trop tard)
Code:
=1*SI(ESTNUM(TROUVE("/";A2));SI(MOD(STXT(A2;TROUVE("/";A2)+1;1)*1;2)=0;STXT(A2;1;TROUVE("/";A2)-1);STXT(A2;1;TROUVE("/";A2)-2)&STXT(A2;TROUVE("/";A2)+1;1));A2)
Re-Edit: bonjour Denis132
 
Dernière édition:

gozi

XLDnaute Nouveau
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Oui, c'est une bien belle prise de tête que j'expose là, n'est-ce pas !

Pourquoi diable ai-je besoin de conserver uniquement des nombres impairs (quand bien même le nombre impair se trouverait être inférieur au nombre pair) ?
Parce que dans un deuxième temps, j'utilise la fonction RECHERCHEV basant sa recherche dans une colonne qui contient exclusivement des nombres impairs.

Et dire que j'en ai d'autres en réserve des prises de tête... mais chaque chose en son temps...

Merci pour ton intérêt,
gozi
 

gozi

XLDnaute Nouveau
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Excellent !
C'était donc vrai : "Le bonheur est simple comme un coup de fil !".

Merci Denis132... et sûrement à bientôt pour mon plus grand bienfait.

gozi
 

gozi

XLDnaute Nouveau
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Bravo Cisco, ta formule fonctionne elle aussi à merveille !

Merci beaucoup,

(et je me demande pourquoi j'ai attendu si longtemps avant de venir poser ma question sur ce forum salvateur.)

gozi
 

Modeste

XLDnaute Barbatruc
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Re-bonjour (voire re²),

Je m'incline évidemment avec respect face à la proposition de CISCO, qui est d'une concision impressionnante, mais elle implique que le cas suivant n'est pas possible: 1234/3 (ou alors quelque chose m'échappe, une fois de plus! :eek:)?
 

gozi

XLDnaute Nouveau
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Bien vu, Modeste.

Effectivement, dans ma réalité, le chiffre pair sera toujours inférieur au chiffre impair (qu'il soit placé avant ou après le slash).

J'ai donc fait une erreur de frappe sur l'une des lignes de mon tableau-exemple (en l'occurence 29347/8 ne peut pas exister, c'est 29347/6 qui existera à la place).
Pas malin de ma part, donc mes excuses pour avoir bêtement compliqué la donne. Je me relirai plus attentivement dans l'avenir. Mes excuses encore une fois :eek:.
 

ROGER2327

XLDnaute Barbatruc
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Bonjour à tous



Un poil plus court :​
Code:
=--SI(ESTERR(TROUVE("/";A2));A2;SI(EST.PAIR(GAUCHE(A2;TROUVE("/";A2)-1));GAUCHE(A2;TROUVE("/";A2)-2)&DROITE(A2;1);GAUCHE(A2;TROUVE("/";A2)-1)))



ROGER2327
#6380


Dimanche 15 Décervelage 140 (Conscience d’Ubu - fête Suprême Tierce)
23 Nivôse An CCXXI, 7,6431h - fer
2013-W02-6T18:20:37Z
 

ROGER2327

XLDnaute Barbatruc
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Suite...


... si on a le droit d'utiliser une fonction personnalisée :​
VB:
Function toto(r$)
'Application.Volatile
Dim a&, b&, x
    x = Split(r, "/")
    With WorksheetFunction
        Select Case UBound(x)
        Case 0: toto = CLng(x(0))
        Case 1
            a = CLng(x(0))
            b = (a \ (10 ^ Len(x(1)))) * (10 ^ Len(x(1))) + CLng(x(1))
            If .IsOdd(a) And .IsEven(b) Then
                toto = a
            ElseIf .IsOdd(b) And .IsEven(a) Then
                toto = b
            Else
                toto = ""
            End If
        Case Else: toto = ""
        End Select
    End With
End Function
Reste des cas à préciser : par exemple, que fait-on avec 530/9 ?​


ROGER2327
#6381


Dimanche 15 Décervelage 140 (Conscience d’Ubu - fête Suprême Tierce)
23 Nivôse An CCXXI, 7,8877h - fer
2013-W02-6T18:55:50Z
 

gozi

XLDnaute Nouveau
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Encore une formule qui répond à ma demande ! Finalement, je commence à avoir l'embarras du choix...

"Reste des cas à préciser : par exemple, que fait-on avec 530/9 ?"
Réponse : il faut écrire 539.

Quant à la fonction toto(r$), je vais maintenant tenter de l'intégrer dans mon classeur.

A plus tard,
gozi
 

ROGER2327

XLDnaute Barbatruc
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Re...


(...)

Quant à la fonction toto(r$), je vais maintenant tenter de l'intégrer dans mon classeur.

(...)
Ca n'est pas compliqué, mais pas sûr que ce soit plus intéressant qu'une formule Excel.
Un essai dans le classeur joint avec quelques exemples biscornus...​



ROGER2327
#6382


Dimanche 15 Décervelage 140 (Conscience d’Ubu - fête Suprême Tierce)
23 Nivôse An CCXXI, 9,7593h - fer
2013-W02-6T23:25:20Z
 

Pièces jointes

  • XLD_199082.xlsm
    18.6 KB · Affichages: 55

CISCO

XLDnaute Barbatruc
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Bonjour à tous, bonjour Roger2327, Modeste, Gozi

Re-bonjour (voire re²),
... mais elle implique que le cas suivant n'est pas possible: 1234/3 (ou alors quelque chose m'échappe, une fois de plus! :eek:)?

d'où ma phrase "Peut-être peux tu essayer avec...", la liste d'exemples étant trop courte pour être sûre de la polyvalence de la formule.

@ plus
 

Modeste

XLDnaute Barbatruc
Re : Comment convertir les nombres à double parité en nombres strictement impairs ?

Bonjour le fil,

@CISCO: mon intervention à moi débutait par:
Je m'incline évidemment avec respect face à la proposition de CISCO
... et rien n'a changé, depuis lors (... au point que j'en suis tout courbattu!)

Ce que j'interrogeais, c'était la "représentativité" des exemples fournis: ROGER2327 (que je salue avec le même respect) a trouvé d'autres cas peu clairs et gozi s'en est expliqué, depuis.
Quant à ta proposition, elle me laisse toujours aussi béat!