Formule matricielle et liste
TheNico38
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Vous trouverez ci-joint un fichier avec ce dont j'aurais besoin
https://mon-partage.fr/f/o2BCY48F/
Le but est de pouvoir faire apparaître des liste de données en fonction d'un ou plusieurs critères.
Les formules matricielles sont les bonnes mais je n'arrive pas à comprendre le mécanisme, donc j'essaie de faire à partir d'exemple, mais je bloque assez vite.
Merci d'avance
Vous trouverez ci-joint un fichier avec ce dont j'aurais besoin
https://mon-partage.fr/f/o2BCY48F/
Le but est de pouvoir faire apparaître des liste de données en fonction d'un ou plusieurs critères.
Les formules matricielles sont les bonnes mais je n'arrive pas à comprendre le mécanisme, donc j'essaie de faire à partir d'exemple, mais je bloque assez vite.
Merci d'avance
A voir également:
- Formule matricielle et liste
- Liste déroulante excel - Guide
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Formule somme excel colonne - Guide
2 réponses
Bonjour
en D22, la matricielle:
=SIERREUR(INDEX(Champ;PETITE.VALEUR(SI(mat=$C$3;LIGNE($A$1:$A$101));LIGNE($A1));6);"")
remplacer le LIGNE(A13) pas LIGNE(A1)
sinon vous allez chercher en commençant par la 13° valeur au dessus du plus petit!
et bien entendu, il faut que le code construit en A22 existe dans la feuille Bordereau pour que les recherches fonctionnent, ce n'est pas le cas de votre modèle, mais sans doute les listes sont elles incomplètes.
Pour info
le LIGNE(A1) dans la formule donne le rang cherché pour la petite valeur et permet d'incrémenter en tirant la formule vers les bas:
LIGNE(A1) =1 devient LIGNE(A2) =2 etc...
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
en D22, la matricielle:
=SIERREUR(INDEX(Champ;PETITE.VALEUR(SI(mat=$C$3;LIGNE($A$1:$A$101));LIGNE($A1));6);"")
remplacer le LIGNE(A13) pas LIGNE(A1)
sinon vous allez chercher en commençant par la 13° valeur au dessus du plus petit!
et bien entendu, il faut que le code construit en A22 existe dans la feuille Bordereau pour que les recherches fonctionnent, ce n'est pas le cas de votre modèle, mais sans doute les listes sont elles incomplètes.
Pour info
le LIGNE(A1) dans la formule donne le rang cherché pour la petite valeur et permet d'incrémenter en tirant la formule vers les bas:
LIGNE(A1) =1 devient LIGNE(A2) =2 etc...
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
Bonjour
quelques corrections à faire....:-)))) Excel n'aime pas trop la fantaisie!
*les champs nommés ne sont pas alignés:
et tous à la même hauteur
Et vous verrez que ça va aller beaucoup mieux
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
quelques corrections à faire....:-)))) Excel n'aime pas trop la fantaisie!
- votre plage en requête dépasse 4000 lignes
*les champs nommés ne sont pas alignés:
- pour assurer le fonctionnement de la matricielle sans correction de ligne, ils doivent démarrer à la ligne 1 et pour couvrir toute la plage, aller par exemple jusqu'à la ligne 5000
et tous à la même hauteur
- dans votre formule, vous faites référence à LIGNE($A$$1:$A$99)... ça ne suffira pas,vu le champ GAP,utilisez: LIGNE($A$1:$A$5000) (même hauteur que les autres, y a pas de raison.
Et vous verrez que ça va aller beaucoup mieux
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
ça y est je viens de comprendre, mais l'utilisation des fonctions matricielles reste quand même vraiment complexe.
Si vous connaissez des tutoriels, ça m'interesse ceux que je trouve concerne essentiellement des problématiques de calcul et de somme (comme les SommesSI ou les SommesProd)
Dans mon travail, c'est davantage des restitutions de données texte et ensuite des formules de calcul, ou de la macro suivant le cas.
Par exemple, dans la formule que j'ai décrite auparavant, comment le traduire en bon français,
Le SI.ERREUR est facile :
Si jamais le résultat de la formule génère une erreur alors j'affiche une autre valeur, sinon j'affiche le résultat de la formule
mais ensuite, la fonction INDEX et le reste ...
pourtant j'essaie de me former sur le net, notamment les fonctions INDEX et EQUIV
en tout cas merci pour tout
Si vous connaissez des tutoriels, ça m'interesse ceux que je trouve concerne essentiellement des problématiques de calcul et de somme (comme les SommesSI ou les SommesProd)
Dans mon travail, c'est davantage des restitutions de données texte et ensuite des formules de calcul, ou de la macro suivant le cas.
Par exemple, dans la formule que j'ai décrite auparavant, comment le traduire en bon français,
Le SI.ERREUR est facile :
Si jamais le résultat de la formule génère une erreur alors j'affiche une autre valeur, sinon j'affiche le résultat de la formule
mais ensuite, la fonction INDEX et le reste ...
pourtant j'essaie de me former sur le net, notamment les fonctions INDEX et EQUIV
en tout cas merci pour tout
A ce jour je commence à comprendre la notion de matrice pour tout ce qui est somme mais je ne suis pas encore en mesure de construire une formule matricielle tout seul.
Pour la notion du code qui doit être présent dans l'onglet Bordereau, effectivement la liste est incomplète
pour mémoire en D22
=SIERREUR(INDEX(Champ;PETITE.VALEUR(SI(mat=$C$3;LIGNE($A$1:$A$101));LIGNE($A1));6);"")
crdlmnt
Alors qu'est ce qui ne va pas?
,sachant comme déja dit, que dans le cas de la feuille contrôle de votre modèle, la référence basé sur C3 n'existe pas dans le champ de RECHERCHE, d'où les #N/A et que par contre les résultats en B,C,D,E sont corrects
A vous lire
Mais la problématique est la suivante
Lorsque je sélectionne dans l'onglet "Contrôle Individuel" un code GAP, je souhaite avoir une liste issue de l'onglet "Requete Ad-hoc" comprenant les champs indiqués, à savoir :
Matricule (colonne B) - Date de début (colonne F) - Date de fin (Colonne G) - Nb d'IJSS (colonne Q)
Ne pas tenir compte de la colonne A de l'onglet Contrôle individuel, elle doit me servir à alimenter les colonnes F, G, H du même onglet.
L'idéal était de rajouter une condition qui dit la chose suivante :
Si le champ Matricule de l'onglet Contrôle individuel est renseigné, n'afficher que les renseignements pour ce matricule, sinon afficher la liste des matricules.