Dans Google Sheets, je souhaite aligner les nombres décimaux sans ajouter de zéros de fin dans la partie fractionnaire.
Instead of: I want:
+------+ +------+
| 56.0| | 56 |
| 27.0| | 27 |
| 83.0| | 83 |
| 2.4| | 2.4|
| 1.2| | 1.2|
| 120.0| | 120 |
+------+ +------+
Le format de la première colonne est facile à réaliser (par exemple, en utilisant le format "0,0" ou en définissant simplement des points décimaux personnalisés sous le bouton 123).
Dans Excel, je crois que le format de la deuxième colonne est accompli en utilisant le format "0.?", Mais à ce jour, cela ne fonctionne pas dans Google Sheets.
solution de contournement
Il est possible de forcer les caractères de fin avec Substitute:
= Substitute( Text( formula ; "0.0" ) ; ".0" ; " ")
= Substitute( Text( formula ; "0.0" ) ; ".0" ; "__" )
Remarque: les deux caractères blancs substitués ne sont pas U + 0020 ESPACE mais U + 2002 EN ESPACE . ( U + 00A0 NO-BREAK SPACE fonctionne également.)
Certains effets secondaires indésirables de cette solution de contournement sont qu'il
- modifie non seulement le format d'affichage mais aussi la valeur de la cellule
- nécessite l'utilisation d'une police à espacement fixe dans la cellule
- les espaces de fin entraînent une substitution de polices en raison de l'Unicode et ne s'impriment pas correctement
- les soulignements de fin ne sont pas aussi souhaitables que les espaces de fin
- confond les mainteneurs car il n'est pas évident qu'un EN ESPACE est utilisé
- (vraisemblablement) échoue dans les paramètres régionaux qui utilisent la période comme séparateur de période (séparateur de milliers) au lieu du marqueur décimal
la source
J'ai écrit du code pour vous faciliter la vie, en affichant des nombres alignés décimaux.
Le premier code
ne peut être utilisé que dans une plage, car il modifie dynamiquement l'apparence des nombres en fonction de la décimale la plus élevée de la plage. Il vous permet également de choisir le caractère de fin, comme CHAR (160):
Le deuxième code
est destiné à être utilisé pour les cellules. Ici, vous devez définir la longueur de fin:
Le troisième code
liera une chaîne de tous les caractères non numériques, sauf un "." et ",":
Exemple de fichier
Nombres alignés sur les décimales
Pensées
Cette réponse ne supprime pas les préoccupations que vous avez mentionnées dans votre question, mais elle donnera une certaine automatisation (dynamique) pour les afficher !! Bonne chance.
la source
Vous pouvez définir le format de manière conditionnelle à l'aide d'un script Apps pour itérer sur la plage de cellules et appliquer différents formats de nombre personnalisés en fonction de la valeur de la cellule (entier vs non entier). À l'aide de formats numériques personnalisés, vous pouvez afficher des espaces blancs de largeur variable à l'aide du caractère de soulignement, par exemple,
_.
insère des espaces blancs de la largeur d'un point et_0
insère des espaces blancs la largeur d'un caractère zéro. Soit dit en passant, la plupart des polices utilisent la même largeur pour tous les caractères numériques, donc un caractère 0 a la même largeur qu'un 1 et 2 et 3, etc.Ceci est un exemple de la façon dont les nombres sont affichés avant et après l'application du formatd en exécutant le script. Un inconvénient est qu'un changement dans la valeur de la cellule de entier à non entier ou vice-versa nécessitera la mise en forme à réappliquer pour afficher ou masquer la décimale selon les besoins.
Scénario
la source