Copie d'une cellule partielle dans une autre cellule dans OpenOffice Calc

11

La cellule A1 indique 0001 John Smith La cellule A2 indique 0002 Bill Snyder

Je veux essentiellement diviser cela, donc une colonne affiche simplement les chiffres (0001, 0002, etc.), puis une autre colonne affiche simplement le nom.

La première partie est simple. En utilisant la fonction "= LEFT (A1; 4)" je peux obtenir 0001. Comment puis-je saisir le nom? L'utilisation de "DROIT (A1; 99)", par exemple, récupérera la chaîne entière "0001 John Smith". Étant donné que chaque nom est de longueur différente, je ne sais pas quoi faire. Puis-je en quelque sorte lui dire de saisir la chaîne entière SAUF les 4 premiers caractères? Ou d'une manière ou d'une autre, dites-lui de saisir les 2 derniers mots au lieu d'un certain nombre de caractères comme il le demande?


la source

Réponses:

12

Pour obtenir une sous-chaîne excluant les 4 premiers caractères (plus l'espace), vous pouvez utiliser la MIDfonction:

MID(A1,6,LEN(A1))

Il en résultera «John Smith Cell A2, dit 0002 Bill Snyder» . Vous pouvez également imiter le fractionnement de texte avec la FINDfonction, par exemple, cette formule affichera '0001' :

LEFT(A1,FIND(" ",A1)-1)

De plus, cela affichera John (en supposant que le texte d'origine est dans la cellule A1 et que la formule précédente est dans B1 ):

MID(A1,LEN(B1)+2,FIND(" ",A1,LEN(B1)))

Ici:

  • A1 - texte original
  • LEN (B1) +2 - position de départ (longueur du code 0001 + séparateur + 1)
  • FIND ("", A1, LEN (B1)) - position finale (c.-à-d. Occurrence suivante de l'espace)

Et vous pouvez le développer davantage pour obtenir les 2 derniers mots :)

barti_ddu
la source
Les exemples ci-dessus utilisent des virgules lorsque OpenOffice 4.1 requiert des caractères point-virgule. Par exemple, LEFT (A1, FIND ("", A1) -1) doit être LEFT (A1; FIND (""; A1) -1)
Frank Cohen