Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

jokapic

XLDnaute Junior
Bonjour ami du web ,
Je reviens vers vous car j'ai un gros souci avec une formule .
Dans mon exemple ci joint , j'essaye de récupérer plusieurs ligne dans un tableau selon 2 critères deux recherches et 1 condition .

Il faut récupérer les informations sur les produit qui appartiennent a la machine et le jour saisie ( liste déroulante ) , et la condition c'est que celle ci a une quantité >0.

Dans l'exemple j'ai ajouté des commentaires , l'exemple fonctionne car j'ai fixé mes colonnes ( je souhaite que celle ci soit automatique selon le jour saisie )

Pas facile a expliquer , je vous laisse découvrir mon projet.

Merci d'avance
 

Pièces jointes

  • Exemple.xlsm
    25.9 KB · Affichages: 87
  • Exemple.xlsm
    25.9 KB · Affichages: 71
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonjour

Si c'est ça, on peut faire avec (INDIRECT(B$7)<>""), mais il faut rien mettre dans les cellules D12, D22 et D25.

@ plus
 

Pièces jointes

  • Exemple.xlsm
    22.9 KB · Affichages: 65
  • Exemple.xlsm
    22.9 KB · Affichages: 61
  • Exemple2.xlsm
    22.9 KB · Affichages: 66
  • Exemple2.xlsm
    22.9 KB · Affichages: 78

jokapic

XLDnaute Junior
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

:D;););):D Merci CISCO , c'est juste parfait , j'ai adapter la formule a mon fichier, tu m'avais caché que tu avais créer des plage nominatif ( machine 1 et 2 ) xd , du coup j'ai fait pareil mais je vais essayé d'adapter avec la colonne A que j'vais créer car le nom des machine peut Creer /changer / supprimer , on peut rajouter des produits .


Merci merci merci beaucoup pour votre patiente et votre partage culturel.

a très bientot ^^
 

CISCO

XLDnaute Barbatruc
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonsoir

Si parfois tu dois ajouter des produits, donc changer les plages correspondant à Machine1 et à Machine2, il faut travailler avec des plages dynamiques dont la hauteur s'adapte automatiquement en fonction du contexte.

Par exemple, pour Machine1, cela donnerait :
Code:
DECALER(Planning!$D$5;EQUIV("Machine1";Planning!$B$7:$B$100;0);;EQUIV("Machine2";Planning!$B$7:$B$100;0)-3)

Cela fonctionne bien pour définir ce nom (on peut le vérifier en cliquant sur la formule définissant ce nom dans le gestionnaire de noms : des pointillés se mettent autour de la plage correspondant), mais pas dans la formule dans la feuille "Validation journa". Cela renvoie #REF au lieu de Planning!D7: D16.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonsoir

tu m'avais caché que tu avais créer des plage nominatif ( machine 1 et 2 )

Si, si, je l'avais écris dans le post #7: "et j'ai défini des plages en colonne D avec ces nouveaux noms (Cf. dans le gestionnaire de noms)".

@ plus

P.S : J'essaye de résoudre le pb signalé dans mon post précédent, mais pour le moment, je n'y arrive pas.
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonjour

Suite du post #18.

J'ai créé des plages dynamiques pour Machine1 et Machine2 (pour cela j'ai modifié dans la feuille Planning les termes "Total Quantité" en "Machine1 Total Quantité" et "Machine2 Total Quantité" pour repérer la fin des plages Machine1 et Machine2 plus facilement). Pour Machine1, cela donne
Code:
DECALER(Planning!$D$5;EQUIV("Machine1";Planning!$B$7:$B$100;0);;EQUIV("Machine1 Total Quantité";Planning!$B$7:$B$100;0)-EQUIV("Machine1";Planning!$B$7:$B$100;0)-1)
Malheureusement cela ne fonctionne pas en laissant tel quel la formule dans Validation Journa!C11 proposée dans le fichier exemple2 du post #16.

