我不确定我是否可以在stackoverflowidocomm上询问Excel的问题。如果我犯了错误,请温和地让我知道。我需要在col3中串联垂直细胞。它们的范围取决于列“num”,该列包含数字1(A2)、2(A7)、3(A9)。所以结果会像“aaa,bbb,ddd,ee”,然后是“ff”,“gg,abc”。我尝试使用CONCATENATE或TEXTJOIN,但我意识到这并不简单。有没有什么方法可以做到?或者我需要学习VBA吗?希望有人知道可以指导做...
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))
=IF(A3="",D2&CHAR(44)&D3,D3)
=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中的内容并不重要,但如果单元格中有数据,则它将开始一个新的文本连接链。
=IF(A3<>"",D2,"")
=IF(A4="",IF(E4="",E3&",",""),E3)
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))))
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
bmp9r5qi4#
您还可以使用以下公式在E中声明新列(从E2开始:
E
E2
=IF(ISBLANK(A2),E1,A2)
然后,您必须使用以下公式添加F列(从F2开始:
F
F2
=IF(E2<>E1,TEXTJOIN(",",TRUE,D2),TEXTJOIN(",",TRUE,D2,F1))
这将导致:
4条答案
按热度按时间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中的内容并不重要,但如果单元格中有数据,则它将开始一个新的文本连接链。
6bc51xsx2#
试试这个公式--抱歉没有解释,直到稍后我将它整理好:
kuarbcqp3#
num列中的值似乎不会影响排序。
TEXTJOIN在此示例中应起作用。
将 ignore_empty 设置为TRUE将跳过空单元格。
公式:
结果:
如果需要垂直列表,请使用FILTER函数。
公式:
结果:
bmp9r5qi4#
您还可以使用以下公式在
E
中声明新列(从E2
开始:然后,您必须使用以下公式添加
F
列(从F2
开始:这将导致: