Formule réduire nombre

Martin -  
 Martin -
Bonjour,
j'aimerais connaître la formule pour réduire un nombre pouvant aller de 1 à 2999 de 1 à 9 : exemple 2001 = 3 et 1999 = 1 (somme 10 donc 1). Exception le 11 et 22 qui restent identiques.
Avez-vous la solution svp ?

4 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour Martin

    Formule un peu longue mais qui devrait faire le job pour une valeur en B3 :
    =SI(OU(B3=11;B3=22);B3;STXT(STXT(B3;1;1)+SI(NBCAR(B3)>1;STXT(B3;2;1);0)+SI(NBCAR(B3)>2;STXT(B3;3;1);0)+SI(NBCAR(B3)>3;STXT(B3;4;1);0);1;1)+SI(NBCAR(STXT(B3;1;1)+SI(NBCAR(B3)>1;STXT(B3;2;1);0)+SI(NBCAR(B3)>2;STXT(B3;3;1);0)+SI(NBCAR(B3)>3;STXT(B3;4;1);0))=2;STXT(STXT(B3;1;1)+SI(NBCAR(B3)>1;STXT(B3;2;1);0)+SI(NBCAR(B3)>2;STXT(B3;3;1);0)+SI(NBCAR(B3)>3;STXT(B3;4;1);0);2;1)))

    Cdlmnt
    Via
    0
    1. brucine Messages postés 24846 Date d'inscription   Statut Membre Dernière intervention   4 169
       
      Bonjour,

      J'ai lu ça en diagonale, mais en dehors de 11 et 22, j'avais compris qu'il ne s'agissait que d'additionner le premier chiffre à gauche et le dernier à droite.

      Pas plus simple de seulement les extraire par GAUCHE et DROITE sauf NBCAR=1 et en soustrayant 9 quand le total est supérieur ou égal à 10?
      0
    2. Martin
       
      Merci beaucoup
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour à tous,

    en un peu plus court ;-)
    =SI(OU(A2=11;A2=22);A2;MOD(A2;9)) 

    eric

    ou
    =SI(OU(A3=11;A3=22);A3;MOD(A3-1;9))+1

    comme tu veux de 1 à 9 et non de 0 à 8

    @brucine : il faut additionner tous les chiffres et recommencer si la somme est >9 jusqu'à n'avoir qu'un seul chiffre.
    C'est une simple coïncidence pour 2001 et 1999
    1+9+9+9=28, 2+8=10, 1+0=1

    0
    1. brucine Messages postés 24846 Date d'inscription   Statut Membre Dernière intervention   4 169
       
      Bonsoir,

      Là, pour le coup, c'est trop court: tu as oublié de traiter le cas A2 entre 1 et 8.
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,
    ??? à quel moment sont-ils exclus ?
    eric
    0
    1. brucine Messages postés 24846 Date d'inscription   Statut Membre Dernière intervention   4 169
       
      Bonjour,

      Au temps pour moi, je n'avais pas vérifié cette bizarrerie Excel: en arithmétique ordinaire, le reste de par exemple la division entière de 7 par 9 n'a pas de sens (et d'ailleurs "en Excel" non plus qui continue à considérer l'entier inférieur résultant de la division, en l'espèce 0).
      0
      1. Martin > brucine Messages postés 24846 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour et merci beaucoup à tous pour ces retours.
        Je vais tester ça ce soir mais il me semble que la formule qui peut fonctionner serait plus celle de Via car c’est la somme des 4 chiffres exemple 1985 = 5 et pour 1984 = 22 on garde 22.
        Qu’en pensez-vous ?

        Je rencontre un autre petit problème. J’ai des dates sous le format 06/02/1985 et quand je calcule la somme jour()+mois()+annee() ça fonctionne très bien sauf quand le mois fait 31 jours ça affiche « valeur » !!
        Faut-il paramétrer la date dans le format de cellule ou connaissez-vous ce problème ?

        Martin
        0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    1) J'en pense que tu devrais tester avant de faire des déductions

    2) impossible de répondre comme on ne sait pas comment tu calcules
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      tu n'avais pas précisé que c'était une somme 22 et non le nombre initial qu'il fallait conserver...
      Via, comme moi, on te retourne 4.

      Avec une colonne intermédaire pour alléger la formule :
      - en B2 :
       =SOMME(--SI(STXT(A2;LIGNE($1:$4);1)="";0;STXT(A2;LIGNE($1:$4);1)))

      à valider en matricielle avec Shift+Ctrl+Entrée

      - en C2 :
      =SI(OU(B2=11;B2=22);B2;MOD(B2-1;9)+1)


      Si tu veux une seule formule, remplacer B2 par sa formule dans la seconde formule
      eric
      0
      1. Martin > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci beaucoup Eric
        0