J'ai donc défini un nouveau mot, Machine, qui sélectionne les mêmes plages, en fonction de Validation Journa!B7.
Code:
=DECALER(Planning!$D$6;EQUIV($B$7;Planning!$B$7:$B$100;0);;EQUIV($B$7&" Total Quantité";Planning!$B$7:$B$100;0)-EQUIV($B$7;Planning!$B$7:$B$100;0)-1)
Ce nom est mis à la place de INDIRECT(B$7) dans la formule dans Validation Journa!C11 :
Code:
SIERREUR(INDEX(Planning!D$1:D$28;PETITE.VALEUR(SI((DECALER(Machine;;EQUIV(B$6;Planning!F$3:Z$3;0)+EQUIV(B11;Planning!F$5:H$5;0))<>"")*(Machine<>"");LIGNE(Machine));NB.SI(B$11:B11;B11)));"")

Ca fonctionne et on peut rajouter des produits pour chacune des machines (mais les SOMME que tu as mises ne s'adaptent pas automatiquement si l'ajout se fait juste au dessus de cette somme).

Les noms Machine1 et Machine2 dans le gestionnaire de noms peuvent être supprimés.

@ plus
 

Pièces jointes

  • Exemple2bis.xlsm
    23.4 KB · Affichages: 78
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Formule Matriciel , Index Equiv avec plusieurs conditions (ligne colonne)

Bonjour

Comme signalé précédemment, il y avait un petit problème pour l'ajout de produit, si celui ci était fait juste au dessus des lignes avec la formule =SOMME. J'ai essayé de contourner cela en définissant pour chaque petite plage un début (débutMachine1A par ex) et la plage correspondant (plage1A par ex). Il y a donc 5 débuts et 5 plages de plus définis dans le gestionnaire de noms et les formules définissant les sommes à faire ont été modifiées en conséquence (=SOMME(plage1A) pour la ligne 15 par ex).

@ plus
 

Pièces jointes

  • Exemple2ter.xlsm
    24.2 KB · Affichages: 49
  • Exemple2ter.xlsm
    24.2 KB · Affichages: 53

jokapic

XLDnaute Junior
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonjour CISCO , le forum

