Formule excel recherche suivant plusieurs conditions
Résolu
Fleur99
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche une formule Excel (ou code VBA) qui m'affiche la valeur cherchée si plusieurs conditions sont vrais. Formule différente suivant le numéro de base présent en colonne A.
Base A = colonne A, lignes 2 à 601
Base C = colonne A, lignes 2102 à 2301
Données communes pour la recherche : en colonne K (magasin) et en colonne S (l'année).
Exemple dans le fichier joint.
Colonne K de la base A : nom du magasin ou pas de valeur.
Colonne R (statut) de la base A : contient soit les valeurs "Livré", "Commandé" ou pas de valeur.
Colonne K de la base C : nom du magasin ou pas de valeur.
Colonne CE (statut B) de la base C, contient soit les valeurs "Expédié", "Non expédié" ou pas de valeur.
1- formule excel à ajouter dans la colonne CE, base A (colonne A, lignes 2 à 601).
Pour ligne CE2 :si K2 vide, ne rien faire, sinon recherche valeurs K2 et S2 dans la même colonne plage K2102 à S2301.
Si condition vrai, remonter en CE2 la valeur de la case correspondante.
2- formule excel à ajouter colonne R, base C (colonne A, lignes 2102 à 2301)
Pour ligne R2102 : si K2102 vide, ne rien faire, sinon recherche valeurs K2102 et S2102 dans la même colonne plage K2 à S601, Si conditions vrai, remonter en R2 la valeur de la case correspondante.
Je vous remercie pour votre aide.
Cordialement
Je cherche une formule Excel (ou code VBA) qui m'affiche la valeur cherchée si plusieurs conditions sont vrais. Formule différente suivant le numéro de base présent en colonne A.
Base A = colonne A, lignes 2 à 601
Base C = colonne A, lignes 2102 à 2301
Données communes pour la recherche : en colonne K (magasin) et en colonne S (l'année).
Exemple dans le fichier joint.
Colonne K de la base A : nom du magasin ou pas de valeur.
Colonne R (statut) de la base A : contient soit les valeurs "Livré", "Commandé" ou pas de valeur.
Colonne K de la base C : nom du magasin ou pas de valeur.
Colonne CE (statut B) de la base C, contient soit les valeurs "Expédié", "Non expédié" ou pas de valeur.
1- formule excel à ajouter dans la colonne CE, base A (colonne A, lignes 2 à 601).
Pour ligne CE2 :si K2 vide, ne rien faire, sinon recherche valeurs K2 et S2 dans la même colonne plage K2102 à S2301.
Si condition vrai, remonter en CE2 la valeur de la case correspondante.
2- formule excel à ajouter colonne R, base C (colonne A, lignes 2102 à 2301)
Pour ligne R2102 : si K2102 vide, ne rien faire, sinon recherche valeurs K2102 et S2102 dans la même colonne plage K2 à S601, Si conditions vrai, remonter en R2 la valeur de la case correspondante.
Je vous remercie pour votre aide.
Cordialement
A voir également:
- Formule excel recherche suivant plusieurs conditions
- Formule moyenne excel plusieurs colonnes - Guide
- Formule si et excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
3 réponses
Bonsoir
Il n'y a pas de fichier joint
Pour joindre un fichier allégé et anonymé, tu le post sur cjoint.com et tu indiques ici ensuite le lien fourni
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Il n'y a pas de fichier joint
Pour joindre un fichier allégé et anonymé, tu le post sur cjoint.com et tu indiques ici ensuite le lien fourni
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Dans mon exemple il y a plusieurs fois les mêmes valeurs base C car le cas pourra se produire.
Le premier statut trouvé sera celui affiché avec condition même magasin, même date.
Car avec ce tableau un tableau dynamique croisé est crée comportant par la suite tous les statuts, sans colonne vide.
Le premier statut trouvé sera celui affiché avec condition même magasin, même date.
Car avec ce tableau un tableau dynamique croisé est crée comportant par la suite tous les statuts, sans colonne vide.
Il faut passer par une formule matricielle avec INDEX et EQUIV
A mettre en CE2
=SIERREUR(SI(K2<>"";INDEX(CE$2102:$CE$2302;EQUIV(K2&S2;$K$2102:$K$2302&$S$2102:$S$2302;0);1);"");"")
puis valider par Ctrl + Maj + Entrée la formule se met alors entre { }
A étirer ensuite vers le bas
Explication :
INDEX prend dans la matrice CE la valeur en ligne x (calculée par EQUIV) et en colonne 1
EQUIV recherche l'équivalent de K2 et S2 dans la double matrice K et S (possible car on valide en matricielle) et renvoie sa position
donc si les valeurs recherchées sont en 10eme position dans les matrices INDEX ira chercher dans la place CE désignée la valeur également en 10ème position
A toi maintenant de bâtir le même type de formule pour la colonne R
Cdlmnt
A mettre en CE2
=SIERREUR(SI(K2<>"";INDEX(CE$2102:$CE$2302;EQUIV(K2&S2;$K$2102:$K$2302&$S$2102:$S$2302;0);1);"");"")
puis valider par Ctrl + Maj + Entrée la formule se met alors entre { }
A étirer ensuite vers le bas
Explication :
INDEX prend dans la matrice CE la valeur en ligne x (calculée par EQUIV) et en colonne 1
EQUIV recherche l'équivalent de K2 et S2 dans la double matrice K et S (possible car on valide en matricielle) et renvoie sa position
donc si les valeurs recherchées sont en 10eme position dans les matrices INDEX ira chercher dans la place CE désignée la valeur également en 10ème position
A toi maintenant de bâtir le même type de formule pour la colonne R
Cdlmnt
Bonsoir,
J'ai testé votre formule matricielle en CE, adapté cette dernière pour la colonne R.
Les résultats sont concluants.
Un grand merci pour la formule et les explications car mes recherches n'avaient pas abouties.
Les formules EQUIV et INDEX semblent plus performantes que celle que j'utilise (RECHERCHEV)
Cordialement
J'ai testé votre formule matricielle en CE, adapté cette dernière pour la colonne R.
Les résultats sont concluants.
Un grand merci pour la formule et les explications car mes recherches n'avaient pas abouties.
Les formules EQUIV et INDEX semblent plus performantes que celle que j'utilise (RECHERCHEV)
Cordialement
Bonsoir Fleur
Tant mieux que ton problème ait pu être résolu !
En effet la combinaison d'index et equiv permet plus de possibilités puisque recherchev est limité à la recherche dans une seule colonne qui en plus doit être placée en premier; dans tous les autres cas index equiv apporte souvent la solution
Cdlmnt
Tant mieux que ton problème ait pu être résolu !
En effet la combinaison d'index et equiv permet plus de possibilités puisque recherchev est limité à la recherche dans une seule colonne qui en plus doit être placée en premier; dans tous les autres cas index equiv apporte souvent la solution
Cdlmnt
http://cjoint.com/?CKkw7Q37rmS