1ère voyelle d'un mot dans Excel

Résolu
DoRoDoR Messages postés 3 Statut Membre -  
DoRoDoR Messages postés 3 Statut Membre -

Bonjour,

Je voudrais faire une formule qui extrait la première voyelle en minuscule sans accents, d'une cellule par ex. A1 qui contiendrait un mot  (possiblement en minuscule ou en majuscule)

par ex. A1 = "Dominique", A2 contiendrait une fonction qui renvoie "o"
si A1 = "aeiou", A2 renvoie "a"
si A1 = "DMQ", A2 renvoie "N/A"

J'ai regardé la fonction Regex mais cela semble trop compliqué pour moi.

Merci pour votre aide.

si ALinux / Firefox 137.0

4 réponses

Résumé de la discussion

Le problème consiste à extraire la première voyelle sans accent et en minuscule d'un mot dans une cellule (par exemple A1), et à renvoyer "N/A" s'il n'y en a aucune.
En LibreOffice, la solution efficace est =REGEX(MINUSCULE(A1); "[aeiouy]"), qui renvoie directement la première voyelle rencontrée.
Sous Excel, pour les versions non 365, on peut utiliser STXT avec AGREGAT et CHERCHE sur les voyelles ("a";"e";"i";"o";"u";"y") pour obtenir la position puis extraire le caractère, avec une variante utilisant SIERREUR pour gérer le cas sans voyelle et en incluant les voyelles accentuées.
Pour Excel 365, la solution simple est =REGEX.EXTRAIRE(A1;"[aeiouyAEIOUY]"), qui renvoie la première voyelle sans accent.

Généré automatiquement par IA
sur la base des meilleures réponses
danielc0 Messages postés 2053 Date d'inscription   Statut Membre Dernière intervention   248
 

Bonjour,

Essaie :

=STXT(A1;MIN(SIERREUR(CHERCHE({"a";"e";"i";"o";"u";"y";"à";"é";"è";"ê";"î";"ô";"û";"ü";"ë";"â"};MINUSCULE(A1));FAUX));1)

Daniel


0
brucine Messages postés 23596 Date d'inscription   Statut Membre Dernière intervention   3 752
 

Bonjour,

Sauf si j'ai mal lu, la recherche doit porter sur les voyelles sans accent mais il est dit plus loin possiblement en majuscule.

CHERCHE est indifférent à la casse et retourne a ou A sans quoi il faut utiliser TROUVE et bien sûr spécifier dans la recherche "a";"A";...

Dans le premier cas de figure ne suffit-il pas, testant si on le souhaite l'erreur si la cellule ne contient aucune voyelle:

=CHERCHE({"a";"e";"i";"o";"u;";"y"};A11)

0
brucine Messages postés 23596 Date d'inscription   Statut Membre Dernière intervention   3 752 > brucine Messages postés 23596 Date d'inscription   Statut Membre Dernière intervention  
 

Pardon, on cherche bien sûr le caractère, pas seulement sa position:

=STXT(A11;CHERCHE({"a";"e";"i";"o";"u;";"y"};A11);1)

0
PapyLuc51 Messages postés 5093 Date d'inscription   Statut Membre Dernière intervention   1 493
 

Bonjour danielc0

J'ai essayé ta formule et sur mon Excel 2013 elle ne fonctionne que si on la valide en matricielle Ctrl+Maj+Enter

Cordialement

0
danielc0 Messages postés 2053 Date d'inscription   Statut Membre Dernière intervention   248 > PapyLuc51 Messages postés 5093 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

C'est fort possible. Avec Excel 365, la plupart des formules n'ont pas besoin d'être validées matriciellement. Je ne peux malheureusement pas le tester pour les versions précédentes.

Cordialement.

Daniel

0
bigoudiii Messages postés 276 Date d'inscription   Statut Membre Dernière intervention   91 > PapyLuc51 Messages postés 5093 Date d'inscription   Statut Membre Dernière intervention  
 

Hello

@PapyLuc51 StatutMembre

A la place du MIN(SIERREUR(... tu peux utiliser AGREGAT (disponible depuis Excel 2010) qui ne nécessite pas de validation matricielle :

=STXT(A1;AGREGAT(15;6;CHERCHE({"a";"e";"i";"o";"u";"y"};MINUSCULE(A1));1);1)
1
bigoudiii Messages postés 276 Date d'inscription   Statut Membre Dernière intervention   91
 

Hello,

A tester avec les Regex (pour Excel 365) :

=REGEX.EXTRAIRE(A1;"[aeiouyAEIOUY]")
0
DoRoDoR Messages postés 3 Statut Membre
 

Merci à tous,  avec Libre Office la réponse 

=STXT(A3,AGREGAT(15,6,CHERCHE({"a";"e";"i";"o";"u";"y"},MINUSCULE(A3)),1),1)

fonctionne bien, merci ! 

(A3 est la cellule contenant le  mot de départ)

0
bigoudiii Messages postés 276 Date d'inscription   Statut Membre Dernière intervention   91
 

Hello,

Alors avec LibreOffice tu peux aussi utiliser :

=REGEX(MINUSCULE(A3);"[aeiouy]")
1
DoRoDoR Messages postés 3 Statut Membre
 

Oui parfait !

0