MS Excel>不规则范围内的连续垂直单元格

jpfvwuh4  于 2022-11-18  发布在  其他
关注(0)|答案(4)|浏览(152)

我不确定我是否可以在stackoverflowidocomm上询问Excel的问题。如果我犯了错误,请温和地让我知道。
我需要在col3中串联垂直细胞。
它们的范围取决于列“num”,该列包含数字1(A2)、2(A7)、3(A9)。
所以结果会像“aaa,bbb,ddd,ee”,然后是“ff”,“gg,abc”。
我尝试使用CONCATENATE或TEXTJOIN,但我意识到这并不简单。
有没有什么方法可以做到?或者我需要学习VBA吗?希望有人知道可以指导做...

ozxc1zmp

ozxc1zmp1#

列E是一个帮助器列,然后可以添加一个额外的列(F)以仅获得所需的结果。
根据所提供的信息,您可以使用公式执行此操作:

帮助器列

单元格E2 -留空
储存格E3 =IF(A3="",D2&CHAR(44)&D3,D3)
储存格E4 =IF(A4="",IF(D4="",E3,IF(AND(A3<>"",D3=""),D4,E3&CHAR(44)&D4)),IF(D4="","",D4))

结果列

储存格F2 =IF(A3<>"",D2,"")
储存格F3 =IF(A4="",IF(E4="",E3&",",""),E3)
单击单元格右下角的小方块并向下拖动,将E4和F3自动填充到数据范围的末尾。
列A中的内容并不重要,但如果单元格中有数据,则它将开始一个新的文本连接链。

6bc51xsx

6bc51xsx2#

试试这个公式--抱歉没有解释,直到稍后我将它整理好:

=LET(freq,DROP(FREQUENCY(IF(A2:A15="",ROW(A2:A15)),IF(A2:A15<>"",ROW(A2:A15))),1)+1,cols,MAX(freq),rows,ROWS(freq),
array,SEQUENCE(rows,cols,0),start,XMATCH(QUOTIENT(array,cols)+1,A2:A15),strings,IF(MOD(array,cols)+1>freq,"",IF(INDEX(D2:D15,start+MOD(array,cols))="","",INDEX(D2:D15,start+MOD(array,cols)))),
BYROW(strings,LAMBDA(s,TEXTJOIN(",",TRUE,s))))

kuarbcqp

kuarbcqp3#

num列中的值似乎不会影响排序。
TEXTJOIN在此示例中应起作用。

ignore_empty 设置为TRUE将跳过空单元格。

公式:

=TEXTJOIN(",",TRUE,D2:D11)

结果:

aaa,bbb,ddd,eee,ff,gg,abc

如果需要垂直列表,请使用FILTER函数。

公式:

=FILTER(D2:D11,D2:D11<>"")

结果:

aaa
bbb
ddd
eee
ff
gg
abc
bmp9r5qi

bmp9r5qi4#

您还可以使用以下公式在E中声明新列(从E2开始:

=IF(ISBLANK(A2),E1,A2)

然后,您必须使用以下公式添加F列(从F2开始:

=IF(E2<>E1,TEXTJOIN(",",TRUE,D2),TEXTJOIN(",",TRUE,D2,F1))

这将导致:

相关问题