it-swarm.com.de

Nur gefüllte Zellen verketten

Ich habe derzeit eine Tabelle, mit der ich die Ergebnisse eines Kartenspiels nachverfolgen kann. Es können zwischen zwei und fünf Spieler sein. Ich habe folgendes:

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

Im Moment benutze ich:

= JOIN( " vs " ; C10:C14 )

Aber das Problem ist, dass ich dann am Ende Dave vs Paul vs John vs vs habe.

Gibt es eine Möglichkeit, es so auszudrücken, dass Dave vs Paul vs John, aber wenn ich mehr Spieler hätte, Dave vs Paul vs John vs Rob mit einer Formel?

19
Djave

Ja, durch FILTERing des Arrays:

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

Daher kann die JOIN -Methode nur für nicht leere Zellen verwendet werden.

Ich habe ein Beispieltabelle eingerichtet.

Überprüfen Sie auch die Google Spreadsheets-Funktionsliste (Suche nach FILTER).

26
Vidar S. Ramdal

Versuchen Sie TEXTJOIN :

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

Beide oben genannten Lösungen funktionieren, wenn mindestens eine Zelle Text enthält. Jedoch:

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

Würde %%%% zurückgeben, wenn C10: C14 alle leer wären und.

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

Würde #N/A zurückgeben, wenn C10: C14 alle leer wären.

Sie können jedoch die erste Lösung leicht ändern, um die Zeichen % durch leere Zeichenfolgen zu ersetzen, indem Sie die Formel mit der Funktion SUBSTITUTE wie folgt umschließen:

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

(Zur Verdeutlichung in mehreren Zeilen dargestellt)

Ich habe eine andere Lösung gefunden:

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

Das% kann ein beliebiges Symbol sein, das nicht in der Liste enthalten ist, z. B. ein Komma, ein kaufmännisches Und oder ein Fragezeichen.

4
dan