我正在使用Google SpreadSheet,而我正在尝试使用包含单词列表的多个工作表.在最后一页上,我想创建一个汇总列表,它是列中所有值的组合.我使用= CONCATENATE()进行排序工作,但是它把它变成了一个字符串.有什么方法可以将它保留为列列表?
以下是列的示例:
工作表Sheet1
Sheet2中
FinalSheet
Lak*_*ake 72
我就在那里是一个更好的解决方案.它已被发布在下面,但我在这里复制它,所以它在最佳答案:
=unique({A:A;B:B})
Run Code Online (Sandbox Code Playgroud)
警告:在某些情况下,这将包括一个空白单元格(例如,如果在第一个列表的末尾有一个空白单元格).
如果你不关心订购和拖尾空白单元,一个简单的sort()
将清理:
=sort(unique({A:A;B:B}))
Run Code Online (Sandbox Code Playgroud)
否则,filter()
可以删除空白,如下所示:
=filter(unique({A:A;B:B}),NOT(ISBLANK(unique({A:A;B:B}))))
Run Code Online (Sandbox Code Playgroud)
我确信这是"错误的做法",因为这看起来是一个非常简单和常见的任务,我觉得我必须错过一些东西,因为它不应该需要这样一个过度的解决方案.
但这有效:
=UNIQUE(TRANSPOSE(SPLIT(JOIN(";",A:A,B:B),";")))
Run Code Online (Sandbox Code Playgroud)
如果您的数据包含任何';' 您自然需要更改分隔符的字符.
Pow*_*tar 11
基本的方法,只是像这样的数组
={A1:A10;B1:B10...etc}
Run Code Online (Sandbox Code Playgroud)
我发现这个方法存在的问题是,如果你有很多列,那么它非常耗时.我做了一些搜索,发现了这篇文章:
将多个列连接到Google Spreadsheets中的一个已排序列中
核心公式是
=transpose(split(arrayformula(concatenate(if(len(A:Z)>0,A:Z&";",""))),";"))
Run Code Online (Sandbox Code Playgroud)
显然你要将A:Z替换为你想要使用的任何范围.如果你想做一些排序或删除重复项,你只需将上述公式包装在一个SORT()
和/或UNIQUE()
方法中,就像这样.
=sort(unique(transpose(split(arrayformula(concatenate(if(len(A:Z)>0,A:Z&";",""))),";"))))
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.大家快乐编码:)
使用flatten
,例如flatten(A1:B2)
。更多详细信息请参阅本文。
如果 2d 范围不是一个整体,则可以首先使用 & 符号或类似技术创建一个。然后可以在生成的 2d 范围上调用 flatten。下面的示例有点矫枉过正,但在处理动态二维范围时效果很好,因为基本解决方案无法轻松使用。
flatten(ARRAYFORMULA(SPLIT(ARRAYFORMULA(A1:A2&";"&C3:C4), ";")))
Run Code Online (Sandbox Code Playgroud)
本文还展示了如何使用查询中的子句(以及未记录的子句)轻松展开范围。skipping
更简单:
={sheetone!A2:A;sheettwo!A2:A}
Run Code Online (Sandbox Code Playgroud)
该unique()
函数消除了空格,但对我没有帮助,因为我重复了一些行。相反,我首先通过过滤列len()
以删除空白单元格。然后,我以相同的方式将这些列合并在一起。
={filter(A:A, len(A:A)); filter(B:B, len(B:B))}
Guy*_*Guy -4
尝试使用您的 CONCATENATE 参数
=ArrayFormula(EXPAND(...))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
64230 次 |
最近记录: |