这个用辅助列可以处理,但一个公式不行。
D列做公式,D2: =IF(B2>0,C2," ")
E列做公式,E3:=D2&"、"&D3
E4:=E3&"、"&D4,从E4开始下拉
最后提取到一个单元格E9:=IF(RIGHT(SUBSTITUTE(E8," 、",""))=" ",MID(SUBSTITUTE(E8," 、",""),1,LEN(SUBSTITUTE(E8," 、",""))-2),SUBSTITUTE(E8," 、",""))
E9也可以用这个公式:=SUBSTITUTE(SUBSTITUTE(E8,"、 ","")," 、","")
请按图中公式尝试
说明:
假设你的数据源在A1:A10,输入以下公式:
=LEFT(CONCAT(IF($A$1:$A$10>0,$A$1:$A$10&",","")),LEN(CONCAT(IF($A$1:$A$10>0,$A$1:$A$10&",","")))-1)
公式必须按“CTRL+SHIFT+ENTER”结束(数组公式)
以上CONCAT(IF($A$1:$A$10>0,$A$1:$A$10&",","")出现了2次,可以定义为名称替代,以提高公式可读性。
如果你的版本是2016,则有更简化的函数。