我目前有一个电子表格,可以记录纸牌游戏中的得分。可能会有2至5名玩家。我有以下内容:

| 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带有一个公式?

#1 楼

是的,通过FILTER数组:

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


,因此,JOIN方法将仅对非空单元格起作用。

我已经设置了

还检查Google Spreadsheets功能列表(搜索FILTER)。

#2 楼

试试TEXTJOIN:

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


评论


这是最好的答案。它更短,更简单,并允许您忽略空白值。

–rfgamaral
18年1月25日在17:57

我总是阅读所有内容,以寻求最佳答案,而不仅仅是“有效答案” :)

–rfgamaral
18年1月25日在18:23

#3 楼

如果至少有一个包含文本的单元格,则以上两种解决方案均适用。但是:

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


如果C10:C14都为空且将返回%%%%

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


将返回如果C10:C14都为空,则为#N/A。 br />
=SUBSTITUTE(
   JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0)),    // text_to_search
   "%",                                            // search_for
   ""                                              // replace_with
 )


(为清晰起见,以多行显示)

评论


请注意:答案上方确实没有上下文,因为答案可以以不同的方式排序。

–ale
2015年6月2日19:44

#4 楼

我找到了另一个解决方案:

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


%可以是列表中不存在的任何符号,例如逗号,&或问号。 。

评论


不错的选择!

–雅各布·扬·图恩斯特拉(Jacob Jan Tuinstra)
14年4月17日在7:31

#5 楼

textjoin(“ vs”,true,C10:C14)
true表示如果单元格为空,则忽略

评论


欢迎使用Web应用程序!我认为这已经在此答案中提及:webapps.stackexchange.com/a/109594/136642

– Glorfindel
20年5月5日在13:34