Fonction MOD

Yvjo1025

XLDnaute Nouveau
Bonjour à vous,
J'ai un problème (qui vous est peut-être connu) avec la fonction =MOD
J'ai vu sur le forum qu'il y a pas mal de choses sur le sujet mais je n'ai pas trouvé mon bonheur
Je désire additionner un nombre à 2 chiffres pour le réduire à un chiffre
18 devient 1+8 = 9
La fonction =MOD(18;9) joue pour tous les chiffres sauf pour ceux qui, comme mon exemple, devrait donner 9, il affiche 0 à la place.
Merci d'éclairer ma lanterne...
 

Pièces jointes

  • MOD.xlsx
    9.5 KB · Affichages: 64
  • MOD.xlsx
    9.5 KB · Affichages: 59
  • MOD.xlsx
    9.5 KB · Affichages: 58

mécano41

XLDnaute Accro
Re : Fonction MOD

Bonjour,

Je ne vois pas comment utiliser MOD ici...

Ceci fonctionne de 10 à 99

Code:
  =GAUCHE(TEXTE(A2;"##");1)*1+DROITE(TEXTE(A2;"##");1)*1

EDIT :et si tu le veux sous forme de texte :

Code:
=TEXTE( GAUCHE(TEXTE(A2;"##");1)*1 + DROITE(TEXTE(A2;"##");1);"##")


Cordialement
 
Dernière édition:

Yvjo1025

XLDnaute Nouveau
Re : Fonction MOD

Merci pour toutes vos réponses... rapides
@Mécano41
j'ai utilisé =SI(NBCAR($D$64)=2;GAUCHE($D$64;1)+DROITE($D$64;1);$D$64) qui fonctionne mais qui me semble fastidieux...

@phlaurent55
Ta formule me donne de drôle de choses...

@chris
Merci je comprends que le bug vient... de ma méconnaissance de la fonction MOD

@staple1600
Ta formule fonctionne jusqu'à 19 qui devient 10 au lieu de 1, 28 devient 10, 29 devient 11...

Si vous avez une suggestion, c'est volontiers
sinon je vais garder SI(NBCAR($D$64)=2;GAUCHE($D$64;1)+DROITE($D$64;1);$D$64) qui fonctionne mais qui me semble fastidieux...
 

eriiic

XLDnaute Barbatruc
Re : Fonction MOD

Bonjour,

sinon je vais garder SI(NBCAR($D$64)=2;GAUCHE($D$64;1)+DROITE($D$64;1); $D$64) qui fonctionne mais qui me semble fastidieux...
19 => 10, 28 => 10, 29 => 11, etc
C'est vraiment ce que tu voulais ??
Au lieu de mettre le résultat de MOD, tu aurais dû mettre ce que tu voulais obtenir...
Je ne comprend pas pourquoi la proposition de Chris ne te va pas.
Ou bien autre formulation et même résultat :
Code:
=MOD(A2-1;9)+1

eric
 

Staple1600

XLDnaute Barbatruc
Re : Fonction MOD

Bonjour eriic

Il semble s'agir d'une réduction théosophique.
(voir lien dans mon premier message)

NB
:Le petit plus de cette fonction c'est qu'elle somme aussi les lettres.(en prenant leurs valeurs ASCII)

EDITION
: Par commodité de lecture, je mets le code VBA de ma réponse dans le fil cité
Code:
Function Theosophique(pvarAnything)
'*auteur : harfang
' Calcule la « valeur thésophique » d'une chaîne de
' caractères, en tenant comptes des accentués.
'
    Dim intPos As Integer
    Dim strC As String
    Dim intA As Integer
    Dim intSum As Integer
   
    For intPos = 1 To Len(pvarAnything & "")
        strC = UCase(Mid$(pvarAnything, intPos, 1))
        Select Case strC
       
            ' cas particuliers:
            Case "Æ":   intSum = intSum + Theosophique("AE")
            Case "?":   intSum = intSum + Theosophique("OE")
            Case "ß":   intSum = intSum + Theosophique("SS")
           
            ' recherche alphabétique
            Case "A" To "ZZ"
                For intA = 1 To 26
                    If strC >= Chr(64 + intA) _
                    And strC < Chr(64 + intA) & "Z" Then
                        intSum = intSum + intA
                        Exit For
                    End If
                Next intA
               
            ' chiffres...
            Case "0" To "9"
                intSum = intSum + Val(strC)
               
        End Select
    Next intPos
    Theosophique = (intSum - 1) Mod 9 + 1

