Re: [users-fr] Calc : valeur àrécupérer dans un libellé

2010-09-05 Par sujet christianwtd

 Le 04/09/2010 03:14, lutch a écrit :

 Le 31/08/10 17:45, Serge a écrit :

Grand merci à tous !
En réalité, c'est plus compliqué parce que les libellés peuvent
être divers (il y en a même du type : Le nombre d'occurrence
est compris entre ... et ...).
Donc je retiens l'idée de récupérer les formules à la main et de
faire ce que j'ai à faire.
Par contre, vos autres suggestions m'ont fait découvrir des
fonctions dont je n'avais pas idée.
Ce forum est une mine.
Je regrette seulement de n'avoir à ce jour jamais pu venir en aide.



Bonjour,

problème intrigant, donc intéressant.
Je m'y suis collé et voici une méthode que je propose. C'est un 
premier jet, améliorable sans doute. Il y a des gisements de 
simplification.
Sous réserve de viabilité tous usages, je compte bien me servir de 
ça pour nettoyer certains fichiers boiteux qu'on me demande 
régulièrement d'exploiter comme source de données.


Données du problème, telles que je les ai comprises
- les expressions varient arbitrairement,
- les valeurs sont de longueur variable, mais se trouvent toujours en 
dernière position dans la cellule


Données du tableau de test : libellé+valeur
cellules A1:A7
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 123
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 123456789
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 125
mot1 mot2 mot3 mot4 126
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 127
mot1 mot2 mot3 mot4 mot5 mot6 128
mot1 mot2 mot3 DERNIERMOT

En B1, la formule =DROITE(A1;NBCAR(A1)-CHERCHE(-;SUBSTITUE(A1; 
;-;NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)));1))

résultat : 123
En B7, la formule =DROITE(A7;NBCAR(A7)-CHERCHE(-;SUBSTITUE(A7; 
;-;NBCAR(A7)-NBCAR(SUBSTITUE(A7; ;)));1))

résultat : DERNIERMOT

Explications sommaires
SUBSTITUE(A1; ;)
remplace toutes les espaces de la cellule A1

NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)
calcule la différence du nombre de caractères avec et sans espaces, ce 
qui donne le rang (occurrence) de la dernière espace


SUBSTITUE(A1; ;-;NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)
remplace cette dernière espace, donc située avant le dernier mot

CHERCHE(-
cherche la position exacte de ce -,

par la soustraction
[nombre de caractères total]-[position du -]
on obtient le nombre de caractères à partir de la droite à extraire de 
l'expression initiale pour ne récupérer que le dernier mot de la 
cellule, c'est-à-dire la valeur.


J'espère être encore compréhensible malgré l'heure tardive.

C_Lucien
/Pourvu que ça serve/



Bonjour,
Je reviens sur ce problème avec une solution simple, sans formules.
Serge (auteur du message initial), nous dit qu'il est sous Win XP et OOo 
3.2.1.

Donc, ça doit marcher.
Il faut copier toute la zone en question dans le bloc-notes, puis du 
bloc-note, il faut faire Ctrl+C (copier) et dans Calc, Ctrl+V (coller)
La boite Import de texte apparait. Dans options de séparateur, il faut 
cocher Espace, puis OK

Toutes les données sont séparées.

Bon dimanche et on surf,
Christian

--
Visitez http://christianwtd.free.fr/ pour débuter avec Calc, d'OpenOffice.org


-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] Calc : valeur àrécupérer dans un libellé

2010-09-04 Par sujet christianwtd

 Le 04/09/2010 03:14, lutch a écrit :

 Le 31/08/10 17:45, Serge a écrit :

Grand merci à tous !
En réalité, c'est plus compliqué parce que les libellés peuvent
être divers (il y en a même du type : Le nombre d'occurrence
est compris entre ... et ...).
Donc je retiens l'idée de récupérer les formules à la main et de
faire ce que j'ai à faire.
Par contre, vos autres suggestions m'ont fait découvrir des
fonctions dont je n'avais pas idée.
Ce forum est une mine.
Je regrette seulement de n'avoir à ce jour jamais pu venir en aide.



Bonjour,

problème intrigant, donc intéressant.
Je m'y suis collé et voici une méthode que je propose. C'est un 
premier jet, améliorable sans doute. Il y a des gisements de 
simplification.
Sous réserve de viabilité tous usages, je compte bien me servir de 
ça pour nettoyer certains fichiers boiteux qu'on me demande 
régulièrement d'exploiter comme source de données.


Données du problème, telles que je les ai comprises
- les expressions varient arbitrairement,
- les valeurs sont de longueur variable, mais se trouvent toujours en 
dernière position dans la cellule


Données du tableau de test : libellé+valeur
cellules A1:A7
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 123
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 123456789
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 125
mot1 mot2 mot3 mot4 126
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 127
mot1 mot2 mot3 mot4 mot5 mot6 128
mot1 mot2 mot3 DERNIERMOT

En B1, la formule =DROITE(A1;NBCAR(A1)-CHERCHE(-;SUBSTITUE(A1; 
;-;NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)));1))

résultat : 123
En B7, la formule =DROITE(A7;NBCAR(A7)-CHERCHE(-;SUBSTITUE(A7; 
;-;NBCAR(A7)-NBCAR(SUBSTITUE(A7; ;)));1))

résultat : DERNIERMOT

Explications sommaires
SUBSTITUE(A1; ;)
remplace toutes les espaces de la cellule A1

NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)
calcule la différence du nombre de caractères avec et sans espaces, ce 
qui donne le rang (occurrence) de la dernière espace


