Concaténation uniquement des cellules remplies


21

J'ai actuellement une feuille de calcul pour garder une trace des scores dans un jeu de cartes. Il peut y avoir entre deux et cinq joueurs. J'ai les éléments suivants:

| Players  |
|----------|
| Dave     |
| Paul     |
| John     |
|          |
|          |

En ce moment j'utilise:

= JOIN( " vs " ; C10:C14 )

Mais le problème est que je me retrouve avec Dave vs Paul vs John vs vs.

Y a-t-il un moyen de le faire dire Dave vs Paul vs Johnmais si j'avais plus de joueurs, Dave vs Paul vs John vs Robavec une seule formule?

Réponses:



16

Essayez TEXTJOIN :

=textjoin(" vs ",1,C10:C14)

2
C'est la meilleure réponse. Il est plus court, plus simple et vous permet d'ignorer les valeurs vides.
Ricardo Amaral

1
Je lis toujours tout pour chercher la meilleure réponse, pas seulement une "réponse de travail" :)
Ricardo Amaral

5

Les deux solutions ci-dessus fonctionnent s'il y a au moins une cellule contenant du texte. Pourtant:

= JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0))

Reviendrait %%%%si C10: C14 étaient tous vides et.

= JOIN( " vs " ; FILTER(C10:C14; NOT(C10:C14 = "") ))

Reviendrait #N/Asi 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 SUBSTITUTEfonction comme suit:

=SUBSTITUTE(
   JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0)),    // text_to_search
   "%",                                            // search_for
   ""                                              // replace_with
 )

(Montré sur plusieurs lignes pour plus de clarté)


Veuillez noter: "ci-dessus" n'a vraiment aucun contexte dans les réponses, car les réponses peuvent être triées de différentes manières.
ale

4

J'ai trouvé une autre solution:

=JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0))

Le% peut être n'importe quel symbole réellement absent de la liste, comme une virgule, une esperluette ou un point d'interrogation.


Belle alternative !!
Jacob Jan Tuinstra
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.