Comment calculer légalité d'un chiffre ou an texte

Fermé
lhoussine2010 Messages postés 3 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 6 septembre 2014 - 5 sept. 2014 à 13:41
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 - 6 sept. 2014 à 13:21
Bonjour,

J'ai fais un tableau sur excel, et je voudrais savoir comment calculer légalité d'un chiffre ou an texte
par exemple :

12345
12346
72346

donc 12345/12346 sont la même a 4 chiffre(1,2,3,4)
et 12346/72346 sont la même a 4 chiffre(2,3,4,6)
merci
A voir également:

6 réponses

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
6 sept. 2014 à 12:45
Bonjour

Si j'ai bien compris ce que tu recherches, possibilité avec une fonction personnalisée :

ALT + F11 pour ouvrir l'éditeur VBA

Onglet Insertion Module puis copier et coller la macro suivante:

Function egalite(a As String, b As String)
egal = 0
l1 = Len(a)
l2 = Len(b)
If l1 < l2 Then lg = l1 Else lg = l2

For n = 1 To lg
If Mid(a, n, 1) = Mid(b, n, 1) Then egal = egal + 1
Next

egalite = egal

End Function

Fermer l'éditeur

La fonction s'utilise après dans les feuilles comme toute les autres fonctions , ainsi la formule =egalite(A1;A2) donnera le nombre de caratères identiques et situés à la même place dans les chaines en A1 et A2

Cdlmnt
1
HiTech4ever Messages postés 98 Date d'inscription mardi 2 septembre 2014 Statut Membre Dernière intervention 18 décembre 2016 20
5 sept. 2014 à 14:22
Ce que tu veux faire n'est pas claire ! ! !

il y a déjà la fonction :
=NBCAR() : renvoie le nombre de caractères contenus dans une chaîne de texte.


0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
5 sept. 2014 à 15:10
bonjour lhoussine2010

Personnellement, je ne vois pas de solutions simples.

J'en vois une:

1 Compter le nombre de caractères dans tes chaîne, si ce nombre varie.
2 Il faut extraire les caractères de tes chaînes. (STXT)
3 Les trier ces caractères par ordre croissant.
4 Les concaténer (Les 4 premières d'après ton exemple)
5 Les trier par ordre croisant et les comparer sans oublier d'y joindre les références de départ.

Maintenant si c'est répétitif, ou que le volume à traiter en important passer à une macro


Cordialement
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 5/09/2014 à 15:23
Bonjour,

que fait on si par exemple

123456/123496 ?
ou
098765/508973 ?
Ou
27456989/122988 ?

et avec + de 6 caractères : toujours égalité si 4 ?

Michel
0

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

Posez votre question
lhoussine2010 Messages postés 3 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 6 septembre 2014
6 sept. 2014 à 11:23
pour 123456/123496 ? le résulta recherche égale a 5
ou
pour 098765/508973 ? le résulta recherche égale a 1
Ou
pour 27456989/122988 ? le résulta recherche égale a 2

ces le calcule des égalité des chiffres avec le classement.
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
6 sept. 2014 à 11:35
Bonjour

Je ne comprend pas bien ta réponse à michel
098765/508973 => 3 ?
0
lhoussine2010 Messages postés 3 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 6 septembre 2014
6 sept. 2014 à 11:52
on légalité on 3éme chiffre (8) donc résultat égale a 1
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
6 sept. 2014 à 13:21
Bonjour

Avec une formule pour 6 chiffres dans les nombres à comparer

=SI(STXT($A$1;1;1)=STXT($B$1;1;1);1;0)+SI(STXT($A$1;2;1)=STXT($B$1;2;1);1;0)+SI(STXT($A$1;3;1)=STXT($B$1;3;1);1;0)+SI(STXT($A$1;4;1)=STXT($B$1;4;1);1;0)+SI(STXT($A$1;5;1)=STXT($B$1;5;1);1;0)+SI(STXT($A$1;6;1)=STXT($B$1;6;1);1;0)
0