Объединение только заполненных ячеек


21

В настоящее время у меня есть таблица для отслеживания результатов в карточной игре. Там может быть от двух до пяти игроков. У меня есть следующее:

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

На данный момент я использую:

= JOIN( " vs " ; C10:C14 )

Но проблема в том, что я в конечном итоге Dave vs Paul vs John vs vs.

Есть ли способ заставить это сказать, Dave vs Paul vs Johnно если бы у меня было больше игроков, Dave vs Paul vs John vs Robс одной формулой?

Ответы:




5

Оба решения выше работают, если есть хотя бы одна ячейка, содержащая текст. Тем не мение:

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

Вернулся бы, %%%%если бы C10: C14 были бы пустыми и.

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

Вернулся бы, #N/Aесли бы C10: C14 были бы пустыми.

Однако вы можете немного изменить первое решение, чтобы заменить %знаки пустыми строками, обернув формулу SUBSTITUTEфункцией следующим образом:

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

(Показано на нескольких строках для ясности)


Обратите внимание: «выше» действительно не имеет контекста в ответах, поскольку ответы можно сортировать по-разному.
Эль

4

Я нашел другое решение:

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

% Может быть любым символом, которого нет в списке, например запятая, знак амперсанда или знак вопроса.


Хорошая альтернатива !!
Джейкоб Ян Туинстра
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.