您需要提取唯一值,然后连接这些值。
当a2:a7 = {a, a, b, b, b, c} 时,在b2 输入这个并点击ctrl + shift + enter。
=IFERROR(INDEX($A$2:$A$7,MATCH(SUM(COUNTIF(B$1:B1,$A$2:$A$7)),COUNTIF($A$2:$A$7,"<"&$A$2:$A$7),0)),"")
然后复制b2 并将其粘贴到b3:b7。现在您有了一个唯一值列表。这个方法来自this answer。
现在您有了列表,您只需加入他们。在c2 输入此内容。
=IF(B2="", "", B2&";"&CHAR(10))
&IF(B3="", "", B3&";"&CHAR(10))
&IF(B4="", "", B4&";"&CHAR(10))
&IF(B5="", "", B5&";"&CHAR(10))
&IF(B6="", "", B6&";"&CHAR(10))
&IF(B7="", "", B7&";"&CHAR(10))
看图。
我知道这很糟糕。但是 Excel 中没有内置公式。其他没有 VBA 的解决方法是 here 和 there,以防万一。
顺便说一句,Google 电子表格将所有这些作为内置函数提供。就一行。
=join(";"&char(10), filter(unique(A2:A7), not(isblank(unique(A2:A7)))))&";"