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.