OVH Cloud OVH Cloud

Excelabo n° 1587 ChrisV,

1 réponse
Avatar
Jean-Paul V
Bonjour
Mon problème est le suivant : j’ai 2 sociétés A et B certains mouvement
dans la société A entraînent des mouvements dans la société B dans certains
cas fixés par la TABLE qui peut être résumée comme suit ( en fait elle fait
300 lignes ) :
CompteStéA CompteStéB
1* *NOMAP
2* *NOMAP
8* *NOMAP
810001 104000
81000* 8030FR30
812* *NOMAP
813* *NOMAP
8130380* *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
8140* *NOMAP
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l’on n’a pas
trouvé de correspondance, ce qui n’est pas le cas de 81303801.

Nous voyons que si on a un mouvement dans la société A pour trouver quel est
le compte dans B on peut avoir avec cette TABLE 8 cas à examiner qui
pourraient-être exposés de la façon suivante ( or le SI d’excel n’en autorise
que 7):

Si par exemple j’ai dans la colonne A les trois comptes de la société A (
81303801 ; 81303803 ; 810004 ) pour trouver les trois bons résultat en
colonne B ( respectivement 4301FR ; *NOMAP ; 8030FR30 )
je dois faire les trois tests suivants et dans l’ordre
1) Pour 81303801 le test est : =ESTNA(RECHERCHEV(A2;TABLE;2;FAUX))
Le résultat correct est donné par = RECHERCHEV(A2;TABLE;2;FAUX)
2) Pour 81303803 le test devient :
=ESTNA(RECHERCHEV(GAUCHE(C5;7)&"*";TABLE;2;FAUX))
Le résultat correct est donné par :
= RECHERCHEV(GAUCHE(C5;7)&"*";TABLE;2;FAUX)
3 ) Pour 810004 le test devient :
=ESTNA(RECHERCHEV(GAUCHE(A4;5)&"*";TABLE;2;FAUX))
Le résultat correct est dans ce cas donné par :
=RECHERCHEV(GAUCHE(A4;5)&"*";TABLE;2;FAUX)

Si on veut une seule formule pour ces trois cas comment écrire cette formule
n°1587 d’Excelabo de ChrisV :
=INDEX({n1;n2;n3;n4;n5;n6;n7;n8;n9;n10;n11;n12;n13;n14;n15;n16;n17;n18;n19;n20};EQUIV(A4;{"a";"b";"c";"d";"e";"f";g;"h";"i";"j";"k";"l";"m";"n";"o";"p";"q";"r";"s";"t"};0))
Est-ce une formule matricielle ?
Ou mettre les tests à faire dans l’ordre et les résultats correspondants?
Je suis perdu le cerveau fume

Bien Amicalement

Jean-Paul V

1 réponse

Avatar
FILK
Salut,

J'ai tenté une réponse sous forme de fichier pour répondre à ton problème.
L'idée est de passer par des cellules intermédiaires.

Par contre, on arrive à un problème de '*'. :
Fichier à télécharge sur :

http://cjoint.com/?lvkIYZRISN


(personnellement, j'aurais foncé en vba et un "select case" pour résoudre
ton problème, mais visiblement t'es parti sur l'interface Excel)


Bon courage.

Philippe.





Bonjour
Mon problème est le suivant : j’ai 2 sociétés A et B certains mouvement
dans la société A entraînent des mouvements dans la société B dans certains
cas fixés par la TABLE qui peut être résumée comme suit ( en fait elle fait
300 lignes ) :
CompteStéA CompteStéB
1* *NOMAP
2* *NOMAP
8* *NOMAP
810001 104000
81000* 8030FR30
812* *NOMAP
813* *NOMAP
8130380* *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
8140* *NOMAP
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l’on n’a pas
trouvé de correspondance, ce qui n’est pas le cas de 81303801.

Nous voyons que si on a un mouvement dans la société A pour trouver quel est
le compte dans B on peut avoir avec cette TABLE 8 cas à examiner qui
pourraient-être exposés de la façon suivante ( or le SI d’excel n’en autorise
que 7):

Si par exemple j’ai dans la colonne A les trois comptes de la société A (
81303801 ; 81303803 ; 810004 ) pour trouver les trois bons résultat en
colonne B ( respectivement 4301FR ; *NOMAP ; 8030FR30 )
je dois faire les trois tests suivants et dans l’ordre
1) Pour 81303801 le test est : =ESTNA(RECHERCHEV(A2;TABLE;2;FAUX))
Le résultat correct est donné par = RECHERCHEV(A2;TABLE;2;FAUX)
2) Pour 81303803 le test devient :
=ESTNA(RECHERCHEV(GAUCHE(C5;7)&"*";TABLE;2;FAUX))
Le résultat correct est donné par :
= RECHERCHEV(GAUCHE(C5;7)&"*";TABLE;2;FAUX)
3 ) Pour 810004 le test devient :
=ESTNA(RECHERCHEV(GAUCHE(A4;5)&"*";TABLE;2;FAUX))
Le résultat correct est dans ce cas donné par :
=RECHERCHEV(GAUCHE(A4;5)&"*";TABLE;2;FAUX)

Si on veut une seule formule pour ces trois cas comment écrire cette formule
n°1587 d’Excelabo de ChrisV :
=INDEX({n1;n2;n3;n4;n5;n6;n7;n8;n9;n10;n11;n12;n13;n14;n15;n16;n17;n18;n19;n20};EQUIV(A4;{"a";"b";"c";"d";"e";"f";g;"h";"i";"j";"k";"l";"m";"n";"o";"p";"q";"r";"s";"t"};0))
Est-ce une formule matricielle ?
Ou mettre les tests à faire dans l’ordre et les résultats correspondants?
Je suis perdu le cerveau fume

Bien Amicalement

Jean-Paul V