Tableau/Graphique Prévisionnel...
Changrenoir
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je viens aujourd'hui partager mon souci ici, car je commence à caler sérieusement de mon côté.
Voilà, j'ai fait une Base de Données Access pour mon patron, ou j'ai enregistré un portefeuille client, et pour chacun de ces clients, les commandes qu'ils ont passés et à quelle date. Ensuite, j'ai utilisé ces données pour établir un graphique croisé dynamique afin d'avoir un visuel sur la periodicité des commandes de clients. ( Leurs commandes ne sont pas forcément régulières, ça nous donne donc un indice sur la santé de l'entreprise )
Jusque ici, je m'en sors, même si c'est pas super beau.
Par contre, il vient de me demander de faire un nouveau truc, et là je suis LARGUÉ, même si je comprends le principe, je n'arrive pas à le reproduire sur Access.
Il s'agirait d'établir un planning prévisionnel, en se basant sur la fréquence des commandes déjà passées pour chacun des clients, qui nous indiquerais quelles entreprises serait susceptible de nous appeler pour une livraison , et à quelle dates. Je pense qu'il doit s'agir d'un équivalent de la fonction TENDANCE d'excel, sur Access, mais je ne trouve rien de précis malgré déjà trois bonnes heures de recherches ( Je ne dois pas utiliser les bons mots clefs :s)
Si jamais quelqu'un passant par là avait une bonne idée... Merci d'avance!
Je viens aujourd'hui partager mon souci ici, car je commence à caler sérieusement de mon côté.
Voilà, j'ai fait une Base de Données Access pour mon patron, ou j'ai enregistré un portefeuille client, et pour chacun de ces clients, les commandes qu'ils ont passés et à quelle date. Ensuite, j'ai utilisé ces données pour établir un graphique croisé dynamique afin d'avoir un visuel sur la periodicité des commandes de clients. ( Leurs commandes ne sont pas forcément régulières, ça nous donne donc un indice sur la santé de l'entreprise )
Jusque ici, je m'en sors, même si c'est pas super beau.
Par contre, il vient de me demander de faire un nouveau truc, et là je suis LARGUÉ, même si je comprends le principe, je n'arrive pas à le reproduire sur Access.
Il s'agirait d'établir un planning prévisionnel, en se basant sur la fréquence des commandes déjà passées pour chacun des clients, qui nous indiquerais quelles entreprises serait susceptible de nous appeler pour une livraison , et à quelle dates. Je pense qu'il doit s'agir d'un équivalent de la fonction TENDANCE d'excel, sur Access, mais je ne trouve rien de précis malgré déjà trois bonnes heures de recherches ( Je ne dois pas utiliser les bons mots clefs :s)
Si jamais quelqu'un passant par là avait une bonne idée... Merci d'avance!
A voir également:
- Tableau/Graphique Prévisionnel...
- Tableau word - Guide
- Tableau ascii - Guide
- Changer carte graphique - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Tu pourrais calculer pour chaque client le délai moyen entre ses commandes (ou ses N dernières commandes, ou ses commandes des N derniers mois), et ensuite, pour chaque client, ajouter ce délai à la date de sa dernière commande. Cela te donnerait la date "probable" de sa prochaine commande.
Bonjour!
Merci beaucoup pour ta réponse yg_be, je t'avoue que maintenant que tu le dis ça me parait évident, je vais chercher comment mettre ça en place dans access.
Eventuellement si tu as un lien vers un tuto ou une idée, ces derniers temps ce que je fait est assez laborieux avec la crève...
Merci encore!
Merci beaucoup pour ta réponse yg_be, je t'avoue que maintenant que tu le dis ça me parait évident, je vais chercher comment mettre ça en place dans access.
Eventuellement si tu as un lien vers un tuto ou une idée, ces derniers temps ce que je fait est assez laborieux avec la crève...
Merci encore!
Tant que j'y suis, je te montre comment j'ai structuré ma base; et ce que je veux faire exactement:
http://www.cjoint.com/c/FKrjvOX2TG5 ( Un screen des relations et de la compo des deux tables )
J'ai une table entreprises, avec leurs nom, adresse, etc, et une "RamLiv" parce que ces entreprises, on les livres et on récupère des choses chez eux.
J'ai déjà d'enregistré la liste de tous nos passages dans "RamLiv", avec une case à cocher si on livre, et si la case est cochée, alors je rentre le nombre de livraisons effectuées. J'en ai une autre pour ce qu'on récupère, avec si oui ou non quelque chose à été récupéré, et si oui combien de fois.
Je suis pas sûr que ce soit si simple que ça avec Access, parce que tous mes enregistrements sont dans la table RamLiv, et que j'ai besoin qu'Access me calcule la différence de passage entre plusieurs dates (Au moins deux ou trois si possible... Sans pour autant que ça bug salement si je n'ai qu'une seule date (Pour les nouveaux clients ) afin d'en faire une moyenne, pour avoir une petite idée de la moyenne du nombre de jours avant le prochain passage. Bien évidemment, c'est entreprise par entreprises, vu que c'est pour faire du prévisionnel...
Voilà, si quelqu'un y voit quelque chose...
http://www.cjoint.com/c/FKrjvOX2TG5 ( Un screen des relations et de la compo des deux tables )
J'ai une table entreprises, avec leurs nom, adresse, etc, et une "RamLiv" parce que ces entreprises, on les livres et on récupère des choses chez eux.
J'ai déjà d'enregistré la liste de tous nos passages dans "RamLiv", avec une case à cocher si on livre, et si la case est cochée, alors je rentre le nombre de livraisons effectuées. J'en ai une autre pour ce qu'on récupère, avec si oui ou non quelque chose à été récupéré, et si oui combien de fois.
Je suis pas sûr que ce soit si simple que ça avec Access, parce que tous mes enregistrements sont dans la table RamLiv, et que j'ai besoin qu'Access me calcule la différence de passage entre plusieurs dates (Au moins deux ou trois si possible... Sans pour autant que ça bug salement si je n'ai qu'une seule date (Pour les nouveaux clients ) afin d'en faire une moyenne, pour avoir une petite idée de la moyenne du nombre de jours avant le prochain passage. Bien évidemment, c'est entreprise par entreprises, vu que c'est pour faire du prévisionnel...
Voilà, si quelqu'un y voit quelque chose...
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Pour calculer, pour chaque entreprise, le délai moyen entre ses commandes, tu recherches :
- la date la plus ancienne, date1
- la date la plus récente, date2
- le nombre de commandes, ncomm
La moyenne c'est, si ncomm>1, (date2-date1)/(ncomm-1)
- la date la plus ancienne, date1
- la date la plus récente, date2
- le nombre de commandes, ncomm
La moyenne c'est, si ncomm>1, (date2-date1)/(ncomm-1)
Bonjour!
C'est pas tant faire une moyenne qui me pose problème, mais plutôt comment faire en sorte qu'access me la fasse ressortir.
Là toutes mes dates sont dans une même colonne... ( Ce qui est logique, car sinon ça impliquerais une nouvelle colonne à chaque livraisons, ou bien de les enregistrer à chaque fois dans une nouvelle table. )
Je ne sais même pas si c'est vraiment possible en fait :s
C'est pas tant faire une moyenne qui me pose problème, mais plutôt comment faire en sorte qu'access me la fasse ressortir.
Là toutes mes dates sont dans une même colonne... ( Ce qui est logique, car sinon ça impliquerais une nouvelle colonne à chaque livraisons, ou bien de les enregistrer à chaque fois dans une nouvelle table. )
Je ne sais même pas si c'est vraiment possible en fait :s
Suggestion de requête donnant une estimation de la date des prochaines commandes (table comm avec deux colonnes, entreprise et date_comm) :
SELECT entreprise, iif (count(date_comm)>1,max(date_comm)+( max(comm.date_comm)-min(date_comm))/(count(date_comm)-1),0) as prochaine_date FROM comm group by entreprise;
Salut yg_be!
Merci pour les lignes de code, mais le problème c'est que ça ne peut pas coller à la structure que j'ai déjà organisé dans ma base de données:
Tu me demande de crééer une nouvelle table pour y coller ta requête, or comme montré dans mon document Cijoint, plus haut; je peux pas faire une table "Table comm" avec une ligne "Entreprises_nom" et une ligne "RamLiv_date" correspondant à ce que tu as écrit ( ça corresponds aux nominations déjà faites au sein de ma BDD. )
J'ai créé une requete depuis ma table "RamLiv" directement, ou j'ai collé ce code, directement modifié de celui que tu m'as fait :
SELECT RamLiv.[RamLiv_date], RamLiv.[Entreprises_nom],
IIf(count(RamLiv_date)>1,max(RamLiv_date)+(max(date.RamLiv_date)-min(RamLiv_date))/(count(RamLiv_date)-1),0) AS prochaine_date
FROM comm
GROUP BY Entreprises_nom;
ça c'est le code de ma requete. Il s'avère que déjà, j'arrive à l'enregistrer ( donc pas d'erreurs de syntaxe ) mais elle ne fonctionne pas plus que ça.
Quand je l'ouvre, elle me demande une date, ensuite un nom d'entreprise, ensuite une autre date... Ensuite ça m'ouvre une page avec les trois colonnes, vides.
L'idée serait que la requete aille chercher, pour une entreprise donnée, toutes les Ramasses qu'elle a eu, que la requete calcule le délais moyen entre chaque ramasses puis qu'elle calcule, à partir de la ramasse la plus récente, quelles devraient être les dates des suivantes. Le fait qu'elle puisse faire ressortir des dates antécédentes à celle du jour n'est pas bien important, en effet, ça me permettrait d'avoir une idée des entreprises chez lesquelles nous devrons appeler afin de savoir pourquoi nous n'avons plus de commandes
J'ai pourtant l'impression d'être sur la bonne voie... Je ne comprends pas.
Merci pour les lignes de code, mais le problème c'est que ça ne peut pas coller à la structure que j'ai déjà organisé dans ma base de données:
Tu me demande de crééer une nouvelle table pour y coller ta requête, or comme montré dans mon document Cijoint, plus haut; je peux pas faire une table "Table comm" avec une ligne "Entreprises_nom" et une ligne "RamLiv_date" correspondant à ce que tu as écrit ( ça corresponds aux nominations déjà faites au sein de ma BDD. )
J'ai créé une requete depuis ma table "RamLiv" directement, ou j'ai collé ce code, directement modifié de celui que tu m'as fait :
SELECT RamLiv.[RamLiv_date], RamLiv.[Entreprises_nom],
IIf(count(RamLiv_date)>1,max(RamLiv_date)+(max(date.RamLiv_date)-min(RamLiv_date))/(count(RamLiv_date)-1),0) AS prochaine_date
FROM comm
GROUP BY Entreprises_nom;
ça c'est le code de ma requete. Il s'avère que déjà, j'arrive à l'enregistrer ( donc pas d'erreurs de syntaxe ) mais elle ne fonctionne pas plus que ça.
Quand je l'ouvre, elle me demande une date, ensuite un nom d'entreprise, ensuite une autre date... Ensuite ça m'ouvre une page avec les trois colonnes, vides.
L'idée serait que la requete aille chercher, pour une entreprise donnée, toutes les Ramasses qu'elle a eu, que la requete calcule le délais moyen entre chaque ramasses puis qu'elle calcule, à partir de la ramasse la plus récente, quelles devraient être les dates des suivantes. Le fait qu'elle puisse faire ressortir des dates antécédentes à celle du jour n'est pas bien important, en effet, ça me permettrait d'avoir une idée des entreprises chez lesquelles nous devrons appeler afin de savoir pourquoi nous n'avons plus de commandes
J'ai pourtant l'impression d'être sur la bonne voie... Je ne comprends pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Mon exemple de requête était fait pour une table s'appelant "comm".
Je propose ceci :
Je propose ceci :
SELECT Entreprises_nom, iif (count(RamLiv_date)>1,max(RamLiv_date)+( max(RamLiv_date)-min(RamLiv_date))/(count(RamLiv_date)-1),0) as prochaine_date FROM RamLiv group by Entreprises_nom;
Ta question, c'est pourquoi ceci ne marche pas?
Je ne l'ai pas testé, mais je vois deux choses à corriger :
- il faut mettre le nom de ta table après FROM (donc pas FROM comm)
- tu ne peux pas mettre RamLiv.[RamLiv_date] dans le SELECT, c'est en contradiction avec la demande d'avoir un seul résultat par entreprise (comme demandé dans le GROUP BY). Qu'essayes-tu d'obtenir en mettant cela? Il y a sans doute une autre technique qui permet d'y arriver.
SELECT RamLiv.[RamLiv_date], RamLiv.[Entreprises_nom], IIf(count(RamLiv_date)>1,max(RamLiv_date)+(max(date.RamLiv_date)-min(RamLiv_date))/(count(RamLiv_date)-1),0) AS prochaine_date FROM comm GROUP BY Entreprises_nom;
Je ne l'ai pas testé, mais je vois deux choses à corriger :
- il faut mettre le nom de ta table après FROM (donc pas FROM comm)
- tu ne peux pas mettre RamLiv.[RamLiv_date] dans le SELECT, c'est en contradiction avec la demande d'avoir un seul résultat par entreprise (comme demandé dans le GROUP BY). Qu'essayes-tu d'obtenir en mettant cela? Il y a sans doute une autre technique qui permet d'y arriver.