web-dev-qa-db-fra.com

Comment ajouter automatiquement des espaces entre chaque caractère d'une chaîne de texte?

Mes professeurs, saisissez quatre notes pour l’évaluation d’un élève dans une seule cellule, comme ceci: 2113, sans pause ni espace.

Comment puis-je séparer ces personnages afin de pouvoir créer un tableau des quatre partitions individuelles?

2
TonyF

Vous pouvez diviser la valeur de la cellule en cellules individuelles. Étant donné que la cellule A1 contient le numéro 2113, placez ce qui suit dans la cellule B1:

=SPLIT(REGEXREPLACE("" & A1, "(\d)", "$1,"), ",")

Cela devrait aboutir à des cellules B1:E1 contenant chaque chiffre respectif.

La formule fait trois choses:

  1. L'expression "" & A1 convertit le nombre saisi 2113 en une chaîne.

  2. La variable REGEXPREPLACE remplace la chaîne d'entrée 2113 par une liste de chiffres séparés par des virgules: 2,1,1,3,.

  3. Enfin, la fonction SPLIT divise la chaîne séparée par des virgules en cellules séparées.

Maintenant que vous avez chaque chiffre dans une cellule distincte, vous devriez pouvoir créer un graphique à partir des données.

Si vous voulez toujours ajouter des espaces entre les chiffres, essayez

=REGEXREPLACE("" & A1, "(\d)", "$1 ")
3
Vidar S. Ramdal

La formule personnalisée suivante donnera le résultat souhaité:

Code

// empty string split
function emptySplit(cell) {
  return cell.toString().split('');
}

// same as above, but then joined afterwards, using a space (' ')
function spaceSplit(cell) {
  return cell.toString().split('').join(' ');
}

A expliqué

La cellule active de la feuille de calcul est convertie en chaîne (elle fonctionnera donc pour les chaînes et les nombres) et la méthode de division séparera la chaîne à l'aide d'une chaîne vide ('').

Ajoutez le petit morceau de code sous Outils> Editeur de script. Appuyez sur le bouton de sauvegarde et vous pouvez utiliser votre formule personnalisée !!

La fonction SPLIT de Google Spreadsheets ne permet pas d'utiliser des chaînes vides comme délimiteur.

Usage

=emptySplit(A1)

Capture d'écran

enter image description here

Exemple

J'ai créé un exemple de fichier pour vous: scindé avec une chaîne vide comme séparateur

0
=REGEXEXTRACT(TO_TEXT(A1); REPT("(.)"; LEN(A1)))

0


=ARRAYFORMULA(REGEXEXTRACT(TO_TEXT(A1:A), REPT("(.)", LEN(A1:A))))

0


=ARRAYFORMULA(TRANSPOSE(QUERY(TRANSPOSE(REGEXEXTRACT(
 TO_TEXT(A1:A), REPT("(.)", LEN(A1:A)))), , 999^99)))

0

0
user0

Une autre option (plus mathématique que textuelle) pour fractionner un nombre à quatre chiffres de A1 en quatre cellules distinctes est dans B1 et copiée dans:

=left(mod($A1,10^(6-column())))

(Suppose que 0 ne compte pas!)

0
pnuts

La meilleure réponse pour REGEXREPLACE ne fonctionne plus dans la version actuelle de Sheets. Voici ce qui a fonctionné pour moi:

=REGEXREPLACE(A2;"(\d)"; "$1 ")
0
capawaky