Formule TROUVE (Excel) dans ACCESS avec renvoie de valeur ?

Pierrax75 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
Pierrax75 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais savoir si il était possible d'écrire cette formule et surtout comment dans Access. Ou trouver une variante qui ferait la même chose :

SI(SIERREUR(TROUVE("_DVD_";D2;1);0)>1;"DVD";



Je m'explique, j'ai de grosses bases de données où se trouve des codes références. Ces codes sont imbriqués de plusieurs "label" et j'aimerai dès que je trouve ce "label" dans la chaîne de valeur renvoyer le nom du "Label".

J'utilise aujourd'hui cette formule :

SI(SIERREUR(TROUVE("_DVD_";D2;1);0)>1;"DVD"



SI on trouve "Label" alors renvoyé la position SI cette position est supérieur à 1 (Alors la valeur existe) ALORS renvoyer "Label".

J'utilise Access 2007 / Et j'aimerai faire cette formule dans une requête qui est lié à une table lié (excel)

Merci beaucoup,


A voir également:

3 réponses

Utilisateur anonyme
 
Bonjour,

regardes du côté de INSTR

https://sql.sh/fonctions/instr

a+
0
Utilisateur anonyme
 
En te relisant, ce n'est pas clair :
SI on trouve "Label" alors renvoyé la position SI cette position est supérieur à 1 (Alors la valeur existe) ALORS renvoyer "Label".

Il y a 2 'alors'.

Exemple (à toi de répondre) :
Chaine recherchée : "DVD"

Que renvoyer quand la chaine dans laquelle tu recherches est :
a/ ADVD54
b/ eriodDVE
c/ erDVEDVD
d/ DVD45

A+

Quand Jimmy dit What'd I say 
I love you baby 
C'est comme qui dirait 
Toute la province qui chante en anglais
0
Pierrax75 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Pardonne moi je me suis surement mal exprimé :

On recherche la chaine de caractère "donc le label" dans une cellule avec la formule TROUVE (Cette formule dans Excel renvoie la position du premier caractère rechercher dans une chaine de valeur. SI la chaine de valeur existe elle renvoie donc un entier positif donc > 1. SI la valeur n'existe pas elle renvoie une erreur "N/A".

DONC : SI TROUVE renvoie une valeur >1 ALORS renvoyer "un label défini" SINON renvoyer 0.

Le but est d'imbriquer plusieurs formules afin de créer une sorte de mapping automatique.

SI(SIERREUR(TROUVE("_DVD_";D2;1);0)>1;"DVD";SI(SIERREUR(TROUVE("_CD_";D2;1);0)>1;"CD";SI(SIERREUR(TROUVE("_JEU_PC_";D2;1);0)>1;"JEU PC";"0"


Imaginons que j'ai ces labels dans une colonne :

a) _DVD_10_50_40 --> Renvoyer DVD
b) _CD_10_25_80 --> Renvoyer CD
c)_JEU_PC_40_58_96 --> Renvoyer JEU PC

Avec ton exemple :

Chaine recherchée : "DVD"

Que renvoyer quand la chaine dans laquelle tu recherches est :
a/ ADVD54 --> DVD
b/ eriodDVE --> 0
c/ erDVEDVD --> DVD
d/ DVD45 --> DVD

Merci de ton aide, je vais regarder le lien que tu m'as donné plus haut.
0
Utilisateur anonyme > Pierrax75 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

pourquoi > 1 ??? Je dirais <>0...

A+
0
Pierrax75 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Oui en effet 0 serait plus judicieux mais j'ai une clef avec les labels du coup c'est obligatoirement supérieur à 1. Mais vous avez raison.
0
Utilisateur anonyme
 
La fonction INSTR combinée avec SSI devrait répondre à tes besoins...

A+
0
Pierrax75 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Très bien merci beaucoup je vais regarder ça.

Bonne journée et encore merci.
0