derminer la durée correspondant à un élément spécifique d'un tableau

0

Salut la famille, j'ai besoin de votre aide pour mon tableau.

Voici je dispose de 5 vehicules de location et j'aimerais connaitre la durée de la location pour un vehicule donné et pour cela j'ai un tableau dans lequel j'ai consigné les dates de location de chaque vehicule. Dans mon tableau de recap je veux pouvoir afficher le temps d'utilisation de chaque vehicule.

voici en piece jointe le tableau en question

fichier joint

Merci de m'aider svp

matsniper Posté le 18 janvier 2018, 16:28
par matsniper
Répondre
0

Bonsoir,

Si j'ai bien compris, tes véhicules sont loués pour la journée entière et tu désires connaître, par marque de véhicule,  la date de la première location, la date de la dernière location et le nombre de jours de location durant une période donnée (ici du 1/1/2016 au 25/2/2016).  Le nombre total de location étant de 53 (ligne 10 à 62). La même marque revenant plusieurs fois durant la période.  Ta formule qui faisait la différence entre les 2 dates ne pouvait naturellement pas convenir. 

Je te propose la solution suivante :

https://www.cjoint.com/c/HAtbmiAoIdj

Si la base de données est plus grande dans la réalité, il suffit d'adapter les formules aux nombres de lignes nécessaires.

Dis moi si cela te convient et si tu as besoin d'explications pour les formules.

Attention : la formule pour calculer la dernière date de location est une formule matricielle (à introduire en appuyant en même temps sur CTRL / MAJ et ENTER.  Les {} de début et de fin sont introduites automatiquement par Excel (donc ne pas mettre soi même dans la formule)

A+

Chris

CHRIS Posté le 19 janvier 2018, 02:25
par CHRIS
  • Merci beaucoup Chris, ça marche à merveille tu es un vria champion. Mais je dois le reconnaitre les formules qu tu as utilisées me semblent difficiles a reproduire mais je vais m'exercer à leur maitrise. Cependant j'ai deux questions: 1. est ce qu'on pouvait utiliser les fonctions MIN et MAX pour determiner les 1ères et dernière dates? si oui peux tu me donner la formulation? 2. Par curiosité j'ai essayé d'utiliser la fonction PETITE.VALEUR pour déterminer la 1ère date d'utilisation comme tu l'as fait pour la dernière date et ça m'a ramener comme resultat 00/01/1900 ( PETITE.VALEUR(($D$10:$D$62)*($C$10:$C$62=G10);1) j'ai bien valider avec CTRL/MAJ et ENTER. Peux tu me dire pourquoi ça ne peut pas marcher? Merci – matsniper 19 janvier 2018, 10:27
0

Bonjour Matsniper,

Content que cela convienne.

Comme tu commences à le savoir, dans Excel il y a souvent plusieurs solutions.

Je te joins ci dessous une altenative :

https://www.cjoint.com/c/HAukgjlgjMj

Cela répond déjà en partie à tes questions.

La grande différence qu'il y a entre MIN / MAX et PETITE.VALEUR / GRANDE.VALEUR est que dans la première alternative on cherche toujours soit la plus petite, soit la plus grande des valeurs dans une plage alors que dans la deuxième alternative, il y a un paramètre supplémentaire qui détermine la "k" valeur que l'on désire obtenir (la première plus petite ou la deuxième ou la troisième...)

Dans le cas de la dernière date, il n'y a pas de problème pour utiliser l'une ou l'autre des fonctions puisque nous cherchons la plus grande des valeurs

Par contre, et ceci répondra à ta deuxième question sur le fait que la formule ne fonctionne pas, dans le cas de la plus petite valeur, nous sommes devant un souci : la formule matricielle projette une plage virtuelle qui contient toutes les dates ensuite elle teste si dans l'autre plage nous trouvons le nom du véhicule recherché (tu remarqueras que les 2 plages doivent impérativement avoir les mêmes dimensions). La réponse est une plage qui contient FAUX ou VRAI en fonction que le nom n'est pas ou est le bon nom.  Dans Excel FAUX=0 et VRAI=1.  La combinaison des 2 plages (la multiplication de la plage 1 avec la plage 2 donne une nouvelle plage qui contiendra les dates correspondantes au véhicule recherché (*1) et 0 pour les autres véhicules (*0)).  Donc nous obtenons, pour la recherche de la plus petite des valeurs, une plage contenant quelques dates et beaucoup de 0.

Si tu demandes la MIN valeur et bien Excel ne peut te répondre que 0 ce qui est normal mais ne nous aide pas.

Par contre, avec PETITE.VALEUR, il y a moyen, en compliquant un peu la formule, de demander la "k" plus petite valeur.  Comment trouver cela : nous devons calculer le nombre 0 afin de les neutraliser.  Pour cela on compte le nombre des autres véhicules dans la plage et on ajoute 1 pour trouver la "K" plus petite valeur.

=PETITE.VALEUR(($D$10:$D$62)*($C$10:$C$62=$G10);NB.SI($C$10:$C$62;"<>"&$G10)+1)

Dans ton essai, tu as demandés la première plus petite valeur et donc tu as obtenu 0 et comme la cellule est formatée en "date" cela donne 00/01/1900

Comme c'était un peu plus compliqué, j'ai opté pour un autre système qui marche aussi bien mais avec un inconvénient c'est qu'il faut impérativement que les dates soient triées par ordre croissant.  J'ai supposé que dans ton application, c'était logique d'être par ordre croissant.  Toutefois, si tu penses que tu sera amené à ne pas respecter cet ordre, il vaut mieux utiliser la deuxième proposition qui, elle, marche toujours.

Je t'invite pour matérialiser ma réponse de te positionner dans une des cellules de la plage et, sous l'onglet "Formules", cliquer sur "Evaluation formule".   Tu verra apparaître un petit tableau qui te montre l'évolution de la formule au fur et à mesure de son exécution (en cliquant sur "Evaluer").

Le tableau est petit et il faut manipuler l'"ascenseur" pour voir comment l'évolution se produit.

Cet outil est très pratique pour chercher les erreurs dans une formule compliquée.

Voilà j'espère avoir été complet et surtout clair.  Si toutefois cela reste confus, n'hésites pas à me revenir

Bon courage

Chris

CHRIS Posté le 20 janvier 2018, 11:30
par CHRIS

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :