Test SI EXISTE sur de grands nombres
Fermé
CPOusaz
Messages postés
3
Date d'inscription
jeudi 4 juillet 2019
Statut
Membre
Dernière intervention
5 juillet 2019
-
4 juil. 2019 à 22:43
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 5 juil. 2019 à 23:09
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 5 juil. 2019 à 23:09
A voir également:
- Test SI EXISTE sur de grands nombres
- Test performance pc - Guide
- Test composant pc - Guide
- Test ram - Guide
- Test vitesse ssd - Guide
- Si ce site existait quelle adresse pourrait on saisir pix - Forum Webmastering
4 réponses
ccm81
Messages postés
10855
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 avril 2024
2 404
5 juil. 2019 à 11:02
5 juil. 2019 à 11:02
Bonjour à tous les trois
Comme dit eric, reste la solution macro
https://mon-partage.fr/f/xamIBHyw/
Cdlmnt
Comme dit eric, reste la solution macro
https://mon-partage.fr/f/xamIBHyw/
Cdlmnt
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
4 juil. 2019 à 23:17
4 juil. 2019 à 23:17
Bonjour,
excel ne garde une précision que sur 15 chiffres.
Au-delà tu es obliger de travailler avec des chaines. Met ta colonne au format texte.
eric
excel ne garde une précision que sur 15 chiffres.
Au-delà tu es obliger de travailler avec des chaines. Met ta colonne au format texte.
eric
CPOusaz
Messages postés
3
Date d'inscription
jeudi 4 juillet 2019
Statut
Membre
Dernière intervention
5 juillet 2019
5 juil. 2019 à 05:24
5 juil. 2019 à 05:24
Bonjour Eric,
J'ai oublié de préciser que toute ma feuille était déjà en texte…
et je viens de refaire le test pour contrôle. c'est idem.
- sélection feuille -> format texte
- Copie mes 9 valeurs en A, ma formule, mon nombre recherché (calcul = VRAI)
- changement de mon nombre (x+1) résultat VRAI…
j'ai pensé éclater mon nombre en 2
1x 11 caractères et 1x 10 caractères et faire une opération booléenne (AND) des 2 résultat…mais bon pas pratique… ???
J'ai oublié de préciser que toute ma feuille était déjà en texte…
et je viens de refaire le test pour contrôle. c'est idem.
- sélection feuille -> format texte
- Copie mes 9 valeurs en A, ma formule, mon nombre recherché (calcul = VRAI)
- changement de mon nombre (x+1) résultat VRAI…
j'ai pensé éclater mon nombre en 2
1x 11 caractères et 1x 10 caractères et faire une opération booléenne (AND) des 2 résultat…mais bon pas pratique… ???
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
5 juil. 2019 à 08:19
5 juil. 2019 à 08:19
Bonjour,
- changement de mon nombre (x+1) résultat VRAI
Tu ne peux pas faire ça.
Pour faire l'addition excel doit convertir ton nombre en numérique et tous les chiffres au-delà du 15e deviennent des 0.
Pas d'autre possibilité que de le couper en 2 (ou bien de faire une macro, mais pour si peu...)
eric
- changement de mon nombre (x+1) résultat VRAI
Tu ne peux pas faire ça.
Pour faire l'addition excel doit convertir ton nombre en numérique et tous les chiffres au-delà du 15e deviennent des 0.
Pas d'autre possibilité que de le couper en 2 (ou bien de faire une macro, mais pour si peu...)
eric
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 396
5 juil. 2019 à 08:50
5 juil. 2019 à 08:50
Bonjour
et salut Eric
à priori ça ne fonctionne qu'en format texte avec des valeurs entrées avec l'apostrophe(autant pour la base de données que pour la valeur cherchée)
mais dans tous les cas, ça ne pourra pas servir pour des calculs ultérieurs, les 4 derniers chiffres étant des 0 en cas de numérisation
crdlmnt
et salut Eric
à priori ça ne fonctionne qu'en format texte avec des valeurs entrées avec l'apostrophe(autant pour la base de données que pour la valeur cherchée)
mais dans tous les cas, ça ne pourra pas servir pour des calculs ultérieurs, les 4 derniers chiffres étant des 0 en cas de numérisation
crdlmnt
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
5 juil. 2019 à 23:09
5 juil. 2019 à 23:09
Re,
si tu n'as besoin que de savoir si la valeur existe dans la liste ça peut être considérablement plus rapide et moins gourmand :
https://www.cjoint.com/c/IGfvin65dRz
Et si tu as besoin du nombre tu pourrais faire en 2 temps.
Détecter ceux qui existent, appliquer la fonction de ccm uniquement à ceux-là.
Je ne suivrai plus ce post, départ pour la plage (pas excel, celle avec du sable) demain ;-)
eric
si tu n'as besoin que de savoir si la valeur existe dans la liste ça peut être considérablement plus rapide et moins gourmand :
Function exist(valeur As String, plage As Range) As Boolean Dim c As Range Set c = plage.Find(valeur, , xlValues, xlWhole) exist = Not c Is Nothing End Function
https://www.cjoint.com/c/IGfvin65dRz
Et si tu as besoin du nombre tu pourrais faire en 2 temps.
Détecter ceux qui existent, appliquer la fonction de ccm uniquement à ceux-là.
Je ne suivrai plus ce post, départ pour la plage (pas excel, celle avec du sable) demain ;-)
eric
5 juil. 2019 à 16:58
Je viens de tester cette solution de macro/module qui fonctionne très bien pour 2, 3 cellules et je me garde le module sous le coude ;-)
Merci CCM81
Mais quand j'essaye de l'appliquer à plusieurs cellules (>100) l'explose le processeur…
sur 100 cellules ça prend 5min, et plus de cellules ca plante Excel.
Une autre idée?
en colonne A (env. 12000 nombres)
1 100571906500021188112
2 100571910300020105501
3 100571911900020027301
4 100571911900078518701
5 100571915300020133701
6 100571918500098813501
7 100571932700062725901
8 100571955200020047401
9 100961800200074460501
…
en C (env. 3400 nombres)
1 100571911900020027301
2 100571911900020027371
3 40978000221377773Y001
4 305681991900034300201
5 305681991300012326701
6 302581000008016398076
7 302581000008016235200
8 302581000008016177606
9 100571915300020133701
…
E
1: =compte(C1;A:A)
2: =compte(C2;A:A)
3: =compte(C3;A:A)
…
3209: =compte(C3209;A:A)
nC_dernier: 2: =compte(nC_Dernier;A:A)
5 juil. 2019 à 18:04
Ne passe pas la colonne entiere mais une plage A2:A3000 par exemple