J'ai actuellement un tableur pour garder une trace des scores dans un jeu de cartes. Il peut y avoir entre deux et cinq joueurs. J'ai le suivant:
| Players |
|----------|
| Dave |
| Paul |
| John |
| |
| |
Pour le moment j'utilise:
= JOIN( " vs " ; C10:C14 )
Mais le problème est que je me retrouve alors avec Dave vs Paul vs John vs vs
.
Y a-t-il un moyen de le faire dire Dave vs Paul vs John
mais si j'avais plus de joueurs, Dave vs Paul vs John vs Rob
avec une formule?
Oui, en FILTER
ing le tableau:
= JOIN( " vs " ; FILTER(C10:C14; NOT(C10:C14 = "") ))
Ainsi, la méthode JOIN
ne fonctionnera que sur des cellules non vides.
J'ai mis en place un exemple feuille de calcul .
Consultez également la liste liste de fonctions Google Spreadsheets (recherchez FILTER
).
Essayez TEXTJOIN :
=textjoin(" vs ",1,C10:C14)
Les deux solutions ci-dessus fonctionnent s'il existe au moins une cellule contenant du texte. Pourtant:
= JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0))
Renverrait %%%%
si C10: C14 étaient tous vides et.
= JOIN( " vs " ; FILTER(C10:C14; NOT(C10:C14 = "") ))
Renverrait #N/A
si C10: C14 étaient tous vides.
Cependant, vous pouvez légèrement modifier la première solution pour remplacer les signes %
par des chaînes vides en encapsulant la formule avec la fonction SUBSTITUTE
de la manière suivante:
=SUBSTITUTE(
JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0)), // text_to_search
"%", // search_for
"" // replace_with
)
(Affiché sur plusieurs lignes pour plus de clarté)
J'ai trouvé une autre solution:
=JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0))
Le% peut être tout symbole réellement absent de la liste, comme une virgule, une esperluette ou un point d'interrogation.