rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Probleme avec la fonction si excel

yves 2008, le vendredi 18 juillet 2008 à 00:01:13
Bonjour, a tous le monde

Je vous explique d’abord ce que je veux faire :
Je reçois un tableau Excel dans un format qui ne correspond pas à mon format.
Ex :
| Civilité Nom Prénom | adresse |
| M ou Mme Dupont Paul | 10 chemin des joules 75008 Paris |

Or ma base de donner accès est dans ce format :

| Civilité | Nom Prénom | adresse | code postal et villes |
| M ou Mme | Dupont Paul | 10 chemin des joules | 75008 Paris |

Donc il faut transformer le fichier Excel pour le rendre compatible accès
La ou je coince,.c’est pour séparer Civilité Nom Prénom sachant que dans civilité il y a uniquement les valeurs suivantes
M
M ou Mme
Mme
Mlle
Et pour finir si il n’y a pas toutes ces valeurs alors ça me laisse la case identique

Voici ma formule Excel
SI(CHERCHE("M ou Mme";B1;1)-8;STXT(B1;CHERCHE("M ou Mme";B1;1)+8;NBCAR(B1));SI(CHERCHE("M";B1;1)+1;STXT(B1;CHERCHE("M";B1;1)+1;NBCAR(B1))))

Le Problème avec cette formule le premier « si « marche très bien, mais pas le reste
Comment faire aidé moi svp merci.
Configuration: Windows 2000
Internet Explorer 6.0
Répondre à yves 2008  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Raymond PENTIER, le vendredi 18 juillet 2008 à 06:36:16
"Le problème avec cette formule : le premier SI marche très bien, mais pas le reste"

Sur quoi tu te bases pour affirmer cela ? C'est toute la formule qui ne suit pas de logique. D'ailleurs elle est destinée à quoi ? Afficher la civilité ? Et comment affiches-tu le Nom-prénom ?
Je te propose d'utiliser une colonne de code, D par exemple, avec le nombre de caractères que comporte la civilité, où tu saisis la formule
=SI(GAUCHE(B:B;8)="M ou Mme";8; SI(GAUCHE(B:B;4)="Mlle";4; SI(GAUCHE(B:B;3)="Mme";3; 1)))
La colonne E acueillera la civilité seule avec la formule =GAUCHE(B:B;D:D)
La colonne F affichera le Nom-Prénom avec la formule =STXT(B:B;D:D+2;99)

Salut, et à bientôt. C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond
Répondre à Raymond PENTIER

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
yves 2008, le vendredi 18 juillet 2008 à 16:58:52
Bonjour et merci

pour avoir passé du temp sur ma formule

en effet je ne suis pas un pros de excel et j'ai regarder sur internet les solutions
mais impossible de faire fonctionner la moindre formule correctement
j'avais des fragements de formule que j'ai adapté mais quand j'ais que "M" il y a une erreur
#valeur!

mais bon maintenant que votre formule marche ça me va

par contre j'aime bien comprendre les formules comment elle fonctionne.
alors si je n'abuse pas trop de votre gentillesse, pourriez vous me l'expliquer.

merci encore
Répondre à yves 2008

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
yves 2008, le vendredi 18 juillet 2008 à 17:14:34
en faite apres vérification, si il n y a pas de civilité ca me rogne les deux premieres lettres

ex :

a1="Dons Anonymes" avec votre formule d1="1" e1="d" f1="ns Anonymes"

or il faudrait d1="0" e1="" f1="Dons Anonymes"
Répondre à yves 2008

8


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Raymond PENTIER, le samedi 19 juillet 2008 à 05:14:54
Désolé, mais dans ta demande je n'avais pas réalisé qu'existait le cas où il n'y a pas de civilité ... Et ça change tout !
Il faudrait compléter la première formule :
=SI(GAUCHE(B:B;8)="M ou Mme";8;SI(GAUCHE(B:B;4)="Mlle";4;SI(GAUCHE(B:B;3)="Mme";3;SI(GAUCHE(B:B;2)="M ";1;0)))) --> ne pas oublier l'espace de "M " !
La formule colonne E ne bouge pas.
La formule colonne F devient : =SI(D:D>0;STXT(B:B;D:D+2;99);B:B)

