Problème de définition de nom de plage dans une formule matricielle

Bud.boundy

XLDnaute Occasionnel
Bonjour,

J'utilise actuellement la formule matricielle suivante qui fonctionne à merveille : =INDEX(NOM;EQUIV(GRANDE.VALEUR(SI(Poste="Agent";SI(PRE>=$Y$47;SI(Pbs>0;Pbs)));LIGNE()-54);SI((Poste="Agent")*(NB.SI(N$54:N54;NOM)=0)*(PRE>=$Y$47)*(Pbs>0);Pbs);0))

Sachant que NOM, Pbs, PRE et POSTE sont des noms que j'ai donné à 4 plages... Mon problème est que j'aimerais pouvoir aisément changé mes critères de recherche... et passer facilement de Pbs à pts (autre nom de plage) par exemple

pour ce faire serait-il possible que les noms tels que Pbs se retrouve par exemple en cellule A1, PRE en cellule A2 et poste en cellule A3... Dès lors il me suffirait d'écrire pts pour changer ma recherche...

En esperant que mon problème aura été suffisemment bien expliqué et qu'il existe une solution à mon problème...

Je vous en remercie
A bientôt
 

SergiO

XLDnaute Accro
Re : Problème de définition de nom de plage dans une formule matricielle

Bonsoir Bud.boundy,

Voici un petit exemple à adapter à ta formule en utilisant la fonction INDIRECT.

Dans ton cas, tu remplaceras dans ta formule Pbs par INDIRECT(A1).

Bon cour@ge.
 

Pièces jointes

  • Exemple_indirect.xls
    14.5 KB · Affichages: 77

Bud.boundy

XLDnaute Occasionnel
Re : Problème de définition de nom de plage dans une formule matricielle

Bonsoir,

Sergio je constate avec bonheur que ta solution marche à merveille... Néanmoins, un nouveau problème se présente à moi... J'aimerais cumuler les conditions mais ça ne marche plus dès lors que je depasse 3 ou 4... Bref, j'aimerais par exemple rajouter cela : INDIRECT($U$46)>=$Z$46
Mais rien n'y fait ça ne marche pas... Elle marche simplement si je supprime une condition existante... De plus, j'aurais aimé savoir s'il était possible d'adapter dans les conditions <, <=, >, >= et = dans une cellule... Par exemple, je trouve ">=" de ma recherche ci-dessus en $Y$46...

Voici l'exmple de ma formule matricielle:
=INDEX(NOM;EQUIV(GRANDE.VALEUR(SI(Poste2=N53;SI(INDIRECT($U$48)>=$Z$48;SI(INDIRECT($U$48)<$AC$48;SI(INDIRECT($Z$43)>0;INDIRECT($Z$43)))));LIGNE()-LIGNE()+M55);SI((Poste2=N53)*(NB.SI(N54:N54;NOM)=0)*(INDIRECT($U$48)>=$Z$48)*(INDIRECT($U$48)<$AC$48)*(INDIRECT($Z$43)>0);INDIRECT($Z$43));0))

Merci encore
 

SergiO

XLDnaute Accro
Re : Problème de définition de nom de plage dans une formule matricielle

Bonsoir,

J'ai un peu de mal à comprendre l'imbrication de ta formule afin de t'aider.

Si tu envoyais un exemple ton fichier, ce serait plus facile de te répondre.

@+
 

Bud.boundy

XLDnaute Occasionnel
Re : Problème de définition de nom de plage dans une formule matricielle

bonsoir,

En fait, je n'arrive pas à compresser mon fichier mais l'idée est la suivante
Grosso modo, j'aimerais rajouter les conditions suivantes à ma formule initiale (je saurais utiliser INDIRECT comme vous me l'avez montré):
AGE>=30
AGE<=50
NOTE > 10

La formule initiale est celle-ci :
=INDEX(NOM;EQUIV(GRANDE.VALEUR(SI(Poste="Agent";SI (PRE>=$Y$47;SI(Pbs>0;Pbs)));LIGNE()-54);SI((Poste="Agent")*(NB.SI(N$54:N54;NOM)=0)*(PR E>=$Y$47)*(Pbs>0);Pbs);0))


Merci Sergio
 

Monique

Nous a quitté
Repose en paix
Re : Problème de définition de nom de plage dans une formule matricielle

Bonjour,

