![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Rebonjour,
Je reviens pour un autre thème, Un jour on doit parcourir un trajet qui part d'un point A vers un autre point et retour en A Un autre jour, on part de A, on passe par plusieurs points pour arriver en un dernier point pour ce jour, soit F, le lendemain, on repart de F et à la fin du jour on revient en A. A chaque fois que l'on part ou que l'on arrive en A, une indemnité est allouée, c'est à dire que dans le premier cas on reçoit 2 indemnités, car le même jour on est passé 2 fois en A. Le deuxième jour, on ne reçoit qu'une seule indemnité car on n'est passé qu'une fois en A au départ et que l'on n'y est pas revenu. Je joins un fichier pour illustrer. Comment dois-je faire pour automatiser le nombre d'indemnités par jour, ou trajets en colonne C, en fonction des parcours inscrits dans la colonne B de mon fichier. Merci d'avance. [file name=Trajets.zip size=2998]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Trajets.zip[/file] |
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) | |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 420
|
BOnjour
en attendant les réponses par formule, une solution VBA par fonction personnalisée. Citation:
salut [file name=Trajets_20060527121253.zip size=8045]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Trajets_20060527121253.zip[/file] |
|
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint Philbert de Grand Lieu
Version Excel : Excel XP (PC)
Messages: 4 595
|
Bonjour Top Gun, Hervé,
Pour une fois que je trouve une formule : =NBCAR(A1)-NBCAR(SUBSTITUE(A1;'A';'')) Bon, y'a sûrement plus court... Bonne journée.
__________________
![]() A+ ![]() |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint Philbert de Grand Lieu
Version Excel : Excel XP (PC)
Messages: 4 595
|
Bonjour Henri,
Plus simple, je ne sais pas... Notre ami Top Gun ne souhaite peut-être pas éclater sa cellule en plusieurs colonnes... Seul lui nous le dira. Bon après-midi.
__________________
![]() A+ ![]() |
|
|
|
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
Rebonjour,
Je confirme que la suite A B C D se trouve dans la même cellule. En fait, j'avais simplifié le problème, car voici comment ça se présente en vrai: Les villes sont déterminées par des trigrammes, en particulier les aéroports. De ce fait, si on part de CDG ( Roissy CDG) pour aller à MRS (Marseille) et retour à CDG le même jour, ceci donne: CDG MRS CDG dans la même cellule. Dans ce cas il y a une indemnité de transport pour aller à CDG depuis le domicile et une autre le soir du même jour pour y revenir. Ceci en fait 2 le même jour. Mais si on fait CDG MRS BOD ( Bordeaux) et qu'on y reste le soir, il n'y aplus qu'une seule indemnité pour le matin puiqu'on ne revient pas au point de départ. Enfin, pour plus de précision, les groupes de trigrammes peuvent être plus longs CDG MRS BOD SXB BOD CDG avec SXB ( Strasbourg). Ces ensembles sont les résultats de concaténations pour information. J'espère que tout ceci est plus explicite. Merci d'avance. |
|
|
|
#7 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint Philbert de Grand Lieu
Version Excel : Excel XP (PC)
Messages: 4 595
|
Re,
Je crois qu'en modifiant la formule comme ça : =(NBCAR(A1)-NBCAR(SUBSTITUE(A1;'CDG';'')))/3 ça doit encore fonctionner. A condition qu'on parle de TRIgrammes effectivement. Le commandant jmps et son équipage vous souhaitent un bon séjour à CDG, BOR, SXB, MRS, ... B)
__________________
![]() A+ ![]() |
|
|
|
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
Bonjour à tous
On peut peut-être tricher en se disant que si sur un trajet la ville de départ et la ville d'arrivée sont les mêmes alors il y a deux indemnités, sinon une seule. Soit en B2 un trajet. En supposant que les villes sont séparées par au moins un espace : CHERCHE(' ';B2)-1) devrait donner la position de ce premier espace et donc donner la longueur de la première chaîne de caractères +1. Chaîne correspondante à la ville de départ. GAUCHE(B2;CHERCHE(' ';B2)-1) devrait extraire le nom de la ville de départ DROITE(B2;CHERCHE(' ';B2)-1) la ville d'arrivée Au bilan, si ces 2 chaînes sont identiques 2 sinon 1 (indemnités). =SI(GAUCHE(B2;CHERCHE(' ';B2)-1)=DROITE(B2;CHERCHE(' ';B2)-1);2;1) Au revoir à bientôt |
|
|
|
#10 (permalink) |
|
Guest
Messages: n/a
|
Ave,
''...=SI(GAUCHE(B2;CHERCHE(' ';B2)-1)=DROITE(B2;CHERCHE(' ';B2)-1);2;1)...'' Inconvénient possible... Exemple avec en B2 la chaîne suivante : A B C AA Ta formule va renvoyer 2 au lieu de 1 (départ et arrivée différents) AV [aaa] |
|
|
|
#11 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 126
|
Bonjour Tout le monde,
Juste pour le fun et parce que c'est Dimanche, fonction utilisant les 'REGULAR EXPRESSIONS'... Function compterCDG(parcours As String) ' la bibliothèque Microsoft VBSCRIPT REGULAR EXPRESSIONS 5.5 doit être activée Dim reg As VBScript_RegExp_55.RegExp Dim mot As VBScript_RegExp_55.Match Dim texte As VBScript_RegExp_55.MatchCollection Set reg = New VBScript_RegExp_55.RegExp reg.Global = True reg.Pattern = 'CDG' Set texte = reg.Execute(parcours) For Each mot In texte compterCDG = compterCDG + 1 Next mot End Function
__________________
A+ Michel_M |
|
|
|
|
|
#12 (permalink) |
|
Guest
Messages: n/a
|
Bonjour à tous
Juste un petit mot pour AV : Il n'y a pas d'inconvénient à essayer une formule, avec un test, ce qui permet de constater que ma formule prend en compte la longueur de la chaîne. Les 2 chaînes doivent donc impérativement être identique. A B C AA = 1 Au revoir, à bientôt |
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|