EXCEL Opérations sur nombres

Résolu
Aztek33 Messages postés 625 Date d'inscription   Statut Membre Dernière intervention   -  
chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterai faire des opérations automatiques sur excel de telle manière que chaque chiffres d'un nombre soit additionné + 1 ou +2 et aussi soustrait -1 ou -2. Exemple :

Le nombre : 38461 ---> +1 ==> 49572
--------------------------------- -1 ==> 27350

C'est à dire qu'on fait l'opération : 3+1, 8+1, 4+1, 6+1 et 1+1.
---------------------------------------puis : 3-1, 8-1, 4-1, 6-1 et 1-1

La grande difficulté c'est de toujours garder 1 seul chiffre : 9+1=0 et non pas 10. Donc en théorie, le nombre 99999 avec l'opération +1 donnera 00000.

Bon, j'espère que vous comprenez, ça à l'air loufoque. J'espère aussi qu'il existe une solution.

Merci d'avance

Aztek

8 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
J'avais 5 min à perdre donc voilà la même valable qcq soit le nombre de chiffres :

Sans les 0 non significatifs :
=SOMMEPROD(MOD((STXT(A1;LIGNE(INDIRECT("$1:$"&NBCAR(A1)));1)+B1)/10;1)*10^
(NBCAR(A1)+1-LIGNE(INDIRECT("$1:$"&NBCAR(A1)))))
=SOMMEPROD(MOD((STXT(A1;LIGNE(INDIRECT("$1:$"&NBCAR(A1)));1)+B1)/10;1)*10^(NBCAR(A1)+1-LIGNE(INDIRECT("$1:$"&NBCAR(A1)))))


Avec les 0 non significatifs :
=DROITE(REPT(0;NBCAR(A1))&SOMMEPROD(MOD((STXT(A1;LIGNE(INDIRECT("$1:$"&
NBCAR(A1)));1)+B1)/10;1)*10^(NBCAR(A1)+1-LIGNE(INDIRECT("$1:$"&NBCAR(A1)))));NBCAR(A1))
=DROITE(REPT(0;NBCAR(A1))&SOMMEPROD(MOD((STXT(A1;LIGNE(INDIRECT("$1:$"&NBCAR(A1)));1)+B1)/10;1)*10^(NBCAR(A1)+1-LIGNE(INDIRECT("$1:$"&NBCAR(A1)))));NBCAR(A1))


Attention au copier/coller, tout doit être écrit bout à bout, et CCM ajoute des - parfois
eric

PS pour vaucluse et chtilou : dans votre tableau -1 et -2 sont interdits.... et si on laisse passer 0-1 donne 1 (au lieu de 9 ?)
1
chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention   523
 
Salut Eric,
tu es vraiment un pro.
Je cherche encore à comprendre ta formule magique.
Chapeau bas Monsieur.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438 > chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention  
 
Itou, je n'ai pas vérifié, je sais que ce n'est pas la peine...(si ça ne marche pas, c'est moi qui me trompe)... et surtout,je ne pense pas que l'on puisse balancer une telle formule sans l'avoir vérifiée.

mon chapeau à la même hauteur que celui de Chtilou... et vraiment sans problème,d'habitude, je ne met que des casquettes !!!.

:-):-):-)

Ceci dit, ma compréhension de ta formule est aussi à la même hauteur que celle de Chtilou.

A Chtilou: bienvenue au club des fans d'Eric..... par de problème, c'est le meilleur.

CRDLMNT

PSN°1, pour Eric: le -1, ou -2 ne marche pas dans mon fichier car j'ai limité la valeur des cellules de 1 à 3. Mais si tu enlèves la validation, ça marche très bien (non mais?????)

PSN°2: pour Argixu(*1), au cas où: tu lises t'as déja vu un crapaud avec une casquette?????

Nota(1*):un petit clin d'oeil à quelqu'un sur ces forums que j'aime beaucoup, excusez moi.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour , Aztek 33
Un beau challenge que vous lancez là.
Ci dessous ma proposition, ce n'est pas très simple et il y a sans doute mieux, mais, si j'ai bien testé tous les cas de figure, ça marche.
https://www.cjoint.com/?fih7cua6gj

Mon exemple est basé sur:
Nombre à 10 chiffres maximum
Addition de 1, 2 ou 3* seulement.
Evidemment on peut faire mieux.mais en attendant les meilleurs de ces forums...!
nota: j'ai bloqué à 3 la colonne Ajout, mais il est surement possible de passer au dela sans modifier le tableau, en tout cas pas plus loin que 90 pour que les totaux restent à 2 chiffres.
Bonne route. Amusez vous bien
CRDLMNT
PS: la "clef" est dans la feuille 2




