J'essaie d'utiliser les fonctions SPLIT
et JOIN
dans Google Sheets (la nouvelle version) pour manipuler certaines données, et je rencontre des problèmes car je SPLIT
ne conserve pas les entrées vides.
La source de données est configurée comme ceci, essentiellement:
| A B C D
-----------------------
1 | q 5 r 2
2 | s t 4
3 | u 8 v
4 | w 3 x 6
(Les entrées vides dans cet ensemble de données représentent "aucune mesure", ce qui est distinct d'une mesure de 0
)
Sur les colonnes A
et C
j'obtiens le résultat souhaité en utilisant la formule:
=SPLIT(JOIN("~",A1:A4,C1:C4),"~")
Cela produit une ligne qui va, comme prévu q
s
u
w
r
t
v
x
, chacune dans sa propre cellule.
Cependant, cette méthode ne fonctionne pas sur les colonnes B
et D
. JOIN
fonctionne comme prévu, donnant la sortie:
5~~8~3~2~4~~6
SPLIT
Cependant, l' exécution de cette sortie entraîne un problème: je me retrouve avec 5
8
3
2
4
6
, sans cellules vides entre 5
et 8
ou entre 4
et 6
, ce qui signifie que les paires sont rompues (par exemple s
et v
devraient correspondre à des cellules vides, mais à la place w
et à x
faire). Le problème semble être qu'il SPLIT
interprète ~~
comme un seul délimiteur, plutôt que comme deux délimiteurs avec une entrée nulle entre eux.
Quelqu'un sait-il comment conserver les entrées vides dans ce type de scénario?
La sortie souhaitée ressemblerait à ceci
q s u w r t v x
5 8 3 2 4 6
la source
IF()
pour convertir automatiquement les champs vides en espaces.=ARRAYFORMULA(IF(ISBLANK(B1:B4)," ",B1:B4))
pour créer un ensemble factice de colonnes avec "" dans les cellules vides, qui sont ensuite utilisées pourSPLIT
etJOIN
. En espérant toujours que quelqu'un ait une solution plus élégante, cependant: cela ajoute un tas de choses supplémentaires à mon document, et il me faut toujours mettre à jour les numéros de ligne à quelques endroits différents à mesure que davantage de mesures sont ajoutées à l'ensemble de données. (Merci à AI E. de m'avoir au moins permis de croquer les données pour l'instant!)Réponses:
Essayez la solution suivante.
Formule
Expliqué
Vous nous avez montré déjà que la
SPLIT
fonction ignore les cellules vides, donc je choisis cette chaîne comme delimiter:" ,"
. Le résultat intermédiaire de laJOIN
fonction, ressemble à ceci:Je choisis le délimiteur pour le
SPLIT
: être cette fonction","
. Le résultat intermédiaire de laSPLIT
fonction, ressemble à ceci:Maintenant, cependant, nous devons faire face aux espaces blancs supplémentaires ajoutés. Par conséquent, j'ai utilisé la
TRIM
fonction pour supprimer tous les espaces blancs à la fin ou en tête (en combinaison avec leARRAYFORMULA
). Comparez lesLEN
valeurs de chaque résultat intermédiaire.Résultat
Exemple
J'ai créé un exemple de fichier pour vous: SPLIT pour conserver les cellules vides
la source
Essayez la solution suivante.
Code
Usage
Ajoutez autant de plages à la fonction que vous le souhaitez et elles seront traitées. Ajoutez ce petit script dans l'éditeur de script de votre feuille de calcul (Outils> Editeur de script; appuyez sur le bouton Enregistrer).
Exemple
J'ai créé un exemple de fichier pour vous: SPLIT pour conserver les cellules vides
la source
Réponse courte
La formule suivante renvoie le résultat souhaité.
Réponse étendue
Cette réponse vise à fournir un moyen d'obtenir le résultat souhaité au lieu de discuter de la façon de faire fonctionner l'approche choisie.
Le problème XY
L'OP veut obtenir X et pense que Y devrait retourner ce résultat. Cette approche est problématique car Y a quelques mises en garde. Cela pourrait être un problème majeur car l'OP demande comment faire fonctionner Y au lieu de demander un moyen d'obtenir X, mais ce n'est pas si grand car il fournit le contexte et le résultat souhaité.
Solution
Google Sheets est capable de gérer des résultats à valeurs multiples de manière très simple du point de vue des utilisateurs finaux. En revanche, il permet d'utiliser une notation spéciale pour permettre aux utilisateurs finaux de définir des tableaux.
Les fonctionnalités ci-dessus permettent d'obtenir le résultat attendu sans l'utilisation des fonctions SPLIT () et JOIN () et sans les mises en garde qui leur sont inhérentes.
Explication de la formule
C'est un tableau 2 X 8 composé de deux tableaux / plages 2 X 4. Le point-virgule (
;
) est utilisé en supposant que le séparateur décimal de la feuille de calcul est un point (.
). Si le séparateur décimal était une virgule, remplacez-le par une barre oblique inverse (\
).Convertit le tableau 2 X 8 en tableau 8 X 2.
L'un des avantages de cette méthode est qu'elle ne nécessite pas de manipulation particulière des cellules vides. D'autres avantages sont que c'est une formule très compacte et très facile à adapter.
Références
la source
Si vous vous joignez et que le délimiteur soit "," essentiellement une virgule avec un espace précédent, il conservera automatiquement cet espace lorsque vous le diviserez à nouveau:
la source