Le défi du jour... Formule ou VBA ?

Hello les grosses têtes,

Dans le cadre de mes aventures palpitantes avec les bases de données structurés je cherche une formule capable d'indexer les enregistrements suivants :

image

Il s'agit d'une série de dates ne comportant pas de samedi, Dimanche ni jours fériés.

Aucune série de dates identiques ne peut comporter plus de 9 "jumeaux"

La première ici le 18/7 portera d'office l'index des dizaines 1... Et 1 comme unité car ça sera la première donc la date de référence,

Le deuxième 18/7 a toujours un index des dizaine à 1 et le N° 2 puisque c'est le même jour donc : 12,

Si d'aventure il devait s'ajouter un troisième 18/7 il porterait le numéro d'index : 13

La date suivante est le lendemain elle possède donc le N° des dizaines 2 et 1 pour les unités car c'est la première enregistrée : Elle s'incrémente de 1 dizaine par rapport à la veille.

Les autres suivent la même logique...

A noter que si pour quelque obscure raison, il n'y avait rien le 19/7 (C'est FêteNat en Galopinie... !) ça ne changerait rien à la numérotation des jours suivants puisque les dizaines (et centaines) sont attribuées par différence avec le premier jour.

De même les 23/ et 24/7 étant des Samedi et Dimanche , la série des 60,70 est absente et le Lundi 25 porte l'index 81

Les jours suivants 91, 92 suivent la même logique puis 101, 102...

Une solution par formule (non matricielle) m'arrangerait bien car je sous-traiterai bien ça au tableau structuré pour calculer cet index...

...Car il faut compter qu'à tout moment peut venir s'insérer un autre 19/7 par exemple qui devra porter le N° 25 (C'est ce qui conditionne toute cette problématique d'indexation zarbi ! )

Je sens que c'est jour de fête pour les formuleux sur ce coup !

A+

Bonsoir galopin01,

un essai avec la plage de Dates =H9:H28 :

Pour le premier iD en G10 : 11 (à défaut de trouver mieux)

à partir de G11 : =SI(H11=H10;G10+1;(ARRONDI(G10/10;0)+H11-H10)*10+1) et tirer

A+

Bonjour,

Bel effort ! Mais ça décroche à partir du 8 Aout :

4pb.xlsm (18.45 Ko)

A+

Salut Galopin,

Bravo AlgoPlus ! Sans ton travail, si rapide, je serais parti sur VBA.
Juste une question de MODULO, le 8/8/2002 étant la seule date répétée au moins 5 X..
Formule placée en [F3].

=SI(B3=B2;F2+1;SI(MOD(F2;10)<5;(ARRONDI(F2/10;0)+B3-B2)*10+1;(ENT(F2/10)+B3-B2)*10+1))

ou ainsi (en [G3]...)

=SI(B3=B2;G2+1;((ARRONDI(G2/10;0)+B3-B2)*10+1)-SI(MOD(G2;10)<5;0;10))


A+

EDIT : Finalement j'y suis arrivé avec la deuxième formule.

Champion !

Merci

Oh, je n'y suis pour rien : c'est Algo qui a tout fait !

2pb.xlsm (11.68 Ko)


A+

Bonsoir,

Sauf si je suis complètement à côté de la plaque ? Sur l'exemple du dernier fichier de Galopin01.

=B2-$B$2+1&NB.SI($B$2:B2;B2)

On peut même le mettre dès la 1ère ligne ;)

Bon ben finalement ça marche pas je n'arrive pas à le placer colonne A et j'ai encore plus d'anomalies.

Quelqu'un peut-il essayer de me le résoudre sur la colonne A parce que je suis vraiment un sous-doué en formule.

Pas testé encore Joyeux Noel...

EDIT : And the Winner is... Joyeux Noël ça marche même si bien que le tableau structuré l'accepte comme formule de TS sans balise d'erreur !

Bravo !

A+

Tu devrais ;)

6galopin.xlsm (13.33 Ko)

Très bien.. Oui j'ai vu et répondu entre temps et modifié ma dernière réponse. Encore bravo !

Merci à tous.

A+

Woaw !
Bon, ben, on va se rhabiller...


A+

Faudrait faire des défis formules plus souvent ...

Je me sens plus à l'aise que sur les défis VBA où vous me perdez dès la 1ère ligne de code ;)

Bonsoir à tous,

je venais rectifier ma proposition en remplaçant la fonction ARRONDI par ARRONDI.INF, ... mais ... trop tard ...

JoyeuxNoel

Merci pour vos gentils retours.

M'enfin, on voit que vous êtes des spécialistes du VBA 😊

Pour un formuliste, là c'est à peine un échauffement 😉

Rechercher des sujets similaires à "defi jour formule vba"