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 -
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
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
A voir également:
- EXCEL Opérations sur nombres
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Déplacer colonne excel - Guide
8 réponses
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)))))
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))
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 ?)
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 ?)
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
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
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.
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.
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
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
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 :
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
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
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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
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
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
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
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
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
tu es vraiment un pro.
Je cherche encore à comprendre ta formule magique.
Chapeau bas Monsieur.
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.