End Function
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Fonction MOD

Re

Yvjo1025
Si seuls les chiffres sont concernés, alors voici une version raccourci
Code:
Function Sommechiffres(pvarAnything)
'*auteur code d'origine: harfang
'modif staple - 7/13
Dim intPos%, intSum%, strC$
For intPos = 1 To Len(pvarAnything & "")
strC = Mid$(pvarAnything, intPos, 1)
    Select Case strC
    Case "0" To "9"
    intSum = intSum + Val(strC)
    End Select
    Next intPos
Sommechiffres = (intSum - 1) Mod 9 + 1
End Function
Mode d'emploi
Si en A1, tu as 29 alors en B1 inscrire: =SOMMECHIFFRES(A1)
et tu auras comme résultat: 2

==> Pour mettre une macro dans un classeur voir explications ici:
Créer ou supprimer une macro - Excel - Office.com
Aller à la rubrique:
Pour copier une partie d’une macro vous permettant de créer une autre macro
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Fonction MOD

Bonjour à tous.


Au hasard :​
Code:
=MOD(A2+8;9)+1


Bonne journée.


ROGER2327
#6685


Hunyadi 29 Gidouille 140 (hunyadi gras - Nom d’Ubu - fête Suprême Seconde)
25 Messidor An CCXXI, 4,0511h - pintade
2013-W28-6T09:43:21Z
 

eriiic

XLDnaute Barbatruc
Re : Fonction MOD

Re,

Bonjour eriic
Il semble s'agir d'une réduction théosophique.
(voir lien dans mon premier message)
Et bien, j'aurais appris un mot bien spécialisé aujourd'hui ;-)
S'il ne s'agit que de nombres, la proposition de Chris =SI(MOD(A2;9)=0;9;MOD(A2;9))ou la mienne =MOD(A2-1;9)+1 semblent correspondre au résultat voulu non ?

eric
 

Staple1600

XLDnaute Barbatruc
Re : Fonction MOD

Re

eriic
Oui tout comme celle de ROGER2327 (que je salue au passage)
(Mais comme j'avais souvenir d'avoir répondu jadis à une question de ce genre avec du VBA, j'ai cité le lien sans réfléchir à nouveau sur le problème posé... j'aurai du car la solution par formule est plus simple à mettre en œuvre notamment pour YvJo1025 ;))

EDITION: Ce qui me rassure (ou pas...) c'est que les gars de chez Billou étaient autant à la ramasse que moi ;)
Voila leur solution par formule matricielle
Formule à la somme des chiffres d'un nombre
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Fonction MOD

Suite...


En fait, toute formule​
Code:
=MOD(A2+k;9)+1
k est un multiple de 9 diminué de 1 doit convenir.​
Code:
=MOD(A2-1;9)+1
Code:
=MOD(A2+k;9)+8
Code:
=MOD(A2+k;9)+17
etc. renvoient le même résultat...​


ROGER2327
#6686


Hunyadi 29 Gidouille 140 (hunyadi gras - Nom d’Ubu - fête Suprême Seconde)
25 Messidor An CCXXI, 4,4017h - pintade
2013-W28-6T10:33:51Z
 

Discussions similaires

Statistiques des forums

Discussions
312 612
Messages
2 090 227
Membres
104 453
dernier inscrit
benjiii88