Excel et les bases de données
Fermé
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
-
19 juil. 2012 à 09:58
julien.creton Messages postés 11 Date d'inscription jeudi 19 juillet 2012 Statut Membre Dernière intervention 20 juillet 2012 - 20 juil. 2012 à 12:03
julien.creton Messages postés 11 Date d'inscription jeudi 19 juillet 2012 Statut Membre Dernière intervention 20 juillet 2012 - 20 juil. 2012 à 12:03
A voir également:
- Excel et les bases de données
- Si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Formules excel de base - Guide
- Effacer les données de navigation - Guide
9 réponses
Raymond PENTIER
Messages postés
58719
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
17 233
19 juil. 2012 à 17:37
19 juil. 2012 à 17:37
Je peux te proposer ceci :
Dans la feuille "tableau" on insère une liste déroulante de cellule, par exemple en I3, pour choisir un code ISO de la colonne A.
Puis on utilise la fonction RECHERCHEV pour afficher le diamètre en J4 (cellule qu'on nommera "diam"), l'épaisseur en J5 (cellule nommée "ép") et la qualité en J6 (nommée "qu") ; ce qui permet d'écrire dans toute la colonne H de "base de donnée" la formule
=SI(ET(C2=qu;D2<=ép;E2>=ép;F2<=diam;G2>=diam);A:A&" ";"")
et dans la cellule I3 la formule =I1&H2, à recopier vers le bas pour obtenir les résultats cumulés successifs ; le résultat final est dans la dernière cellule du tableau (et on peut éventuellement la répercuter dans le tableau, par exemple en I7).
https://www.cjoint.com/?BGtrKBmxoTW
Mais il y a certainement mieux comme méthode ...
Cordialement.
Dans la feuille "tableau" on insère une liste déroulante de cellule, par exemple en I3, pour choisir un code ISO de la colonne A.
Puis on utilise la fonction RECHERCHEV pour afficher le diamètre en J4 (cellule qu'on nommera "diam"), l'épaisseur en J5 (cellule nommée "ép") et la qualité en J6 (nommée "qu") ; ce qui permet d'écrire dans toute la colonne H de "base de donnée" la formule
=SI(ET(C2=qu;D2<=ép;E2>=ép;F2<=diam;G2>=diam);A:A&" ";"")
et dans la cellule I3 la formule =I1&H2, à recopier vers le bas pour obtenir les résultats cumulés successifs ; le résultat final est dans la dernière cellule du tableau (et on peut éventuellement la répercuter dans le tableau, par exemple en I7).
https://www.cjoint.com/?BGtrKBmxoTW
Mais il y a certainement mieux comme méthode ...
Cordialement.
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 423
20 juil. 2012 à 11:38
20 juil. 2012 à 11:38
une version plus simple qui s'utilise comme une fonction excel dans la feuille tableau
https://www.cjoint.com/?BGulK65w6FO
https://www.cjoint.com/?BGulK65w6FO
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
20 juil. 2012 à 12:03
20 juil. 2012 à 12:03
Ah oui pas mal ! c'est exactement ça !
Un grand merci à Raymond PENTIER et CCM81 pour votre participation et votre talent excelesque !
Je vais gagner un temps de malade :D
Un grand merci à Raymond PENTIER et CCM81 pour votre participation et votre talent excelesque !
Je vais gagner un temps de malade :D
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 423
19 juil. 2012 à 10:34
19 juil. 2012 à 10:34
bonjour
pour qu'on puisse voir comment s'organisent tes données,
peux tu envoyer une (petite) partie de ton fichier sur cjoint.com au format excel 2003 et joindre le lien obtenu à ton prochain message
bonne suite
pour qu'on puisse voir comment s'organisent tes données,
peux tu envoyer une (petite) partie de ton fichier sur cjoint.com au format excel 2003 et joindre le lien obtenu à ton prochain message
bonne suite
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
19 juil. 2012 à 15:57
19 juil. 2012 à 15:57
Voici le lien cjoint.com : https://www.cjoint.com/?BGtp32vr65e
J'ai pris la première ligne de mon tableau en référence.
Ensuite j'ai surligné en jaune les résultat que la fonction devra donner.
Merci d'avance
J'ai pris la première ligne de mon tableau en référence.
Ensuite j'ai surligné en jaune les résultat que la fonction devra donner.
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raymond PENTIER
Messages postés
58719
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
17 233
19 juil. 2012 à 16:08
19 juil. 2012 à 16:08
... et à quel endroit doit-on placer cette formule ?
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
19 juil. 2012 à 16:10
19 juil. 2012 à 16:10
Sur la feuille bureautique, en ajoutant une colonne donnant le(s) résultats
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
19 juil. 2012 à 16:12
19 juil. 2012 à 16:12
Feuille "TABLEAU" pardon
Raymond PENTIER
Messages postés
58719
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
17 233
19 juil. 2012 à 16:50
19 juil. 2012 à 16:50
Dommage : il aurait été plus facile de faire un pointage dans la base de données.
Je te signale une difficulté que j'ai rencontrée en travaillant sur ton fichier : Dans la base de données, tu as utilisé des nombres pour indiquer la qualité ; mais dans le tableau, tu as rédigé la formule =SI(STXT(F2;1;1)="3";"3";"2") qui donne comme résultat un caractère en format texte !
Tu aurais dû saisir =SI(STXT(F2;1;1)="3";3;2).
En effet, quand on essaie de comparer la colonne C de la base de données et la colonne G du tableau, excel ne considère pas que le nombre 3 est équivalent au caractère "3".
Je te signale une difficulté que j'ai rencontrée en travaillant sur ton fichier : Dans la base de données, tu as utilisé des nombres pour indiquer la qualité ; mais dans le tableau, tu as rédigé la formule =SI(STXT(F2;1;1)="3";"3";"2") qui donne comme résultat un caractère en format texte !
Tu aurais dû saisir =SI(STXT(F2;1;1)="3";3;2).
En effet, quand on essaie de comparer la colonne C de la base de données et la colonne G du tableau, excel ne considère pas que le nombre 3 est équivalent au caractère "3".
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
19 juil. 2012 à 16:58
19 juil. 2012 à 16:58
Merci pour la réactivité !
Concernant le pointage dans la base de données, je peux m'organiser différemment, si je dois travailler depuis la base de données, et m'éviter une comparaison "à la main" sur 40 000 lignes ...
Concernant le problème de caractère, MERCI BEAUCOUP je vais faire la modification car utile dans tout les cas !
Merci déjà pour ces différents retour !
Concernant le pointage dans la base de données, je peux m'organiser différemment, si je dois travailler depuis la base de données, et m'éviter une comparaison "à la main" sur 40 000 lignes ...
Concernant le problème de caractère, MERCI BEAUCOUP je vais faire la modification car utile dans tout les cas !
Merci déjà pour ces différents retour !
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 423
19 juil. 2012 à 17:04
19 juil. 2012 à 17:04
bonjour julien, bonjour raymond
et si Spec commence obligatoirement par 2 ou par 3, pourquoi pas CNUM(GAUCHE($F2;1))
bonne suite
et si Spec commence obligatoirement par 2 ou par 3, pourquoi pas CNUM(GAUCHE($F2;1))
bonne suite
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
19 juil. 2012 à 17:13
19 juil. 2012 à 17:13
Oui aussi ! cette formule fonctionne afin de récupérer un nombre.
Merci pour la contribution
Merci pour la contribution
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 423
Modifié par ccm81 le 19/07/2012 à 18:48
Modifié par ccm81 le 19/07/2012 à 18:48
une tentative avec macro (si ça ne te gêne pas)
https://www.cjoint.com/?0Gtr7kQrw30
pour 40000 lignes ça risque d'être long, mais on doit pouvoir améliorer
bonne suite
https://www.cjoint.com/?0Gtr7kQrw30
pour 40000 lignes ça risque d'être long, mais on doit pouvoir améliorer
bonne suite
julien.creton
Messages postés
11
Date d'inscription
jeudi 19 juillet 2012
Statut
Membre
Dernière intervention
20 juillet 2012
19 juil. 2012 à 18:17
19 juil. 2012 à 18:17
Je comprends pas comment faire fonctionner la macro ?
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 423
19 juil. 2012 à 18:19
19 juil. 2012 à 18:19
tu entres les 3 données en J2:L2 puis clic sur le bouton
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 423
Modifié par ccm81 le 19/07/2012 à 18:45
Modifié par ccm81 le 19/07/2012 à 18:45
une version nettement plus rapide
https://www.cjoint.com/?0GtsKdkgXBJ
une question bête : as tu accepté l'exécution des macros au démarrage du classeur?
bonne suite
https://www.cjoint.com/?0GtsKdkgXBJ
une question bête : as tu accepté l'exécution des macros au démarrage du classeur?
bonne suite
19 juil. 2012 à 17:43
Il y a peut être une possibilité d'améliorer la méthode, mais elle me sauve déjà bien la vie :D
Je vois comment je peux l'adapter sans passer par une liste déroulante !
mais merci encore
19 juil. 2012 à 17:54
La liste déroulante marche pour un 50aine de ligne maximum mais une liste à 40 000 choix ça commence à être un peu chaud :D
19 juil. 2012 à 19:39
Concernant la liste déroulante, son avantage principal est d'éviter les erreurs d'orthographe (donc de saisie) ; on peut contourner la limitation de nombre d'items en insérant des listes déroulantes en cascade ; mais j'attendais de voir si mon principe de travail pouvait t'intéresser ...