Aide pour une formule

Nessie

XLDnaute Occasionnel
Bonsoir,

Je sèche sur une formule qui vous paraîtra simple mais qui me perturbe. Je vous joins un fichier exemple.

Il y a 2 feuilles :
la première, SUIVI, est un tableau qui a été créé pour effectuer un suivi de stocks dont les données proviennent d'un logiciel, pour certaines de l'extraction d'un fichier excel.
Il a été construit et la saisie des données est manuelle. Je ne dois pas y toucher mais l'améliorer en automatisant au possible le rapatriement de données.

J'ai donc commencé par copier/coller les données de l'extraction dans une feuille, la deuxième, que j'ai appelé BD. Il me faut donc que certaines lignes uniquement de BD soient reprises dans SUIVI. Pour cela, j'ai voulu faire des SI, Et et RECHERCHEV mais je me heurte à plein d'obstacles.
Le dénominateur commun entre les 2 tableaux est le code des produits (310, 340, etc...). J'ai donc ajouté une colonne afin d'y mettre les codes à chaque ligne (cf colonne rouge) pour rendre possible la RECHERCHEV. Mais même ça, je pêche : seules les T00 de la BD doivent être reprises en fonction du code produit. (cf fichier joint)


Autre point, le tableau source ne contient aucune indication de date. Or, l'idée est que les données que je vais extraire chaque mois et venir coller dans BD doivent venir alimenter la colonne du mois concerné...
Ce que j'ai pensé à faire est une liste déroulante de mois. Ainsi dans mon commencement de formule, j'avais mis la condition du mois =Si(cell de la liste déroulante>"JANVIER";0;........)

Pas très heureux je sais. J'ai vraiment besoin de votre aide.
J'espère avoir été claire
 

Pièces jointes

  • Help.xlsx
    12.2 KB · Affichages: 63
  • Help.xlsx
    12.2 KB · Affichages: 69
  • Help.xlsx
    12.2 KB · Affichages: 67
Dernière édition:

Nessie

XLDnaute Occasionnel
Re : Aide pour une formule

Bonjour,
comme dit précédemment, index te renvoie la valeur d'une cellule
sommeprod fera la somme de toutes valeurs correspondantes aux critères

"je dois faire la somme de tous les T19 que je trouverai en colonne C" (correspondant à A7 aussi)

formulé comme çà, ... sommeprod .
genre SOMMEPROD((MSLIV!$B:$B=GAUCHE($A7;3)*1)*(MSLIV!$C:$C="T19")*MSLIV!$I$:$I)

ou juste T19 en C=((MSLIV!$C:$C="T19")*MSLIV!$I$:$I)

Pardon oui, pour ce cas de figure, la somme des T19 qui sont en I dans MSLIV selon le critère Gauche et B8 donc à partir de cette formule
Code:
=SIERREUR(SI(D$6=MSLIV!$C$1;INDEX(MSLIV!$I:$I;EQUIV(GAUCHE($A$7;3)&$B8;MSLIV!$B:$B&MSLIV!$C:$C;0));0);0)
où $B8 contient le nom T19
 
Dernière édition:

st007

XLDnaute Barbatruc
Re : Aide pour une formule

On a vraiment du mal à être sur la même longueur d'onde ...

voir inventaire!B3 si j'ai compris, mais certainement pas puisque tu as déjà ce total en D44
 

Pièces jointes

  • Suivi des Diff d'inventaire & Non Inventoriés V1 111D 2014 - Copie1.xlsm
    65.4 KB · Affichages: 42

Nessie

XLDnaute Occasionnel
Re : Aide pour une formule

Alors, non je n'ai pas cette information en D44.
Sur ce fichier oui mais ce ne sera pas le cas pour d'autres extractions.
Il est possible pour une seule unité (ici 111D) d'avoir plusieurs compagnies (ici elle n'en a qu'une, c'est la 41 vue en colonne C de 'Non inventorié'). Dans 'Non inventorié', les compagnies seront détaillées par ligne. Dans "Inventaire', on me demande de faire la somme T18 / T19 des compagnies toutes confondues.

Ainsi, dans 'Inventaire' en D7 par exemple, je dois avoir pour le composant 310 la somme des T18 / T19 de toutes les compagnies qu'il y aura dans MSLIV. On ne fera plus de distinction par compagnie (qu'on voit colonne A dans MSLIV).

