# Fonctions numbers



## Danielmargez (4 Mai 2020)

Bonjour, la grande Famille,

je bloque sur une Extraction  partiel de données dans une cellule, je m’explique:
dans une cellule j’ai un nom composé : exemple: JEAN PAUL . Je souhaiterai de manière générique intégrer la premiere dans une cellule et l’autre dans une autre et cela quelque soit la longueur des éléments.

D’avance, un grand merci.

cdt.

DANIEL


----------



## Chris K (4 Mai 2020)

Comme ça ?





Globalement l’idée est de séparer les deux chaînes qui contiennent un espace. En supposant donc que l’espace est bien le séparateur entre deux chaînes.


----------



## Danielmargez (4 Mai 2020)

Chris, J’ai compris, par contre je n’arrive pas à bien lire ta formule pour les 2 extractions.
peux tu les réécrires SVP

MERCI


----------



## Chris K (4 Mai 2020)

Danielmargez a dit:


> Chris, J’ai compris, par contre je n’arrive pas à bien lire ta formule pour les 2 extractions.
> peux tu les réécrires SVP
> 
> MERCI



En cliquant sur les images que j’ai jointes les formules me semblent parfaitement lisibles.
Pour la colonne où doit apparaître JEAN la formule est :


> STXT(B2;1;CHERCHE( " ";B2;1)−1)


Pour l’autre colonne la formule est :


> STXT(B2;CHERCHE(" ";B2;1)+1;NBCAR(B2))


----------



## Danielmargez (4 Mai 2020)

Holla, je ne connaissais pas, je vais essayer et je reviens vers toi.

merci Chris .


----------



## Danielmargez (4 Mai 2020)

Chris K a dit:


> En cliquant sur les images que j’ai jointes les formules me semblent parfaitement lisibles.
> Pour la colonne où doit apparaître JEAN la formule est :
> 
> Pour l’autre colonne la formule est :



tu as raison, en cliquant cela fonctionne, je ne savais pas.

professsionel tu es .


----------



## Danielmargez (5 Mai 2020)

Chris K a dit:


> En cliquant sur les images que j’ai jointes les formules me semblent parfaitement lisibles.
> Pour la colonne où doit apparaître JEAN la formule est :
> 
> Pour l’autre colonne la formule est :


Bonjour Chris, c’est au top les infos, par contre j’ai besoin de comprendre les formules , car là, c’est moins clair du tout . Hihi autrement cela fonctionne.
j’attends avec impatience ta réponse, je serai moins bête ce soir.


----------



## Danielmargez (5 Mai 2020)

Chris K a dit:


> En cliquant sur les images que j’ai jointes les formules me semblent parfaitement lisibles.
> Pour la colonne où doit apparaître JEAN la formule est :
> 
> Pour l’autre colonne la formule est :


Un grand merci.


----------



## Chris K (5 Mai 2020)

Danielmargez a dit:


> Bonjour Chris, c’est au top les infos, par contre j’ai besoin de comprendre les formules , car là, c’est moins clair du tout . Hihi autrement cela fonctionne.
> j’attends avec impatience ta réponse, je serai moins bête ce soir.



Les deux formules utilisent chacune deux fonctions : STXT et CHERCHE. Ces deux fonctions s’appliquent sur des chaînes de caractère, du texte donc.

La fonction CHERCHE effectue une recherche de caractères et lorsqu’elle trouve le caractère recherché elle indique où se situe celui-ci. Pour cela il faut indiquer à cette fonction deux choses : quel caractère on cherche, dans quelle cellule on veut faire cette recherche et à partir de quelle position veut débuter la recherche.

La formule :


> CHERCHE( " ";B2;1)



Signifie : Chercher un espace (‘’ ‘’) situé dans la texte de la cellule B2 et commencer la recherche au tout début du texte (1 = la position du premier caractère du texte). Donc si la cellule B2 contient le texte JEAN PAUL alors la fonction va chercher l’espace (’’ ‘’) dans ce texte en commençant la recherche au tout début du texte.
Quand elle trouve le caractère espace, la fonction RECHERCHE va nous indiquer où se trouve (sa position) cet espace. Dans notre exemple elle renvoie la valeur 5.

Avec ça on n’est guère avancé. Pourtant cette valeur (5) va nous permettre de découper le texte initial (JEAN PAUL) grâce à l’application de la deuxième fonction STXT.

STXT découpe une chaîne de caractère (un texte) en fonction des paramètres suivants : La chaîne initiale, la position de départ où on veut commencer à découper le texte, la longueur de la découpe.

Quand j’écris la formule :



> STXT(B2;1;CHERCHE( " ";B2;1)−1)



C’est comme si j’avais écrit :


> STXT(B2;1;5-1)