https://www.cjoint.com/?fih7cua6gj
0
g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Bonjour,

Un autre "sac de noeuds" :
Pour A4=99999 ou xxxxx
et A1=1 ou 2 ou -1 ou -2 etc...

=SI(GAUCHE(A4;1)+$A$1>9;0;GAUCHE(A4;1)+$A$1)&SI(GAUCHE(DROITE(A4;4)*1)+$A$1>9;0;GAUCHE(DROITE(A4;4)*1)+$A$1)&SI(GAUCHE(DROITE(A4;3)*1)+$A$1>9;0;GAUCHE(DROITE(A4;3)*1)+$A$1)&SI(GAUCHE(DROITE(A4;2)*1)+$A$1>9;0;GAUCHE(DROITE(A4;2)*1)+$A$1)&SI(DROITE(A4;1)+$A$1>9;0;DROITE(A4;1)+$A$1)

Bonne journée.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour g
Pas faux non plus, mais là aussi,si je peux me permettre, cette option est assujettie au nombre de caractères du nombre considéré.
par ailleurs, il semble que la fonction STXT soit plus avantageuse à utiliser que la formulation (GAUCHE(DROITE.... pour le même résultat.

BCRDLMNT
0
chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention   523 > Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour à tous,
je m'y risque... ;-)
http://www.cijoint.fr/cjlink.php?file=cj200805/cijuU5ZoAA.xls
Je suis parti de ton classeur Vaucluse.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour tout le monde,

moi aussi j'aime bien les challenges :-)
Ma proposition (avec le nombre en A1 et la valeur à ajouter/soustraire en B1) :
=SOMMEPROD(MOD((STXT(A1;LIGNE($1:$5);1)+B1)/10;1)*10^(6-LIGNE($1:$5)))
ou bien si l'on veut les 0 non significatifs devant :
=DROITE("00000"&SOMMEPROD(MOD((STXT(A1;LIGNE($1:$5);1)+B1)/10;1)*10^(6-LIGNE($1:$5)));5)

Pour simplifier dans un 1er temps j'ai considéré que le nombre faisait toujours 5 chiffres.

eric
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
bjour'ric
J'ai beau essayé en vérifiant que je n'ai pas sauté la miondre virgule, la formule renvoie VALEUR
Qu'est ce qui m'échappe?
Bonne journée
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276 > Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour vaucluse,

si tu as essayé presque tout de suite oui c'est normal, j'ai fait une petite correction depuis.
et pour la 2nde formule CCM rajoute un - , je recolle les formules :
=SOMMEPROD(MOD((STXT(A1;LIGNE($1:$5);1)+B1)/10;1)*10^(6-LIGNE($1:$5)))
=DROITE("00000"&SOMMEPROD(MOD((STXT(A1;LIGNE($1:$5);1)+B1)/10;1)*10^(6-LIGNE($1:$5)));5)
reessaie stp
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438 > eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je crois avoir réussi, j'avais repèré les caprices de la copie CCM, mais je n'avais pas percuté que ta solution ne fonctionne que sur 5 chiffres impèrativement.
En fait, à plus de 5 elle prend les 5 premiers et à moins de 5, elle retourne "VALEUR"
Toujours sauf erreur de ma part.
Merci pour les info
A+
CRDLMNT
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276 > Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention  
 
oui, sur 5 chiffres uniquement pour l'instant, le #valeur! est normal si moins de 5.
On peut la rendre dynamique selon la longueur du nombre mais au prix d'un alourdissement (avec des nbcar() et des indirect() ) ce qui n'est peut-être pas nécessaire.
Je verrai après selon les besoins du demandeur.
Bonne journée :-)
eric
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438 > eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
OK, Eric, la remarque est aussi valable pour la solution de g, est on peut bien sur les reprendre pour tenir compte du nombre de caractères, mais à quel prix?!!!!
Moi, je n'ai pas osé avec l'option que j'ai proposée,et j'ai souhaité prendre en compte d'entrée le nombre de caractères. ......mais effectivement on peut tout regrouper dans une même formule(bonjour le libellé et les fautes de signes et de code!).
Ceci dit, c'est toujours ça de plus d'appris, bien que j'aurais du mal à le refaire.
Bien cordialement.
Bonne journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aztek33 Messages postés 625 Date d'inscription   Statut Membre Dernière intervention   56
 
Merci pour votre aide, je vois qu'il y a des pros.
eriiic, je suis évidemment moins calé que vous et je n'arrive pas à utiliser votre formule : je la c/c en C1 avec le nombre à modifié en A1 et le chiffre a additionner en B1 ? Ou pas du tout ?
là, j'ai :
--A--------- B------- C
12345-----1------NOM?

Maintenant j'ai un nouveau challenge, faire la meme chose avec des lettres en faisant avancer d'un cran dans l'alphabet :
AGU --> BHV
KDE --> LEF
et bien sur :
ZZZ --> AAA

ça vous semble jouable ?

Merci

Aztek
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
Au cas où Eric ne revienne pas tout de suite:
_pour les lettres , je ne peux rien pour vous, mais peut être notre Eric nationnal...!
_pour la formule pas grand chose, sauf un point, important à mon avis:

lorsqu'on fait un copier collé de CCm vers excel, il se passe bien des choses bizarre dans la reproduction. Peut être est ce là votre problème, car d'après ce qu'écrit Eric, il faut bien placer effectivement votre chiffre en A1, votre ajout en B1 et la formule....où vous voulez.

Mais vérifiez bien qu'elle soit reproduite fidèlement, il s' y introduit parfois pendant le transfert des signes incongrus qui n'ont rien à y faire

Bonne chance

CRDLMNT
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Re
pour compléter au niveau des lettres, vous pouvez essayer:
1° sur une feuille masquée, construire un tableau avec
en colonne A: l'alphabet à partir de A
en colonne B l'alphabet à partir de B, termlié par A en face de Z
Nommez ce champ :TABLE
Sur votre feuille de résultat: vos codes originaux en colonnes A
Pour la colonne B en vis à vis:
en B1=
=RECHERCHEV(STXT(A1;1;1);TABLE;2;0)&RECHERCHEV(STXT(A1;2;1);TABLE;2;0)&RECHERCHEV(STXT(A1;3;1);TABLE;2;0)
La partie de la formule entre chaque & étant à reproduire autant de fois que vous voulez de code en A, en décalant à chaque fois le code STXT(A1;1;1) devient (A1;2;1) pour la deuxième lettre, (A1;3;1) pour la 4° et ainsi de suite
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Encore moi:
en voila une autre qui peiut aller plus loin, mais s'arrète au nombre de caractères de la cellule A1:
=SI(STXT(A1;1;1)="";"";RECHERCHEV(STXT(A1;1;1);TABLE;2;0)&SI(STXT(A1;2;1)="";"";RECHERCHEV(STXT(A1;2;1);TABLE;2;0)&SI(STXT(A1;3;1)="";"";RECHERCHEV(STXT(A1;3;1);TABLE;2;0)&SI(STXT(A1;4;1)="";"";RECHERCHEV(STXT(A1;4;1);TABLE;2;0)))))
A allonger comme vous souhaitez, sur le même principe pour la partie STXT
CRDLMNT
PS:Cette formule ne donne évidemment que le décalage de une lettre (A=B, B=C si vous en voulez plus, ça risque d'être plus complexe étant donné que l'addition ne fonctionne pas.
(Une solution consisterai par macro à modifier la colonne B de la feuille de base pour y mettre la correspondance souhaitée)
Je réfléchi encore un peu sur le sujet, c'est amusant
CRDLMNT
0
chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention   523 > Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention  
 
Re coucou,
je propose ceci:
http://www.cijoint.fr/cjlink.php?file=cj200805/cij9SjyJun.xls
tout en me doutant que Maitre Eric va "encore" nous faire un show. ;-)
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir tout le monde,

Chtilou m'a demandé une explication de la formule, je la met ici si d'autres sont interessés.
J'ai fait de mon mieux mais ce n'est pas très facile à expliquer, donc lire lentement.... ;-)

http://www.cijoint.fr/cjlink.php?file=cj200805/cij5Tf4CRV.xls
Bonne lecture à tous
eric
0
chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention   523
 
Re Riko,
je ne l'ai pas encore lue mais je te remercie d'avance.
Sympa de ta part.
0
chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention   523 > chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention  
 
Même avec les explications, je peine... ;-(
Étant mazo plus par principe que par nature je m'accroche Maître.
Merci pour ce développement.
Amicalement.
0
belgeorges
 
je veux des cours pour excel 2007
0
Aztek33 Messages postés 625 Date d'inscription   Statut Membre Dernière intervention   56
 
CHTILOU j'ai utilisé ta feuille excel et ça fonctionne bien, merci. J'ai besoin uniquement jusqu'à +3 et -3 ce qui est très bien. seulement est-il possible d'avoir la page de référence sur une autre feuille pour pouvoir avoir la Feuil1 seulement avec les lettres et pouvoir l'imprimer?
0
chtilou Messages postés 1696 Date d'inscription   Statut Membre Dernière intervention   523
 
Bonjour Aztek.

Oui c'est possible...
0