C'est plus clair ?
 

st007

XLDnaute Barbatruc
Re : Aide pour une formule

dans le post précédent, en B3 j'avais indiqué
Code:
=SIERREUR(SI(D$6=MSLIV!$C$1;SOMMEPROD((MSLIV!$C4:$C9999="T19")*MSLIV!$I4:$I9999);0);0)
qui fait la somme de la colonne I a condition que ce soit T19 en colonne C

mais comme signalé bien avant, ne joue pas sur du texte

d'ou I4:I9999
et surtout pas I:I

En I3 ???
 

Nessie

XLDnaute Occasionnel
Re : Aide pour une formule

Je cherche à faire la somme de la colonne I (dans MSLIV) à condition que ce soit T19 (que je prends de la colonne B dans 'Inventaires') et tel composant (=Gauche($A;3) dans 'Inventaires')

Voici ma formule finale :
=SIERREUR(SI(D$6=MSLIV!$C$1;SOMMEPROD((MSLIV!$B4:$B9999=GAUCHE($A$7;3)*(MSLIV!$C4:$C9999=$B8);MSLIV!$I4:$I9999);0);0)

Et sinon, ça marche avec ça
=SIERREUR(SI(D$6=MSLIV!$C$1;SOMMEPROD((MSLIV!$B:$B=GAUCHE($A$7;3)*1)*(MSLIV!$C:$C=$B8)*1;MSLIV!$I:$I);0);0)

mais à condition que les nombres soient au format nombre. Or, je ne souhaite pas faire cette manip de conversion à l'utilisateur.

Un moyen de contourner cet obstacle ?
 
Dernière édition:

Nessie

XLDnaute Occasionnel
Re : Aide pour une formule

ok, alors dans ces cas est-il possible de rajouter une macro de conversion des données sur ma liste déroulante des mois qui permet de sélectionner le mois sur lequel on travaille ? Cela dans le but d'éviter au user d'avoir à convertir au mois les colonnes concernées
 

Nessie

XLDnaute Occasionnel
Re : Aide pour une formule

J'ai vu un post
HTML:
http://www.excel-downloads.com/forum/157398-somme-de-plusieurs-index-equiv-cumules.html

avec ce type de formule :
Code:
=SOMME(DECALER(Tableau;0;2;LIGNES($A$5:$A$24);1)*($A$5:$A$24=SI(ESTERREUR(SI(EQUIV($A$5:$A$24;DECALER(Matrix;1;EQUIV($G$5;1:1;0)-1;1;EQUIV($H$5;1:1;0)-(EQUIV($G$5;1:1;0)-1));0);$A$5:$A$24;0));0;SI(EQUIV($A$5:$A$24;DECALER(Matrix;1;EQUIV($G$5;1:1;0)-1;1;EQUIV($H$5;1:1;0)-(EQUIV($G$5;1:1;0)-1));0);$A$5:$A$24;0))))

Cela peut-il être utilisé dans mon cas ?
 

Nessie

XLDnaute Occasionnel
Re : Aide pour une formule

Aïe, je ne comprends pas, j'avais répondu mais je ne vois pas ma réponse alors je recommence.
Ma formule en l'état fonctionne mais uniquement si je convertis au préalable au format nombre les colonnes B et C en question dans la formule. Or, je souhaite éviter cette manipulation à l'user final.
Je veux qu'il n'ait qu'à copier-coller l'extraction, sélectionner le mois, et renseigner 1 ou 2 cellules et basta.
 

Nessie

XLDnaute Occasionnel
Re : Aide pour une formule

Pour ceux que cela intéresse, j'ai obtenu une réponse qui a solutionné mon problème :

Code:
=SIERREUR(SI(D$6=MSLIV!$C$1;SOMMEPROD((TEXTE(MSLIV!$B$5:$B$1000;"#")=GAUCHE($A7;3))*(MSLIV!$C$5:$C$1000=$B7)*(MSLIV!$I$5:$I$1000));0);0)

Il m'a même été suggéré une SOMME.SI.ENS mais là......peux pô vous dire
 

Discussions similaires

Réponses
10
Affichages
197
Réponses
8
Affichages
365
Réponses
4
Affichages
375

Statistiques des forums

Discussions
312 163
Messages
2 085 863
Membres
103 007
dernier inscrit
salma_hayek