Merci beaucoup d'avoir trouver des solutions , mais concernant les plages si on insère a l'intérieur , la plage se redimensionne automatiquement , sauf si c'est en début de ligne .
Ce problème ne sera pas visible car a vrai dire les noms des produit sont récupérer dans un autre onglet ( création d'une base ) donc si besoin d’insérer l'utilisateur devrai juste insérer une ligne a l'intérieur de la plage et adapter la formule !!

Par contre j'aimerai récupérer la quantité , et la j'arrive pas a adapter la formule car dans index() on récupère le nom du produit ( plage fixe en colonne C ) via les 3 condition ( machine , jour , heure , quantité existante avec petit valeur ) .
Est ce possible d'utiliser la même formule Index() , en mettant décaler() dans la plage de recherche?

Merci bien



PS: petite question =SIERREUR(INDEX(Planning!D$1:D$31;PETITE.VALEUR(SI((DECALER(Machine;;EQUIV(B$6;Planning!F$3:Z$3;0)+EQUIV(B11;Planning!F$5:H$5;0))<>"")*(Machine<>"");LIGNE(Machine));NB.SI(B$11:B11;B11)));"")

pourquoi on commence (INDEX(Planning!D$1:D$31 en ligne 1? vu que le début du tableau des nom se trouve en ligne 7.
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonjour

Bonjour CISCO , le forum


PS: petite question =SIERREUR(INDEX(Planning!D$1:D$31;PETITE.VALEUR(SI((DECALER(Machine;;EQUIV(B$6;Planning!F$3:Z$3;0)+EQUIV(B11;Planning!F$5:H$5;0))<>"")*(Machine<>"");LIGNE(Machine));NB.SI(B$11:B11;B11)));"")

pourquoi on commence (INDEX(Planning!D$1:D$31 en ligne 1? vu que le début du tableau des nom se trouve en ligne 7.

Parce que le test SI(....;LIGNE(Machine)) renvoie le n° de la ligne, disons par exemple 10. Si tu commences la plage INDEX en ligne 7, tu récupéreras la donnée en D16, or, tu voulais celle en D10.

Pour le reste, je verrai cet après midi.

@plus
 

jokapic

XLDnaute Junior
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Merci pour l'explication , si j'ai bien compris ça donne toujours le numéro de la ligne , donc il faut toujours commencer sa recherche a la ligne 1 sinon on aura jamais la bonne valeur.
merci cisco
 

CISCO

XLDnaute Barbatruc
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonjour

Cf. deux possibilités en pièce jointe pour ce qui est de la quantité. Cela ne fonctionnera correctement tel quel que si chaque code de produit ne se trouve qu'une fois dans la colonne Planning!C. Est-ce le cas ?

@ plus
 

Pièces jointes

  • Exemple2ter.xlsm
    25.1 KB · Affichages: 51
  • Exemple2ter.xlsm
    25.1 KB · Affichages: 48

jokapic

XLDnaute Junior
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Merci beaucoup beaucoup CISCO ça fonctionne impeccable , j'ai pris la 1er solution

Index Décaler sont des fonction assez puissantes mais j'arrive pas a bien saisir le principe tout seul ( la j'ai compris mais j'aurai pas su l'appliquer seul )

Merci encore , mon projet est loin d'être fini je reviendrai surement re-épingler le post ^^, a très vite
 

jokapic

XLDnaute Junior
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Bonjour le forum afin de compléter mon fichier j'aurais besoin encore de vous pour arriver a récupérer une donnée qui se trouve dans une colonne fixe selon deux critères.

Je vous ais mi un fichier type , le 1er onglet concerne l'évolution des pommes selon une catégorie d'emplacement ( on produit / consomme pour ça que a la fin on retombe a 0) , on, a une évolution journalière par catégorie de contenant ( Cat ne signifie pas la catégorie de la pomme , c'est la catégorie du stockage avec une limitation enfin ceci ne vous intéresse pas pour mon problème).

Et donc dans le 2em onglet se trouve la feuille Analyse ( si on reprend mes ancien fichier cela correspond a planning ^^) , et donc j''aimerai selon le jour choisi dans la liste déroulante récupérer le numéro de Catégorie ( Cat ) , de la pomme en question...
J'ai essayé de reprendre les formule avec décaler sauf que le souci c'est que je n'ai pas une colonne fixe pour la recherche vu qu'on doit récupérer le numéro de ligne selon le jour et le nom de la pomme....

Merci

ps: la structure du fichier ne peut pas être modifier ( les jours dans le 1er onglet prennent autant de colonne car dans le fichier réel il y a d'autres informations )
 

Pièces jointes

  • Exemple.xlsx
    14 KB · Affichages: 53
  • Exemple.xlsx
    14 KB · Affichages: 57

jokapic

XLDnaute Junior
Re : Formule Matriciel , Index Equiv avec plusieurs conditions( ligne colonne)

Coucou forum CISCO ^^

Pour répondre a ta question le fichier Analyse récupéré les information a la préparation d'une recette du coup , il faut extraire la donnée dont la quantité est utilisé et non produite soit avec l'expemple on voit que c'est la pomme1 de la Cat A qui nous intéresse car c'est celle qui qui est consommé ( on revient a 0).

Après je vais te dire que il peut arriver que pour une même pomme1 on utilise deux cat , du coup je pense qu'il faut pas s’embêter il faut donner le 1 er de la ligne.

Sauf si tu arrives a faire une vérification de la pomme la plus ancienne ( celle qui est produite en 1er ) , ici on remarque la la cat A a été utilisé par la pomme1 la veille alors que la Cat H le jour même. je sais pas si je suis très clair .

Mais si j'arrive a au moins avoir une valeur c'est cool , après c'est a utilisateur de vérifier ^^
 

Discussions similaires

Réponses
0
Affichages
980

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote