Afficher une valeur suivant conditions depuis un tableau
Résolu
Karbo
-
Karbo -
Karbo -
Bonjour,
Comme expliqué dans le titre, je souhaite récupérer une valeur suivant 3 conditions depuis un tableau.
Le fichier est composé de deux onglets.
Explications « onglet1 » :
- Chaque ligne saisie correspond à une configuration.
- Chaque configuration est valide si la cellule de la colonne « i » correspondante passe à « ACTIF »
o Valide = donnée exploitable pour le résultat
- Elle devient invalide si la cellule de la colonne « i » correspondante passe à « INACTIF »
o Invalide = donnée non exploitable pour le résultat ; mais consultable pour l’historique…
Dans l’« onglet1 », il y a le tableau de valeurs que l’on va saisir une fois.
- De i163 à i192 : Toutes les cellules peuvent afficher « ACTIF » ou « INACTIF » suivant une liste déroulante -> […Il n’y aura pas d’autre cas qu’actif ou inactif…]
- De M163 à M192 : Toutes les cellules peuvent afficher « ROUGE » ou « NOIRE » suivant une liste déroulante -> […D’autres couleurs seront ajoutées par la suite…]
- De P163 à P192 : Une date sera saisie dans la ligne correspondante Invalide pour le résultat
- De T163 à T192 : Toutes les cellules peuvent afficher « BOULE » ou « CARRE » suivant une liste déroulante -> […D’autres formes seront ajoutées par la suite…]
- De Y163 à Y192 : Une information complémentaire sera saisie dans la ligne correspondante -> Invalide pour le résultat
- De AG163 à AG192 : Une valeur sera saisie dans chaque ligne correspondante Valide pour le résultat
Dans l’« onglet2 », c’est le résultat (cellule J14) qui sera affiché selon les paramètres sélectionnés (couleur / forme)
- B8 : Cette cellule contient la couleur « ROUGE » ou « NOIRE » suivant une liste déroulante
- E9 : Cette cellule contient la forme « BOULE » ou CARRE » suivant une liste déroulante
- J14 : Cellule qui doit afficher le résultat de la formule/équation finale
Objectif :
- Si une configuration est valide (onglet 1) ET que les paramètres sélectionnés dans l’onglet 2 correspondent aux paramètres de cette ligne/configuration (onglet 1), alors la valeur de la cellule correspondante dans la colonne AG (onglet 1) sera affiché sur l’onglet 2 en cellule J14
o A savoir que je m’assurerai qu’il n’y ait pas plus de 4 ACTIFS max
> 2 actifs pour la couleur rouge
• 1 actif pour la boule
• 1 actif pour le carre
> 2 actifs pour la couleur noire
• 1 actif pour la boule
• 1 actif pour le carre
On va prendre pour exemple la ligne 163, et on va dire que j’ai sélectionné dans l’onglet 2 « boule » en E9 et « rouge » en B8
- Cas 1 : Si i163 est inactif alors pas de lecture de AG163 en onglet 2 J14
- Cas 2 : Si i163 est « actif » alors lecture possible de AG163. Vérification : si m163 vaut B8 et que t163 ne vaut pas E9 alors pas de lecture de AG163 en onglet 2 J14
- Cas 3 : Si i163 est « actif » alors lecture possible de AG163. Vérification : si m163 ne vaut pas B8 et que t163 vaut E9 alors pas de lecture de AG163 en onglet 2 J14
- Cas 4 : Si i163 est « actif » alors lecture possible de AG163. Vérification : si m163 vaut B8 et que t163 vaut E9 alors lecture de AG163 en onglet 2 J14 -> résultat affiché
mais je souhaite que la formule/méthode/macro choisie permette de réaliser cette lecture de cellule pour le tableau complet (des lignes 163 à 192) et non juste une seule ligne
Pouvez vous me donner un coup de pouce svp ?
S’il faut plus d’informations, n’hésitez pas.
Bonne journée.
Fichier dispo à ce lien : https://www.cjoint.com/c/JAxkul7gnna
Sous Excel office 365
Comme expliqué dans le titre, je souhaite récupérer une valeur suivant 3 conditions depuis un tableau.
Le fichier est composé de deux onglets.
Explications « onglet1 » :
- Chaque ligne saisie correspond à une configuration.
- Chaque configuration est valide si la cellule de la colonne « i » correspondante passe à « ACTIF »
o Valide = donnée exploitable pour le résultat
- Elle devient invalide si la cellule de la colonne « i » correspondante passe à « INACTIF »
o Invalide = donnée non exploitable pour le résultat ; mais consultable pour l’historique…
Dans l’« onglet1 », il y a le tableau de valeurs que l’on va saisir une fois.
- De i163 à i192 : Toutes les cellules peuvent afficher « ACTIF » ou « INACTIF » suivant une liste déroulante -> […Il n’y aura pas d’autre cas qu’actif ou inactif…]
- De M163 à M192 : Toutes les cellules peuvent afficher « ROUGE » ou « NOIRE » suivant une liste déroulante -> […D’autres couleurs seront ajoutées par la suite…]
- De P163 à P192 : Une date sera saisie dans la ligne correspondante Invalide pour le résultat
- De T163 à T192 : Toutes les cellules peuvent afficher « BOULE » ou « CARRE » suivant une liste déroulante -> […D’autres formes seront ajoutées par la suite…]
- De Y163 à Y192 : Une information complémentaire sera saisie dans la ligne correspondante -> Invalide pour le résultat
- De AG163 à AG192 : Une valeur sera saisie dans chaque ligne correspondante Valide pour le résultat
Dans l’« onglet2 », c’est le résultat (cellule J14) qui sera affiché selon les paramètres sélectionnés (couleur / forme)
- B8 : Cette cellule contient la couleur « ROUGE » ou « NOIRE » suivant une liste déroulante
- E9 : Cette cellule contient la forme « BOULE » ou CARRE » suivant une liste déroulante
- J14 : Cellule qui doit afficher le résultat de la formule/équation finale
Objectif :
- Si une configuration est valide (onglet 1) ET que les paramètres sélectionnés dans l’onglet 2 correspondent aux paramètres de cette ligne/configuration (onglet 1), alors la valeur de la cellule correspondante dans la colonne AG (onglet 1) sera affiché sur l’onglet 2 en cellule J14
o A savoir que je m’assurerai qu’il n’y ait pas plus de 4 ACTIFS max
> 2 actifs pour la couleur rouge
• 1 actif pour la boule
• 1 actif pour le carre
> 2 actifs pour la couleur noire
• 1 actif pour la boule
• 1 actif pour le carre
On va prendre pour exemple la ligne 163, et on va dire que j’ai sélectionné dans l’onglet 2 « boule » en E9 et « rouge » en B8
- Cas 1 : Si i163 est inactif alors pas de lecture de AG163 en onglet 2 J14
- Cas 2 : Si i163 est « actif » alors lecture possible de AG163. Vérification : si m163 vaut B8 et que t163 ne vaut pas E9 alors pas de lecture de AG163 en onglet 2 J14
- Cas 3 : Si i163 est « actif » alors lecture possible de AG163. Vérification : si m163 ne vaut pas B8 et que t163 vaut E9 alors pas de lecture de AG163 en onglet 2 J14
- Cas 4 : Si i163 est « actif » alors lecture possible de AG163. Vérification : si m163 vaut B8 et que t163 vaut E9 alors lecture de AG163 en onglet 2 J14 -> résultat affiché
mais je souhaite que la formule/méthode/macro choisie permette de réaliser cette lecture de cellule pour le tableau complet (des lignes 163 à 192) et non juste une seule ligne
Pouvez vous me donner un coup de pouce svp ?
S’il faut plus d’informations, n’hésitez pas.
Bonne journée.
Fichier dispo à ce lien : https://www.cjoint.com/c/JAxkul7gnna
Sous Excel office 365
Configuration: Windows / Chrome 79.0.3945.130
A voir également:
- Afficher une valeur suivant conditions depuis un tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
Voici la fonction que j'ai créé qui, je pense répondra à votre demande :
=SIERREUR((INDEX(onglet1!A163:A191;EQUIV(B8&E9&"ACTIF";onglet1!M163:M191&onglet1!T163:T191&onglet1!I163:I191;0)));"Non trouvé")
L'idée est la suivante : EQUIV(B8&E9&"ACTIF";onglet1!M163:M191&onglet1!T163:T191&onglet1!I163:I191;0)))
Cette partie me sert à regarder dans les colonnes M T et I de l'onglet 1, si je trouve les données de B8, E9 et "ACTIF" dans le même ordre.
INDEX(onglet1!A163:A191...
Si j'ai trouvé ce que je cherche avec la partie EQUIV(...., je récupère les infos qui sont dans la colonne A du tableau de l'onglet 1.
=SIERREUR(...;"Non trouvé")
Si je ne trouve rien, j'affiche "Non trouvé"
Attention, c'est une formule matricielle qu'il faut donc valider en faisant Ctrl + Shift + Entree.
De plus, une formule matricielle ne peut pas se trouver dans une cellule fusionnée... C'est pour cela que j'ai mis la formule en J15 dans le fichier ci-dessous.
N'hésitez pas si vous avez des questions.
Fichier joint : https://www.cjoint.com/c/JAxlisnCGIV
Voici la fonction que j'ai créé qui, je pense répondra à votre demande :
=SIERREUR((INDEX(onglet1!A163:A191;EQUIV(B8&E9&"ACTIF";onglet1!M163:M191&onglet1!T163:T191&onglet1!I163:I191;0)));"Non trouvé")
L'idée est la suivante : EQUIV(B8&E9&"ACTIF";onglet1!M163:M191&onglet1!T163:T191&onglet1!I163:I191;0)))
Cette partie me sert à regarder dans les colonnes M T et I de l'onglet 1, si je trouve les données de B8, E9 et "ACTIF" dans le même ordre.
INDEX(onglet1!A163:A191...
Si j'ai trouvé ce que je cherche avec la partie EQUIV(...., je récupère les infos qui sont dans la colonne A du tableau de l'onglet 1.
=SIERREUR(...;"Non trouvé")
Si je ne trouve rien, j'affiche "Non trouvé"
Attention, c'est une formule matricielle qu'il faut donc valider en faisant Ctrl + Shift + Entree.
De plus, une formule matricielle ne peut pas se trouver dans une cellule fusionnée... C'est pour cela que j'ai mis la formule en J15 dans le fichier ci-dessous.
N'hésitez pas si vous avez des questions.
Fichier joint : https://www.cjoint.com/c/JAxlisnCGIV
Merci pour les explications !