在excel中,我有兩列(A和B)填充了文本值,我想將兩列中的所有值都放到一列(C)中,并且它需要是動態的
例子:
Column A: {car, plane, boat}
Column B: {bike, motor}
Column C: {car, plane, boat, bike, motor}
我希望有一個人可以幫助我!
uj5u.com熱心網友回復:
用:
=QUERY(FLATTEN(A:C); "where Col1 is not null")
uj5u.com熱心網友回復:
這將適用于 Excel(任何版本)和 Google 表格:將其放在 C1 中并向下復制,直到您有足夠的單元格填充以捕獲兩個串列的最大長度:
=INDEX(A:B,IF(ROW($ZZ1)>COUNTA(A:A),ROW($ZZ1)-COUNTA(A:A),ROW($ZZ1)),IF(ROW($ZZ1)>COUNTA(A:A),2,1))&""

使用 Office 365 Excel:
=LET(
rng1st,A:A,
rng2nd,B:B,
cnt1st,COUNTA(rng1st),
cnt2nd,COUNTA(rng2nd),
sq,SEQUENCE(cnt1st cnt2nd),
INDEX(CHOOSE({1,2},rng1st,rng2nd),IF(sq>cnt1st,sq-cnt1st,sq),IF(sq>cnt1st,2,1)))
把它放在 C1 中,結果會自動溢位:

uj5u.com熱心網友回復:
Google Sheets 有一個 FLATTEN 函式可以讓你做到這一點,但 Excel 中沒有等效的函式。
不過有一個解決方法,它確實按行的順序組合了 2 列:
這適用于 Excel 版本 2019 或更高版本
=FILTERXML("<a><b>"&TEXTJOIN("</b><b>",TRUE,A:B)&"</b></a>","//b")
uj5u.com熱心網友回復:
=IF(SEQUENCE(ROWS(range1) ROWS(range2))<ROWS(range1) 1,range1,INDEX(range2,MOD(SEQUENCE(ROWS(range1) ROWS(range2),,ROWS(range2)-ROWS(range1)),ROWS(range2)) 1,SEQUENCE(1,COLUMNS(range2))))
這將在 Excel (365) 中的 range1 下堆疊 range2 這也適用于具有 2 列或更多列的范圍
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319084.html