A essayer (ligne 55) :
Code:
=INDEX(Nom;EQUIV(GRANDE.VALEUR(SI((Poste="Agent")*(Age>=30)*(Age<=50)*(Note>10)*(Pre>=$Y$47)*(Pbs>0);Pbs);LIGNE()-54);SI((NB.SI(Y$54:Y54;Nom)=0);Pbs);0))
Au conditionnel :
HTML:
=SI(SOMME((Poste="agent")*(Age>=30)*(Age<=50)*(Pre>=$Y$47)*(Pbs>0)*(Note>10))<LIGNE()-54;"";INDEX(Nom;EQUIV(GRANDE.VALEUR(SI((Poste="Agent")*(Age>=30)*(Age<=50)*(Note>10)*(Pre>=$Y$47)*(Pbs>0);Pbs);LIGNE()-54);SI((NB.SI(Z$54:Z54;Nom)=0);Pbs);0)))
 
Dernière édition:

Bud.boundy

XLDnaute Occasionnel
Re : Problème de définition de nom de plage dans une formule matricielle

Bonjour,

D'abord merci à vous à Monique et Sergio pour l'intérêt que vous portez à mon pb... Malgré tout, monique, j'ai testé vos 2 formules mais rien n'y fait ça ne marche pas...

Merci
 

Monique

Nous a quitté
Repose en paix
Re : Problème de définition de nom de plage dans une formule matricielle

Bonjour,

Regarde le fichier qui a servi à fabriquer la formule.
Les plages doivent toutes avoir la même longueur
(dans le fichier, elles sont nommées par formule)
 

Pièces jointes

  • MatricielleBudboundy.zip
    3.5 KB · Affichages: 26
  • MatricielleBudboundy.zip
    3.5 KB · Affichages: 29
  • MatricielleBudboundy.zip
    3.5 KB · Affichages: 25

Bud.boundy

XLDnaute Occasionnel
Re : Problème de définition de nom de plage dans une formule matricielle

Bonsoir,

Votre formule marche bien Monique... Le seul petit problème est que je ne peux utiliser la fonction INDIRECT() donnée par sergio... Je m'explique : J'aimerais en fonction des circonstances changer ma recherche et passer de pbs à abs, points, etc... Pour cela, j'aimerais rentrer la nature de ma recherche dans une cellule, soit dans cet exemple Pbs en A1... Comment faire ???

Merci d'avance
 

Monique

Nous a quitté
Repose en paix
Re : Problème de définition de nom de plage dans une formule matricielle

Re,

Si, on peut utiliser Indirect() mais…
en nommant les plages de façon classique et non plus par formule

=INDEX(Nom;EQUIV(GRANDE.VALEUR(SI((Poste="Agent")*(Age>=30)*(Age<=50)*(Note>10)*(Pre>=$Y$47)*(INDIRECT(B$1)>0);INDIRECT(B$1));LIGNE()-54);SI((NB.SI(Y$54:Y54;Nom)=0);INDIRECT(B$1));0))

(j'ai mis Pbs en B1 parce que, pour faire un essai, j'ai laissé toutes les plages nommées par formules, sauf une : la plage Pbs.
Et la formule pour nommer les plages a besoin de A1)
 

Bud.boundy

XLDnaute Occasionnel
Re : Problème de définition de nom de plage dans une formule matricielle

Chere Monique,

votre formule ne marche pas dans tous les cas... Je vous joint un fichier montrant une erreur...

Merci Monique
 

Pièces jointes

  • MatricielleBudboundy.zip
    3.8 KB · Affichages: 20
  • MatricielleBudboundy.zip
    3.8 KB · Affichages: 22
  • MatricielleBudboundy.zip
    3.8 KB · Affichages: 26

Monique

Nous a quitté
Repose en paix
Re : Problème de définition de nom de plage dans une formule matricielle

Bonjour,

Il y a des ex aequo.
Nom01 et Nom06 ont tous les deux 1 en Pbs
Pour les départager :
=GRANDE.VALEUR(SI((Poste="Agent")*(Age>=10)*(Age<=20)*(Note>10);INDIRECT($Z$49)+LIGNE(Nom)/1000);LIGNE()-54)

Dans le fichier, tu as Grande.valeur() avec ou sans +Ligne(Plage)/1000
la formule elle-même avec ou sans.
Ensuite, le choix entre format conditionnel et formule conditionnelle.
 

Pièces jointes

  • MatricielleBudboundyV1.zip
    4.7 KB · Affichages: 35

Bud.boundy

XLDnaute Occasionnel
Re : Problème de définition de nom de plage dans une formule matricielle

Bonsoir,

MERCI 1000 fois Monique... Tout cela marche parfaitement et je ne sais comment pour remercier pour ce service rendu... Votre disponibilité sur ce Forum est quelque chose de tout à fait exeptionnel...

Merci encore et bravo
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16