En effet, la fonction CHERCHE à calculé 5 (auquel je soustrais 1 parce que c’est comme ça lol).
STXT va donc examiner la chaîne de caractères situés dans le cellule B2 (donc JEAN PAUL) et garder les caractères situés entre la première position (à partir du J) jusqu’à la 4ème position (jusqu’à la lettre N).

J’espère avoir été clair.


----------



## Danielmargez (5 Mai 2020)

Chris K a dit:


> Comme ça ?
> Voir la pièce jointe 171359
> 
> Voir la pièce jointe 171361
> ...


C’est bon, c’est très lisible . Je ne connaissais pas.


Chris K a dit:


> Les deux formules utilisent chacune deux fonctions : STXT et CHERCHE. Ces deux fonctions s’appliquent sur des chaînes de caractère, du texte donc.
> 
> La fonction CHERCHE effectue une recherche de caractères et lorsqu’elle trouve le caractère recherché elle indique où se situe celui-ci. Pour cela il faut indiquer à cette fonction deux choses : quel caractère on cherche, dans quelle cellule on veut faire cette recherche et à partir de quelle position veut débuter la recherche.
> 
> ...


tres clair, et j’ai très bien compris, même le -1 qui me donne 4 caractères soit: JEAN.

et pour la 2eme formule est Ce que tu peux détailler svp ?


----------



## Chris K (5 Mai 2020)

La seconde formule repose exactement sur le même principe que celle que j’ai expliquée.
Sauf que je l’utilise pour extraire PAUL et que pour se faire je prends tous les caractères situés après l’espace (’’ ‘’) jusqu’à la fin de le chaîne de caractère (la fonction NBCAR me donne la taille complète de la chaîne de caractère).


----------



## Danielmargez (6 Mai 2020)

Chris K a dit:


> La seconde formule repose exactement sur le même principe que celle que j’ai expliquée.
> Sauf que je l’utilise pour extraire PAUL et que pour se faire je prends tous les caractères situés après l’espace (’’ ‘’) jusqu’à la fin de le chaîne de caractère (la fonction NBCAR me donne la taille complète de la chaîne de caractère).


C’est super, j’ai décomposé ta formule et là c’est encore plus clair. Un grand merci, car j’ai travaillé sur un gros fichier 20000 lignes cela me facile grandement la pose de catégories pour un tri parfait. Merci


----------



## Danielmargez (6 Mai 2020)

Chris K a dit:


> La seconde formule repose exactement sur le même principe que celle que j’ai expliquée.
> Sauf que je l’utilise pour extraire PAUL et que pour se faire je prends tous les caractères situés après l’espace (’’ ‘’) jusqu’à la fin de le chaîne de caractère (la fonction NBCAR me donne la taille complète de la chaîne de caractère).


Encore une petite question, au cas l’on se retrouve avec avec un nom en trois parties: ex JEAN PAUL DUBOIS, y a t’il une solution ?


----------



## Chris K (6 Mai 2020)

La solution consiste à se doter d’une règle :

Les prénoms composés sont séparés par un tiret (exemple : JEAN-PAUL) ;
Après, il n’y a pas de recettes miracles pour traiter tous les cas possibles à moins de faire une usine à gaz.
Comment par exemple traiter les cas suivant : JEAN PAUL DUBOIS DE LA MARRE ou MARIE-HELENE DUBOIS DEFORET ... On voit tout de suite que ça devient compliqué.


----------



## Danielmargez (6 Mai 2020)

Chris K a dit:


> La solution consiste à se doter d’une règle :
> 
> Les prénoms composés sont séparés par un tiret (exemple : JEAN-PAUL) ;
> Après, il n’y a pas de recettes miracles pour traiter tous les cas possibles à moins de faire une usine à gaz.
> Comment par exemple traiter les cas suivant : JEAN PAUL DUBOIS DE LA MARRE ou MARIE-HELENE DUBOIS DEFORET ... On voit tout de suite que ça devient compliqué.


Je suis totalement d’accord avec toi, j’avais pensé au même scénario, mais bon, quand on récupère des tableaux (des machines de guerres ) et vouloir les réorganiser pas facile. .

autrement, un grand merci, connais tu script éditor ? J’aimerai bien m’initier.


----------



## Chris K (6 Mai 2020)

Danielmargez a dit:


> Je suis totalement d’accord avec toi, j’avais pensé au même scénario, mais bon, quand on récupère des tableaux (des machines de guerres ) et vouloir les réorganiser pas facile. .
> 
> autrement, un grand merci, connais tu script éditor ? J’aimerai bien m’initier.



Je ne connais pas.
En fait je pense qu’il te faudrait un outil qui te permet de normaliser tes données avant de les intégrer dans Numbers.
J’en connais qu’un, gratuit, mais un peu difficile à manipuler (et en anglais) : OpenRefine (https://openrefine.org/).
Tout dépend de l’importance que tu accordes aux « anomalies » qui restent dans tes données.


----------