"par contre j'aime bien comprendre les formules comment elle fonctionne."
Première formule, colonne D.
=GAUCHE(B:B;4) affiche les 4 premiers caractères du contenu de B (sur la même ligne).
Est-ce que les 8 premiers caractères sont "M_ou_Mme" ? Si oui, mettre 8 dans la cellule.
Sinon, est-ce que les 4 premiers caractères sont "Mlle" ? Si oui, mettre 4 dans la cellule.
Sinon, est-ce que les 3 premiers caractères sont "Mme" ? Si oui, mettre 3 dans la cellule.
Sinon, est-ce que les 2 premiers caractères sont "M " ? Si oui, mettre 1 dans la cellule.
Sinon, mettre zéro, car il n'y a pas de civilité.
Deuxième formule, colonne E.
=GAUCHE(B:B;D:D) affiche le nombre de caractères de la colonne B, en partant du début, nombre indiqué dans la colonne D. On obtient la civilité seule.
Troisième formule, colonne F.
=STXT(B:B;5;9) affiche 9 caractères (au plus) à partir du 5ème caractère du contenu de B.
Si la colonne D contient la valeur zéro, on affiche tout le contenu de la colonne B.
Sinon, on commence au caractère placé au rang D+2 et on écrit tout le reste (d'où la valeur 99 pour être tranquille).

Est-ce plus clair pour toi ?
Amitiés. C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond
Répondre à Raymond PENTIER

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
yves 2008, le lundi 21 juillet 2008 à 11:13:25
Bonjour et merci Raymond

vous etes un as d'excel

c'est exactement ce que je voulais et grace a vos explications, j'ai pu
modifier la formule car la formule ne fonctionnait pas,j'avais oublier une civilité M et Mme

voici la formule final pour ceux que ça interesse:

La formule colonne d devient : =SI(GAUCHE(B:B;8)="M ou Mme";8;SI(GAUCHE(B:B;8)="M et Mme";8;SI(GAUCHE(B:B;4)="Mlle";4;SI(GAUCHE(B:B;3)="Mme";3;SI(GAUCHE(B:B;2)="M ";1;0)))))

le reste ne change pas
La formule colonne E :=GAUCHE(B:B;D:D)
La formule colonne F : =SI(D:D>0;STXT(B:B;D:D+2;99);B:B)

merci encore et bonne semaine
Répondre à yves 2008

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Raymond PENTIER, le lundi 21 juillet 2008 à 15:50:08
Parfait, Yves ! Tu es un bon élève ...

Alors, puisque ça te plaît, ta formule :
=SI(GAUCHE(B:B;8)="M ou Mme";8;SI(GAUCHE(B:B;8)="M et Mme";8;SI(GAUCHE(B:B;4)="Mlle";4;SI(GAUCHE(B:­B;3)="Mme";3;SI(GAUCHE(B:B;2)="M ";1;0)))))
devient, en utilisant la fonction OU combinée avec la fonction SI :
=SI(OU(GAUCHE(B:B;8)="M ou Mme";(GAUCHE(B:B;8)="M et Mme");8;SI(GAUCHE(B:B;4)="Mlle";4;SI(GAUCHE(B:­B;3)="Mme";3;SI(GAUCHE(B:B;2)="M ";1;0)))))
ou, en utilisant la fonction DROITE combinée avec la fonction GAUCHE :
=SI(DROITE(GAUCHE(B:B;8);3)="Mme";8;SI(GAUCHE(B:B;4)="Mlle";4;SI(GAUCHE(B:­B;3)="Mme";3;SI(GAUCHE(B:B;2)="M ";1;0)))))
Je préfère cette dernière, non seulement car elle évoque mon service militaire (droite-gauche !), mais aussi parce qu'elle est plus courte et, somme toute, plus élégante.

Ceci dit, je ne suis pas un as, loin de là ! Simplement, Excel est un logiciel que j'aime beaucoup et que je pratique assidûment, et ce genre d'exercice cérébral est une bonne prévention contre Alzheimer et ses collègues ... C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond
Répondre à Raymond PENTIER

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vaucluse, le vendredi 18 juillet 2008 à 07:00:49
Bonjour

Peut être en agissant uniquement sur ce qui différencie les codes:

=SI(ESTVIDE(A5);"";SI(STXT(A5;3;1)="o";"M ou Mme";SI(STXT(A5;3;1)="e";"Mme";SI(STXT(A5;3;1)="l";"Mlle";"M"))))

Cette formule __(attention aux signes...) __ va chercher la 3° lettre dans la cellule A5 et selon ce qu'elle trouve, renvoi le code correspondant, étant donné que dans chaque type, la troisième lettre est différente
(renvoi M par défaut si il n'y a pas de lettre en 3° position)

Nota compte tenu des caprices d'affichage de CCM, les & quot; que vous pouvez trouver dans la formule ci dessus sont a remplacé par des guillemets

Bonne chance
Crdlmnt
La vérité ne se possède pas, elle se cherche seulement
Répondre à Vaucluse

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vaucluse, le vendredi 18 juillet 2008 à 07:12:53
Re
pour plus de sureté je joins un petit exemple de ma prposition au lien ci dessous
http://www.cijoint.fr/cjlink.php?file=cj200807/cijTnKtYez.xl­s
Crdlmnt La vérité ne se possède pas, elle se cherche seulement
Répondre à Vaucluse

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
yves 2008, le vendredi 18 juillet 2008 à 17:04:24
Bonjour et merci

pour avoir passé du temp sur ma formule

je n'arrive pas a faire fonctionner votre formule
et le lien ne fontionne pas chez moi

merci a bientôt
Répondre à yves 2008

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
yves 2008, le vendredi 18 juillet 2008 à 17:29:02
je vais rajoueté un détail car je me suis mal fais comprendre

Yves 2008 a dit "Et pour finir si il n’y a pas toutes ces valeurs alors ça me laisse la case identique"

en faite ce que j'ai voulue dire c'est que quand j'ai ex:

a1="Dons anonymes" e1="" f1="Dons anonymes"
a2="st balendrin" e2="" f2="st balendrin"
a3="association mjnc" e3="" f3="association mjnc"

milles excuses de ne pas avoir été clair

merci encore
Répondre à yves 2008
Logiciels pertinents trouvés dans les téléchargements
Télécharger Excel Viewer 2003Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même...Catégorie: Tableur
Licence: Freeware/gratuit
Télécharger Metapad 3.51Metapad - metapad est un éditeur de texte simple, petit et rapide (et complètement gratuit) avec des fonctionnalités similaires à...Catégorie: Traitement de texte
Licence: Freeware/gratuit
Télécharger Picnik 2.3Picnik - Editez vos images d'une autre façon, d'une manière plus fun sans vous casser la tête. Picnik est un éditeur d'images...Catégorie: Graphisme
Licence: Freeware/gratuit
Télécharger MuseTools 2.11MuseTools - MuseTools a pour but de faciliter la vie des utilisateurs de MPC (MusePack), qualitativement parlant le meilleur format de...Catégorie: Conversion audio
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « fonction si dans excel »