SUBSTITUE(A1; ;-;NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)
remplace cette dernière espace, donc située avant le dernier mot

CHERCHE(-
cherche la position exacte de ce -,

par la soustraction
[nombre de caractères total]-[position du -]
on obtient le nombre de caractères à partir de la droite à extraire de 
l'expression initiale pour ne récupérer que le dernier mot de la 
cellule, c'est-à-dire la valeur.


J'espère être encore compréhensible malgré l'heure tardive.

C_Lucien
/Pourvu que ça serve/




Bonjour à toutes et tous,

humour ON
C'est pourtant facile :-P
/humour off

Première réserve importante : il ne doit pas y avoir d'espaces avant ou 
après. Il faut donc traiter éventuellement avec SUPPRESPACE()


Alors voila, si le texte est en A1, la formule simple :o est :
=DROITE(SUBSTITUE(A1;  ; CAR(255);  NBCAR(A1) - NBCAR(SUBSTITUE(A1; 
;))); NBCAR(SUBSTITUE(A1;  ; CAR(255);  NBCAR(A1) - 
NBCAR(SUBSTITUE(A1; ; - (TROUVE(CAR(255);  SUBSTITUE(A1;  ; 
CAR(255);  NBCAR(A1) - NBCAR(SUBSTITUE(A1; ;))


Mouais... En détail, ça donne, si le texte est en A1, en B1 on a :
=NBCAR(A1) - NBCAR(SUBSTITUE(A1; ;))
Ici, on cherche le nombre d'espaces.

En C1:
=SUBSTITUE(A1;  ; CAR(255); B1)
Ici, on échange le dernier espace avec un caractère peu usité, code 
Ascii 255 (ÿ)


En D1 :
=TROUVE(CAR(255); C1)
On cherche la position de ce caractère.

En E1 :
=DROITE(A1; NBCAR(A1) - D1)
Résultat final. Ouf ! :-)
En suivant ce principe, on peut extraire des portions centrales avec 
STXT, mais là aussi, ce sera un peu plus complexe.


En espérant aider un peu,
Bon surf,
Christian

--
Visitez http://christianwtd.free.fr/ pour débuter avec Calc, d'OpenOffice.org


-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] Calc : valeur àrécupérer dans un libellé

2010-09-03 Par sujet lutch

 Le 31/08/10 17:45, Serge a écrit :

Grand merci à tous !
En réalité, c'est plus compliqué parce que les libellés peuvent
être divers (il y en a même du type : Le nombre d'occurrence
est compris entre ... et ...).
Donc je retiens l'idée de récupérer les formules à la main et de
faire ce que j'ai à faire.
Par contre, vos autres suggestions m'ont fait découvrir des
fonctions dont je n'avais pas idée.
Ce forum est une mine.
Je regrette seulement de n'avoir à ce jour jamais pu venir en aide.



Bonjour,

problème intrigant, donc intéressant.
Je m'y suis collé et voici une méthode que je propose. C'est un premier 
jet, améliorable sans doute. Il y a des gisements de simplification.
Sous réserve de viabilité tous usages, je compte bien me servir de ça 
pour nettoyer certains fichiers boiteux qu'on me demande régulièrement 
d'exploiter comme source de données.


Données du problème, telles que je les ai comprises
- les expressions varient arbitrairement,
- les valeurs sont de longueur variable, mais se trouvent toujours en 
dernière position dans la cellule


Données du tableau de test : libellé+valeur
cellules A1:A7
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 123
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 123456789
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 125
mot1 mot2 mot3 mot4 126
mot1 mot2 mot3 mot4  mot5 mot6 MOT7 127
mot1 mot2 mot3 mot4 mot5 mot6 128
mot1 mot2 mot3 DERNIERMOT

En B1, la formule =DROITE(A1;NBCAR(A1)-CHERCHE(-;SUBSTITUE(A1; 
;-;NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)));1))

résultat : 123
En B7, la formule =DROITE(A7;NBCAR(A7)-CHERCHE(-;SUBSTITUE(A7; 
;-;NBCAR(A7)-NBCAR(SUBSTITUE(A7; ;)));1))

résultat : DERNIERMOT

Explications sommaires
SUBSTITUE(A1; ;)
remplace toutes les espaces de la cellule A1

NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)
calcule la différence du nombre de caractères avec et sans espaces, ce 
qui donne le rang (occurrence) de la dernière espace


SUBSTITUE(A1; ;-;NBCAR(A1)-NBCAR(SUBSTITUE(A1; ;)
remplace cette dernière espace, donc située avant le dernier mot

CHERCHE(-
cherche la position exacte de ce -,

par la soustraction
[nombre de caractères total]-[position du -]
on obtient le nombre de caractères à partir de la droite à extraire de 
l'expression initiale pour ne récupérer que le dernier mot de la 
cellule, c'est-à-dire la valeur.


J'espère être encore compréhensible malgré l'heure tardive.

C_Lucien
/Pourvu que ça serve/


Re: [users-fr] Calc : valeur àrécupérer dans un libellé

2010-08-31 Par sujet Serge
Grand merci à tous !
En réalité, c'est plus compliqué parce que les libellés peuvent
être divers (il y en a même du type : Le nombre d'occurrence
est compris entre ... et ...).
Donc je retiens l'idée de récupérer les formules à la main et de
faire ce que j'ai à faire.
Par contre, vos autres suggestions m'ont fait découvrir des
fonctions dont je n'avais pas idée.
Ce forum est une mine.
Je regrette seulement de n'avoir à ce jour jamais pu venir en aide.


-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org