Concatenando solo celdas llenas

21

Actualmente tengo una hoja de cálculo para realizar un seguimiento de las puntuaciones en un juego de cartas. Puede haber entre dos y cinco jugadores. Tengo lo siguiente:

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

En este momento uso:

= JOIN( " vs " ; C10:C14 )

Pero el problema es que luego termino con Dave vs Paul vs John vs vs.

¿Hay alguna forma de decirlo, Dave vs Paul vs Johnpero si tuviera más jugadores, Dave vs Paul vs John vs Robcon una fórmula?

Djave
fuente

Respuestas:

16

Prueba TEXTJOIN :

=textjoin(" vs ",1,C10:C14)
nueces
fuente
2
Esta es la mejor respuesta. Es más corto, más simple y le permite ignorar los valores en blanco.
Ricardo Amaral
1
Siempre leo todo para buscar la mejor respuesta, no solo una "respuesta de trabajo" :)
Ricardo Amaral
5

Ambas soluciones anteriores funcionan si hay al menos una celda que contiene texto. Sin embargo:

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

Volvería %%%%si C10: C14 estuviera vacío y.

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

Volvería #N/Asi C10: C14 estuviera todo vacío.

Sin embargo, puede modificar ligeramente la primera solución para reemplazar los %signos con cadenas vacías envolviendo la fórmula con la SUBSTITUTEfunción de esta manera:

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

(Se muestra en varias líneas para mayor claridad)

Kieran Macdonald-Hall
fuente
Tenga en cuenta: "arriba" realmente no tiene contexto en las respuestas, ya que las respuestas se pueden ordenar de diferentes maneras.
ale
4

He encontrado otra solución:

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

El% puede ser cualquier símbolo que realmente no esté presente en la lista, como una coma o un signo de interrogación.

dan
fuente
Buena alternativa !!
Jacob Jan Tuinstra