我需要列出所有独特的出版物,这些出版物是横向列出的:
我只想在一行中水平返回唯一值,如下所示:
如果可以按字母顺序排列出版物,那就更好了。
我发现的所有公式都是垂直列出的值,因此社区的任何帮助都将受到极大的感谢。
发布于 2022-10-18 02:44:09
简单的UNIQUE()函数应该适合你,比如-
=UNIQUE(B1:I1,TRUE)[by_col]参数TRUE指示按列返回唯一参数。如果您想添加单词Publication,那么可以尝试使用HSTACK()。=HSTACK( UNIQUE(B1:I1,1)),A1)

发布于 2022-10-18 02:48:52
从您的示例中可以看出,输入是由" | "分隔的字符串还是列分隔符。在您的问题中,没有Excel约束,所以我假设您可以使用TEXTSPLIT,以防输入是由" | "分隔的字符串。如果情况并非如此,请检查这个问题:Split a string (cell) in Excel without VBA (e.g. for array formula),以寻找其他替代方案。
可以使用UNIQUE(array,[by_col])和by_col输入参数按列选择唯一元素。
类似地,您可以使用SORT(array,[sort_index],[sort_order],[by_col]),并以类似的方式使用by_col输入参数强制逐列排序。
如果我们在单元格A1上有输入参数,然后在C2中放置以下公式
=SORT(UNIQUE(TEXTSPLIT(A1," | "), TRUE),,,TRUE)以下是返回1x5数组的列格式输出:

如果希望将结果作为管道分隔的字符串,那么在前面的结果上调用TEXTJOIN(delimiter, ignore_empty, text1, [text2], …),如下所示:
=TEXTJOIN(" | ",,SORT(UNIQUE(TEXTSPLIT(A1," | "), TRUE),,,TRUE))输出将是单个字符串,如下所示:
PUB-928798 | PUB-936976 | PUB-940212 | PUB-942575 | PUB-947197如您所见,结果按升序排序。
https://stackoverflow.com/questions/74104874
复制相似问题