Formule excel recherche suivant plusieurs conditions

Résolu/Fermé
Fleur99 - 10 nov. 2013 à 22:52
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 - 11 nov. 2013 à 20:39
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

A voir également:

3 réponses

via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
Modifié par via55 le 10/11/2013 à 22:58
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
0
Le lien vers le fichier
http://cjoint.com/?CKkw7Q37rmS
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
10 nov. 2013 à 23:22
Je ne comprends pas ce que tu veux faire avec ce fichier car il a plusieurs fois les mêmes valeurs dans la base C par exemple magasin 1 et année 2013 avec des statuts différents , comment savoir quel statut "remonter" ?
0
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.
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
10 nov. 2013 à 23:54
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
0
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
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
11 nov. 2013 à 20:39
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
0