Pb Fonction index + equiv (pour trouver n° ligne + colonne) ou autre ?

Bonjour à tous,

J'ai un problème avec un excel pour mon travail, 2 problèmes en fait.

Je vous explique (et vous joints un tableau avec des données erronées et bien simplifié par rapport au vrai tableau) :

1 : Je dois faire un tableau (onglet "données journalières") qui va me sortir les données en fonction de 4 données (dont 3 sont modifiables) :

- le site de distribution (modifiable)

- le numéro de tournée (modifiable)

- la date d'emport (modifiable)

- le type d'article (non modifiable)

J'ai réussi à m'en sortir avec une fonction index, et pour indiquer le numéro de ligne je lui ai mis une fonction equiv, en revanche quand j'essaye la fonction equiv pour rentrer le numéro de colonne, cela ne fonctionne pas (alors que j'ai essayé en D1 et ça semble fonctionné quand c'est calculé tout seul ?). Ici mon problème est d'éviter d'avoir plusieurs cellules de calcul et de tout mettre en une seule formule (pb mieux expliqué dans la case mise en rouge sur l'excel d'exemple)

2 : Je dois faire le même type de formule sur l'onglet suivant ("Moy. données par période"), sauf que là je me heurte à un problème plus corsé. Je dois faire une moyenne des données en fonction de plusieurs variables :

- le site de distribution (modifiable)

- le numéro de tournée (modifiable)

- le type d'article (non modifiable)

- compris entre date de début (modifiable) et date de fin (modifiable)

là je vous avoue je suis pommée...

Mon problème supplémentaire étant que je ne peux pas réorganiser mon onglet "base de données" car il s'agit d'extractions d'un autre logiciel sur lequel je n'ai pas la main ET que je ne peux pas me servir de croisés dynamiques car les personnes à qui est destiné l'excel n'y comprennent rien et savent juste modifier mes données mises en jaune (les données dites "modifiables" ci-dessus...

Si quelqu'un pouvait m'aider svp je m'arrache les cheveux dessus depuis lundi sans trouver de réponse, pourtant j'ai essayé plein de forums, essayé de reformuler mes questions sur google pour trouver d'autres solutions mais rien T.T....

Je vous remercie par avance du temps que vous pourrez m'accorder !

Bonjour,

Pour la formule Données journalières mettre cette formule en B5 en matricielle

=INDEX('Base de données'!$A:$IZZ;EQUIV(1;('Base de données'!A:A=$B$1)*('Base de données'!B:B=$B$2)*('Base de données'!$C:$C=A5);0);EQUIV($B$3;'Base de données'!$A$1:$BZZ$1))

Bonjour à tous,

Un essai pour les moyennes également :

Je pense qu'il peut y avoir plus simple...

Cdlt,

Merci à vous @M12 et @3GB ! ça marche du feu de dieu !

Juste, @3GB j'ai oublié, tu peux rajouter quoi à la formule des moy. données par période pour exclure les cellules vides ? (<>"" ?) si oui sur quelle condition ?

Pourquoi écarter les cellules vides ? Les cellules vides sont interprétées comme des zéro j'imagine et il faut dans ce cas les inclure dans la moyenne ?

Edit : je confirme qu'il ne faut pas écarter les vides. Cependant, vous pouvez ajouter des décimales afin d'avoir une vision plus précise des moyennes renvoyées.

Merci de ta réponse mais je te confirme qu'il faut dans mon cas exclure les cellules vides car c'est une moyenne faite sur les jours de distribution des facteurs (qui ne bossent pas le dimanche ni les jours fériés)

:)

bonjour

du qui exclue

=SOMMEPROD(('Base de données'!A$2:A$43=$B$1)*('Base de données'!$B$2:$B$43=B$2)*('Base de données'!C$2:C$43=$A5)*('Base de données'!D$1:L$1>= $B$3)*('Base de données'!$D$1:$L$1<=$D$3)*('Base de données'!$D$2:$L$43))/SOMMEPROD(--('Base de données'!A$2:A$43=$B$1)*('Base de données'!$B$2:$B$43=B$2)*('Base de données'!C$2:C$43=$A5)*('Base de données'!D$1:L$1>= $B$3)*('Base de données'!$D$1:$L$1<=$D$3)*('Base de données'!$D$2:$L$43>0))

a adapter au plages reeles

cordialement

Hum...merci mais il doit y avoir un pb je me retrouve avec du #DIV/0!

:(

Bonjour tulipe,

Je pense qu'il faut mettre <>"" car il peut y avoir des jours à zéro...

=sierreur(SOMMEPROD(('Base de données'!A$2:A$43=$B$1)*('Base de données'!$B$2:$B$43=B$2)*('Base de données'!C$2:C$43=$A5)*('Base de données'!D$1:L$1>= $B$3)*('Base de données'!$D$1:$L$1<=$D$3)*('Base de données'!$D$2:$L$43))/ SOMMEPROD(('Base de données'!A$2:A$43=$B$1)*('Base de données'!$B$2:$B$43=B$2)*('Base de données'!C$2:C$43=$A5)*('Base de données'!D$1:L$1>= $B$3)*('Base de données'!$D$1:$L$1<=$D$3)*('Base de données'!$D$2:$L$43<>"")*1);0)

Charlene, si vous avez une série de jours à 0, le dénominateur est à 0 et la division renvoie #DIV/0 car on ne peut pas diviser un nombre par zéro.

Cdlt,

@3GB merci du conseil, je l'avais ;)

Ici je me retrouve avec du 0 alors que sur la plage des jours que j'ai sélectionnés, j'en ai 1 avec des données, l'autre vide, donc il devrait me mettre divisé par 1 et me donner le chiffre inscrit au premier jour non ?

Il faut essayer chaque partie seule :

=SOMMEPROD(('Base de données'!A$2:A$43=$B$1)*('Base de données'!$B$2:$B$43=B$2)*('Base de données'!C$2:C$43=$A5)*('Base de données'!D$1:L$1>= $B$3)*('Base de données'!$D$1:$L$1<=$D$3)*('Base de données'!$D$2:$L$43))
=SOMMEPROD(('Base de données'!A$2:A$43=$B$1)*('Base de données'!$B$2:$B$43=B$2)*('Base de données'!C$2:C$43=$A5)*('Base de données'!D$1:L$1>= $B$3)*('Base de données'!$D$1:$L$1<=$D$3)*('Base de données'!$D$2:$L$43<>"")*1)

L'un renvoie normalement la somme suivant critères alors que l'autre renvoie le nombre (en évitant les vides).

La division des 2 doit donner la moyenne.

Edit : Petit essai à l'instant, ça semble marcher chez moi donc vérifiez que vous avez pris une période sur laquelle il n'y a pas que des vides

Ca marche super merci beaucoup à tout le monde !

du coup effectivement cela ne fonctionnait pas car j'ai mal remodifié des plages !

Merci encore à tous !

re

ah ! oui , généralement quand je propose un truc , c'est parce que je l'ai testé pendant des heures (pas obligé de me croire )

dans le cas présent , c'était du vu et revu

un sommeprod pour sommer divisé par un autre sommeprod qui dit combien >>>>> facile ,pas cher

cordialement

Rechercher des sujets similaires à "fonction index equiv trouver ligne colonne"