Signaler une mise à jour entre 2 plages

Bonjour à tous,

Merci de votre attention,

Je coince depuis plusieurs heures à trouver une formule me permettant de savoir s'il y a eu une mise à jour entre 2 plages de données.

En fait,

Sans l'utilisation d'une macro,

je cherche à mettre en place un indicateur de mise à jour entre un mois n et un mois n-1. Je cherche une formule qui m'indique "NON" si pas de nouveauté entre la plage "Janvier" et la plage "Février" et "OUI" s'il y a une différence, et ainsi de suite pour chaque mois.

J'ai essayé avec nbval mais le problème, il y a des cellules qui paraissent vides mais qui le sont pas à cause des formules et "".

J'ai essayé de trouver une formule qui compte les non doubles dans une plage et les compare pour déterminer si différence ou pas. En vain.

Je fais donc appel à vous, si quelqu'un peut m'aider,

Bonjour,

Si j'ai bien suivi, il suffit de contrôler s'il y a une maj dans le 2nd mois. C'est à dire une saisie sur une ligne paire

Ex pour février :

=SOMMEPROD(--((E21:E32<>"")*(MOD(LIGNE(E21:E32);2)=0)))

ou bien avec une vraie date 01/02/19 en E48 :

=SOMMEPROD(--((DECALER($B$1;EQUIV(E48;$B:$B;0)-1;3;12)<>"")*(MOD(LIGNE(DECALER($B$1;EQUIV(E48;$B:$B;0)-1;3;12));2)=0)))

eric

Bonjour eriiic,

Merci pour ton retour,

Je préfère ta 2ème solution, car elle est indépendante des lignes paires et impaires qui pourrait changer.

Elle a l'air de fonctionner. Je vais la tester sur un tableau de 12 mois pour voir si toutes les possiblités de maj répondent.

Je te fais un retour de si tôt.

a+

eriiic,

Peux-tu m'expliquer les valeurs de decaler que tu as mises car je m'y perd un peux au niveau des décalages colonnes et lignes.

J'ai du mal à les adapter à mon grand tableau qui ne correspond pas avec exactitude au modèle fourni.

Merci à toi

=SOMMEPROD(--((DECALER($B$1;EQUIV(E48;$B:$B;0)-1;3;12)<>"")*(MOD(LIGNE(DECALER($B$1;EQUIV(E48;$B:$B;0)-1;3;12));2)=0)))

Pour le 3 et 12 j'ai compris 3ème colonne, mois = 12 lignes...

Mais pour le -1 ???

Salut eriiic,

C'est OK pour moi, j'ai pu adapter mon tableau

=SI(SOMMEPROD(--((DECALER($B$1;EQUIV($C898;$B:$B;0)-1;3;74)<>"")*(MOD(LIGNE(DECALER($B$1;EQUIV($C898;$B:$B;0);3;74));2)=0)))>0;"Données à mettre à jour";"Données à jour")

J'ai mis 74 pour les mois (+de données), j'ai enlever -1 dans le 2ème decaler, sinon ça fonctionnait pas. C'est pourquoi, j'aurais voulu savoir pour quoi ce -1 ?

Sinon,

T'ES UN GÉNIE, rien à dire, merci beaucoup

Mais pour le -1 ???

Equiv() trouve la ligne de la date.

On doit décaler depuis la ligne 1, donc décaler de Equiv()-1.

Ex pour aller en ligne 3 il faut décaler la ligne 1 de 2 lignes:

B3 = Decaler(B1;3-1;)

j'ai enlever -1 dans le 2ème decaler, sinon ça fonctionnait pas.

même si ça corrige ton pb, ce n'est pas la solution.

Il faut respecter la logique de la formule pour que ça reste clair à un futur lecteur/correcteur.

MOD(LIGNE(...);2)=0

retourne VRAI pour les lignes paires, FAUX pour les impaires.

Si ce sont les lignes impaires qui t'intéressent ça doit devenir :

MOD(LIGNE(...);2)=1

et garder le -1

Et si ça peut être parfois pair, parfois impair il faudra compliquer un peu plus.

Mais comme tu es le seul à le savoir...

eric

Rechercher des sujets similaires à "signaler mise jour entre plages"