Soustraire valeurs d'une plage et diviser par le nbre jours

Bonjour,

sur une année entière, j'ai une valeur d'un compteur à toutes les semaines à noter (jamais au même jour de semaine)... je souhaite faire la soustraction automatique (sans mentionner d'avance à quelles cellules seront mes valeurs) de toutes ces valeurs et qu'elles soient divisées par le nombre de jours qui les séparent.

Ouvrez le fichier ClasseurDemo pour comprendre le résultat que je recherche (colonne C est ce que je veux).

Merci d'avance pour votre aide.

36classeurdemo.zip (10.32 Ko)

Bonjour mech007,

Bon en attendant une solution plus courte, voici une formule qui marche (à voir sur excel 2003 si ya pas trop de fonctions imbriquées...) à mettre en C2 :

=(PETITE.VALEUR(DECALER($B$2;SI(LIGNE()-2<SOMMEPROD(PETITE.VALEUR(($B$2:$B$32<>0)*LIGNE($B$1:$B$31)-1;NB.SI($B$2:$B$32;"")+2));0;SOMMEPROD(PETITE.VALEUR(($B$2:$B$32<>0)*LIGNE($B$1:$B$31)-1;NB.SI($B$2:$B$32;"")+NBVAL($B$2:$B$32)-NBVAL(B3:$B$32))));;LIGNES($B$2:$B$32));2)-PETITE.VALEUR(DECALER($B$2;SI(LIGNE()-2<SOMMEPROD(PETITE.VALEUR(($B$2:$B$32<>0)*LIGNE($B$1:$B$31)-1;NB.SI($B$2:$B$32;"")+2));0;SOMMEPROD(PETITE.VALEUR(($B$2:$B$32<>0)*LIGNE($B$1:$B$31)-1;NB.SI($B$2:$B$32;"")+NBVAL($B$2:$B$32)-NBVAL(B3:$B$32))));;LIGNES($B$2:$B$32));1))/(SOMMEPROD(PETITE.VALEUR(($B$2:$B$32<>0)*LIGNE($B$1:$B$31)-1;NB.SI($B$2:$B$32;"")+NBVAL($B$2:$B$32)-NBVAL(B3:$B$32)+1))-SOMMEPROD(PETITE.VALEUR(($B$2:$B$32<>0)*LIGNE($B$1:$B$31)-1;NB.SI($B$2:$B$32;"")+NBVAL($B$2:$B$32)-NBVAL(B3:$B$32))))

Un peu plus court :

=(DECALER($B$2;SOMMEPROD(GRANDE.VALEUR(($B$2:$B$32<>"")*LIGNE($B$1:$B$31)-1;NBVAL(B3:$B$32)));)-DECALER($B$2;SOMMEPROD(GRANDE.VALEUR(($B$2:$B$32<>"")*LIGNE($B$1:$B$31)-1;NBVAL(B3:$B$32)+1));))/(SOMMEPROD(GRANDE.VALEUR(($B$2:$B$32<>"")*LIGNE($B$1:$B$31)-1;NBVAL(B3:$B$32)))-SOMMEPROD(GRANDE.VALEUR(($B$2:$B$32<>"")*LIGNE($B$1:$B$31)-1;NBVAL(B3:$B$32)+1)))

Salut le forum

Avec une matricielle pas vraiment plus court

=(DECALER($B$1;PETITE.VALEUR(SI($B$2:$B$32<>"";LIGNE(INDIRECT("1:"&LIGNES($B$2:$B$32))));NBVAL($B$2:B2)+1);;;)-DECALER($B$1;PETITE.VALEUR(SI($B$2:$B$32<>"";LIGNE(INDIRECT("1:"&LIGNES($B$2:$B$32))));NBVAL($B$2:B2));;;))/(PETITE.VALEUR(SI($B$2:$B$32<>"";LIGNE(INDIRECT("1:"&LIGNES($B$2:$B$32))));NBVAL($B$2:B2)+1)-PETITE.VALEUR(SI($B$2:$B$32<>"";LIGNE(INDIRECT("1:"&LIGNES($B$2:$B$32))));NBVAL($B$2:B2)))

Une autre formule

=SI(ESTERR(PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2)+1));"";(PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2)+1)-PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2)))/(EQUIV(PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2)+1);$B$2:$B$32;0)-EQUIV(PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2));$B$2:$B$32;0)))

