Alléger une formule

Gunther

XLDnaute Nouveau
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 ^^
 

jeanpierre

Nous a quitté
Repose en paix
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
 

Gunther

XLDnaute Nouveau
Re : Alléger une formule

Bonsoir Jeanpierre,

Je viens de faire un exemple.

en A1, tu notes un chiffre entre 1 & 9
tu auras ton résultat en B1

Merci d'avoir répondu si vite !
 

Pièces jointes

  • recherche.xls
    19.5 KB · Affichages: 53
  • recherche.xls
    19.5 KB · Affichages: 57
  • recherche.xls
    19.5 KB · Affichages: 56

ROGER2327

XLDnaute Barbatruc
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
 

Tibo

XLDnaute Barbatruc
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.

@+
 

hoerwind

XLDnaute Barbatruc
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)
 

Gunther

XLDnaute Nouveau
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 !
 

hoerwind

XLDnaute Barbatruc
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.
 

ROGER2327

XLDnaute Barbatruc
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...
 

Discussions similaires

Réponses
3
Affichages
226
Réponses
9
Affichages
398

Statistiques des forums

Discussions
312 466
Messages
2 088 663
Membres
103 910
dernier inscrit
amor57