Lo Calc - Fonctions SI et RECHERCHEV

Bonjour,

Je me retrouve face à un autre problème.
Je suis donc parvenu à créer un appariement de joueurs en fonction du
classement.

Pour entrer les résultats dans un tableau récapitulatif, j'ai donc fait une
*/rechercheV/* suivant une cellule qui renvoie les valeurs dans les cases
appropriées.
Jusque là, tout va bien.

Ensuite, dans ma feuille de résultat, j'ai donc une valeur numérique suivant
que le joueur référencé se trouve dans la colonne de gauche ou de droite.
L'autre case faisant référence à la colonne où le joueur n'apparaît pas. Il
ne peut être joueur A et B d'un même match. Logique me direz-vous.
Dans cette case apparaît alors la valeur *#N/D*. Forcément, le critère de
recherche ne donne aucun résultat.
Comment puis-je faire pour cette valeur ne s'affiche pas svp ?

Si vous avez compris du premier coup, vous êtes vraiment fort.

*En gros, je voudrais pouvoir faire ceci :*
ou encore Si (RECHERCHEV(critère de recherche 01; matrice ; indice ; ordre
de tri) existe alors il faut afficher ce nombre sinon, afficher la valeur
suivant le critère de recherche 02.

J'ai pensé à ceci :
si(ou(recherchev(critère
01...)>=0;recherchev(critère01...)<=10);recherchev(critère01...);recherchev(critère02...))

Mais cela ne fonctionne pas :frowning:

C'est peut-être trop compliqué pour se passer d'une macro ? Mais là, je suis
une quille.

Quelqu'un aurait un indice à me filer ? (je vous jure que je cherche...)
En vous remerciant.

Ps : Je pourrai m'en passer mais le hic de ce genre de programme, c'est que
lorsque l'on commence, on ne veut plus s'arrêter.
C'est la raison pour laquelle je demande un indice et non la réponse. :slight_smile:

Bjr,

Il me semble que le OU est inutile puisque la structure de SI est :
SI(condition ; résultat si vrai ; résultat si faux)

AMHA, il suffit de mettre la recherche selon critère 2 en guise de "résultat si faux".

Cordialement
Mr Sandy-Pascal Andriant

(suite du précédent message)

il faut faire la recherchev selon le 2° critère dans la partie de la structure de SI correspondant à "résultat si faux" de RechercheV sur critère1

SI(critère1; résultat si vrai ; SI(critère2 ; resultat si vrai))

Cordialement
Mr Sandy-Pascal Andriant

Bonjour

Chris Harlem wrote*

bonjour,

Si tu es sûr qu'il est au moins dans un des deux cas, tu peux faure

SI(esterreur(recherchev(1°critere); recherchev(2°critere);recherchev(1°critere))

en gros si le premier recherchev renvoie une erreur (il ne le trouve pas) , tu fais le recherchev avec le econd sinon avec le premier

Claude

bonjour,

Si tu es sûr qu'il est au moins dans un des deux cas, tu peux faire :

SI(esterreur(recherchev(1°critere); recherchev(2°critere);recherchev(1°critere))

en gros si le premier recherchev renvoie une erreur (il ne le trouve pas) , tu fais le recherchev avec le second sinon avec le premier

Claude

Bonjour,

-----Message d'origine-----
De : prog_amateur@hotmail.fr [mailto:prog_amateur@hotmail.fr]
Envoyé : dimanche 27 octobre 2013 09:15
À : users@fr.libreoffice.org
Objet : Re: [fr-users] Lo Calc - Fonctions SI et RECHERCHEV

bonjour,

Si tu es sûr qu'il est au moins dans un des deux cas, tu peux faire :

SI(esterreur(recherchev(1°critere);
recherchev(2°critere);recherchev(1°critere))

en gros si le premier recherchev renvoie une erreur (il ne le trouve
pas) , tu fais le recherchev avec le second sinon avec le premier

La même chose peut se faire maintenant avec la fonction SIERREUR qui réalise
le test en plus "compact":

SIERREUR(recherchev(1°critere);recherchev(2°critere))

Si le premier argument renvoie une erreur, la fonction renvoie le 2°

Cette fonction est apparue avec la version 4 de libO me semble-t-il et est
très pratique.
Dans ton cas, pour que le premier argument renvoie une erreur si le critère
n'existe pas, il faut entrer 0 (FAUX) pour l'ordre de tri, même si la
colonne de recherche est en ordre croissant.

Bon dimanche,
Michel

Bonjour Michel

Michel Rudelle wrote

La même chose peut se faire maintenant avec la fonction SIERREUR qui
réalise
le test en plus "compact":

SIERREUR(recherchev(1°critere);recherchev(2°critere))

En effet... à condition quand même de compléter

=SIERREUR(recherchev(1°critere);SIERREUR(recherchev(2°critere) ; "") )

RechercheV.ods
<http://nabble.documentfoundation.org/file/n4080037/RechercheV.ods>

Cordialement
Pierre-Yves

Vous êtes quand même impressionnant d'efficacité.

Conil26 :
Effectivement, la fonction OU ne me servait qu'à renvoyer un nombre d'une
cellule non disponible.
Du coup, la fonction ESTNA - que je ne connaissais pas du tout - est fort
utile.

Pierre-Yves :
Tu avais exactement compris ma demande. J'ai ouvert ton fichier et c'est
devenu tout de suite plus clair.
Cette fonction me permet de gagner une quinzaine de ligne dans mes feuilles.

Je jouais avec des sommes de cellules qui me renvoyaient #N/D (valeur non
disponible) que j'aurais du effacer en temps réel le jour du tournoi. Je
vous raconte pas le boulot.

Claude :
Ta solution fonctionne surement mais si je me retrouve avec un nombre impair
d'inscrits, je risque de rencontrer des problèmes.

Maintenant, grâce à vous, je vais vraiment passer pour un pro.

Merci à vous pour votre aide.
Bon dimanche,
Chris H.

C'est encore plus simple pour l'encodage cette fonction.

Je sens que je vais passer des heures, des jours et des mois entier sur ce
site à vous (re)lire.

Bonsoir tout le monde,

J'ai tenté de faire plus compact cette fois.
J'ai donc créé une ligne avec la fonction SIERREUR comme indiqué par
Pierre-Yves S.
Malheureusement, je ne m'explique pas pourquoi, il n'indique pas les
résultats escomptés.

Lorsque je regarde la feuille '1st round', la colonne C indique le pseudo du
premier joueur et la colonne H indique le pseudo du second joueur.
Si on entre des résultats dans les colonnes D à F et I à K, la feuille qui
reprend tous les résultats est erronée.

Mais pourquoi ???

D'autant que si dans la feuille '1st round' j indique '2' dans la colonne C
et '1' dans la colonne H, cela fonctionne O_o

Pourriez-vous me dire ce qui ne fonctionne pas svp ?
Je suis perdu là.

Les premières lignes nommées manche 01 à 06 dans la feuille 'Résultats'
fonctionnent à merveille par contre mais elles utilisent la manière non
compacte.

OB2014.ods <http://nabble.documentfoundation.org/file/n4110498/OB2014.ods>

Bonjour

Chris Harlem wrote

Les premières lignes nommées manche 01 à 06 dans la feuille 'Résultats'
fonctionnent à merveille par contre mais elles utilisent la manière non
compacte.

Oui mais en ligne 2 tu testes d'abord $H$4 puis $C$4 alors qu'en ligne 13
tu fais l'inverse.

Voir ci-joint en ligne 14 (je n'ai pas terminé la ligne...)
OB2014.ods <http://nabble.documentfoundation.org/file/n4110570/OB2014.ods>

Cordialement
Pierre-Yves

Bonjour

Tout d'abord je n'ai pas le temps de me pencher sur le côté "fonctionnel".
Je ne peux que te donner la syntaxe des fonctions, à toi de les appliquer
pour obtenir ce que tu veux.

Chris Harlem wrote

Ci joint le document corrigé en fonction de ce que tu m'as indiqué.

Pas tout à fait... Je constate que tu n'emploies pas systématiquement
le 3ème paramètre de la 1ère fonction RECHERCHEV en ligne 13
alors que tu l'emploies en ligne 2... utilisation que tu retrouveras
dans le classeur que j'avais mis en ligne et qui donne les mêmes
résultats en 2 et 13.

Cordialement
Pierre-Yves

Bonjour,

Tout d'abord merci Pierre-Yves S. pour l'attention que tu portes à ma
requête.

La modification que tu me suggères, je l'avais déjà appliquée auparavant.
Malheureusement, lorsque j'effectue cette inversion, le problème reste
toujours d'application.

Car dans ce cas, ce sont les résultats des noms qui se trouvent dans la
colonne C qui sont erronés.
J'ai l'impression qu'en fonction de leur emplacement, il faut soit faire le
test sur H-K d'abord, soit sur C-F. Ce qui n'est franchement pas utilisable
dans ce cas-ci.

Ci joint le document corrigé en fonction de ce que tu m'as indiqué.

OB2014.ods <http://nabble.documentfoundation.org/file/n4110699/OB2014.ods>

Merci encore,
Chris

Ca y est, j'ai compris.

Saleté de 3e paramètre manquant.

Merci et désolé d'avoir usé de ton temps.
Cordialement,
Chris