Alléger une formule

  • Initiateur de la discussion Initiateur de la discussion Gunther
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Gunther

Guest
Bonjour le forum.

Quand nous faisons une formule pour faire une recherche, exemple.
Je recherche A, si A est #N/A, recherche B.

n'y a t'il pas plus simple que ça ?
=si(estna(recherchev(A1;B1:C10;2;FAUX));(recherchev(E2;F1:G10;2;FAUX));(recherchev(A1;B1:C10;2;FAUX)))

Ce que je veux dire par la,
actuellement je ne sais faire que des recherches de ce type :
(rechercheA);(RechercheB);(RechercheA) comme détaillée ci-dessus...

donc ca fait qu'actuellement dans l'un de mes projets, une formule doit me faire remonter une information sur 3 possibilités différentes
Ma formule comme ci-dessous fonctionne, mais me paraît d'après moi... Très lourde :

((rechercheA);(rechercheB);(RechercheA));(RechercheC);((rechercheA);(rechercheB);(RechercheA))

y'a t'il un moyen plus léger pour faire ce genre de recherche ?

Merci à vous ^^
 
Re : Alléger une formule

Bonsoir Gunther,

Ta formule, telle qu'indiquée, ne doit pas être très efficace, c'est le moins que l'on puisse dire....

Un Sommeprod() serait, sans doute, mieux adapté mais pour t'aider il nous faudrait un exemple de ton fichier. Explications précises et résultats attendus aussi.

En bas, par Mode avancé si besoin et dans Gérer les pièces jointes. Recherche sur ton disque, selection et Envoyer (moins de 48.8Ko, zippé au besoin avec le compresseur de Windows). Finir par Envoyer le message.

Bonne nuit.

Jean-Pierre
 
Re : Alléger une formule

Bonjour Gunther, jeanpierre
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]=INDEX($I$1:$K$9;EQUIV(A1;$H$1:$H$9;0);4-NBVAL(DECALER(INDEX($I$1:$I$9;EQUIV(A1;$H$1:$H$9;0));0;0;1;3)))[/B][/COLOR]
ROGER2327
#3509


Jeudi 5 Merdre 137 (Saint Crouducul, troupier, SQ)
3 Prairial An CCXVIII
2010-W20-6T00:40:32Z
 
Re : Alléger une formule

Bonjour à tous,

Une solution valable sur la structure de l'exemple que tu as joint (nombre de 1 à9 et disposition des données 3 - 2 - 1 ) :

Code:
=RECHERCHEV(A1;H1:K9;MOD(A1-1;3)+2)

C'est plus pour le fun que je te propose cette solution, car sinon, c'est la solution de Roger que je considère la plus adaptée.

@+
 
Re : Alléger une formule

Bonjour, salut jeanpierre, Roger et Tibo,

Partant de la supposition que les valeurs A, AA, AAA, B, ... sous l'exemple n'ont pas nécessairement 1, 2 et 3 caractères sous le fichier réel, mais bien un nombre de caractères variables, la formule suivante, sans modifier la mise en page, semble renvoyer les résultats attendus :
Code:
=RECHERCHEV($A$1;$H$1:$K$9;NB.VIDE(DECALER($H$1;$A$1-1;;;4))+2;0)
 
Re : Alléger une formule

Bonjour tout le monde et merci pour toutes vos réponses !

Comme le dit Hoerwind, les valeurs A,AA,AAA sont des exemples, dans mon fichier (que je n'ai pas là) ce sont des n° de séries que je veux récupérer qui peuvent varier de 6 caractères a plus d'une 20aine

En tout cas, vous venez de me faire faire un grd pas en avant ^^

Mais suite a ça, j'ai 2 questions qui me viennent :

Q. 1
comment puis-je faire avec vos formules pour préciser dans quelle colonne a été cherché l'info.
exemple :
"colonne J : AA"
"colonne K : CCC"


voila ce que ca pourrait donner sur mon fichier...
Code:
=SI(ESTVIDE(SI(ESTVIDE(RECHERCHEV(A1;H1:K9;2;FAUX));"colonne J : "&(RECHERCHEV(A1;H1:K9;3;FAUX));(RECHERCHEV(A1;H1:K9;2;FAUX))))

Mais la avec vos nouvelles formules... je suis perdu !

Q. 2
Je ne comprends pas la formule décaler
(DECALER($H$1;$A$1-1;;;4))+2;0)

pourquoi -1 est derrière A$1 ?
et que représente le +2;0 a la fin ?

Encore merci a vous !

A bientôt !
 
Re : Alléger une formule

Bonjour,

En mettant un petit extrait de ton fichier réel en pièce jointe une explication de la formule serait plus explicite.

La question 1 ne concerne pas, je suppose, la formule que j'ai proposée.

La question 2 :
Le -1 derrière $A$1 parce qu'on décale d'un certain nombre de lignes à partir de $H$1, donc $H$1 non compris.
S'il y avait un titre pour la colonne H, le décalage se ferait à partir de cette cellule et le -1 ne serait plus nécessaire.

Le +2 est aussi une adaptation de la valeur du décalage.
Si tu le remplaces par +1 (pour certaines lignes) tu verras que la formule renvoie la valeur de la colonne précédente.
 
Re : Alléger une formule

Bonjour à tous
Une matricielle :
Code:
[COLOR="DarkSlateGray"][B]=SI($A1="";"";INDEX($A$1:$M$25;EQUIV($A1;$H$1:$H$25;0);PETITE.VALEUR(SI(DECALER($I$1:$M$1;EQUIV($A1;$H$1:$H$25;0)-1;0)<>"";COLONNE($I:$M);COLONNE($M:$M));1))&"")[/B][/COLOR]
ROGER2327
#3512


Jeudi 5 Merdre 137 (Saint Crouducul, troupier, SQ)
3 Prairial An CCXVIII
2010-W20-6T10:18:20Z


_______
Mais je n'avais pas vu les deux messages précédents...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
243
Réponses
9
Affichages
563
  • Question Question
Réponses
2
Affichages
800
  • Question Question
Réponses
6
Affichages
777
Réponses
6
Affichages
612
Réponses
3
Affichages
402
Réponses
3
Affichages
562
Retour