Une petite dernière, sous certaine version d'Excel le point doit être remplacer par l'antislash ( \ )

Peut-on faire encore plus court ? ? ?

=SI(ESTERR(PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2)+1));"";
SOMME(PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2)+{0.1})*{-1.1})
/SOMME(EQUIV(PETITE.VALEUR($B$2:$B$32;NB.SI($B$2:$B$32;0)+NBVAL($B$2:B2)+{0.1});
$B$2:$B$32;0)*{-1.1}))

Mytå

merci pour les réponses rapide, cependant, lorsque j'applique cette formule dans un autre fichier, j'obtiens la valeur « #DIV/0! » et « #N/A ». Peut-être que la position de la colonne des valeurs à une importance ?? Quel est le rôle des zones en gras ??

=SI(ESTERR(PETITE.VALEUR($E$11:$E$123;NB.SI($E$11:$E$123;0)+NBVAL($E$11:E11)+1));"";SOMME(PETITE.VALEUR($E$11:$E$123;NB.SI($E$11:$E$123;0)+NBVAL($E$11:E11)+{0.1})*{-1.1})/SOMME(EQUIV(PETITE.VALEUR($E$11:$E$123;NB.SI($E$11:$E$123;0)+NBVAL($E$11:E11)+{0.1});$E$11:$E$32;0)*{-1.1}))

je vais vous joindre une partie de mon fichier réel, peut-être que j'ai fait une erreur... COLONNE «E» sont les valeurs obtenu d'une feuille masquée et COLONNE «F» doit avoir les différences des valeurs / nbre de jours qui les séparent.

merci d'avance pour votre précieuse aide !!!

mech007

24tournee.zip (48.04 Ko)

Re le forum

Tu n'avais pas précisé que les données venaient d'une formule

de recherche que tu avais des valeurs identiques en doublons.

De plus tu utilises des fonctions d'Excel 2007 alors que ton profil indique Excel 2003

Mytå

Bonjour Mytå,

désolée pour ce manque de précision, on m'avait mal informé au départ... alors ai-je espoir d'avoir une solution quand même, est-ce réalisable ?

Merci beaucoup,

Mech007

Re le forum

Il faut revoir la formule car Petite.Valeur n'aime pas vraiment les doublons.

Je regarde dans la soirée, sinon une macro pourrait faire travail.

Mytå

Re,

@Mytå : Je ne connaissais pas la technique avec les accolades. Ça peut servir !

Et effectivement, la donne a changé avec ces nouvelles données. Est-ce que les volumes par jour sont quasiment tous nuls ? Sinon va peut-être falloir envisager une solution VBA...

Bonjour à tous,

@ vba-new : Non, les volumes ne sont pas toujours nuls... j'ai d'autres feuilles sur lesquelles les volumes augmentent par miliers (mais toujours 1 à 2 volumes par semaine sur une année entière). Je n'ai pas pu tout laisser en exemple, car je ne peux pas joindre un fichier de plus de 200 Ko.

Encore une fois, merci d'avance pour votre aide. Heureusement qu'il existe des gens aimable pour venir en aide à des personnes qui s'y connaissent un peu moins en Excel.

Mech007


Bonjour,

et puis, quelqu'un à une solution pour moi, que ce soit VBA, macro ou autre... je n'ai pas d'inconvénient, en autant que ce soit compatible avec Office 2003.

Merci d'avance,

Mech007

Rechercher des sujets similaires à "soustraire valeurs plage diviser nbre jours"