Google Sheets:将行转换为列,并在 15 行处进行分栏 ** 将行数据保存在一起(困难的部分)

问题描述 投票:0回答:1

我有一个功能代码,可以将行转换为列,并将列分成 15 行。该代码如下所示。

=WRAPCOLS(FILTER(TOCOL('Source Sheet'!A3:E30,,0),LEN(TOCOL('Source Sheet'!A3:E30,,0))),15,)

问题是,当行数据到达第 15 行时,15 行限制会将其分成单独的列。 我需要将行数据保留在一列中。这意味着,如果一行数据将分成两列,或者我需要用空白单元格填充一列的其余部分,那么我需要强制提前进行分列,以便本来要划分的行数据从下一个新列开始并保持在一起。

这个问题可以在下面的示例表中看到。源表中的许多数据行最终在显示表中的第 15 行处划分。 https://docs.google.com/spreadsheets/d/1qcRUtXKJ6y21G3leRf9EQ98xB4oyViX_Mr2sqVvGs2c/

你能想出一种方法,保证行数据在列中完整显示,而不会在列与列之间断裂吗?

google-sheets row multiple-columns
1个回答
0
投票

这是一种方法,您可以测试一下:

=let(Λ,index(match(,0/(A:A<>""))), Ξ,indirect("A3:D"&Λ), Σ,hstack(Ξ,wrapcols("🐠",rows(Ξ),"🐠")),
     Δ,query(reduce({0,1},sequence(rows(Σ)),lambda(a,c,let(σ,index(a,c,1)+counta(index(Σ,c)),vstack(a,if((σ-1)>15,{counta(index(Σ,c)),index(a,c,2)+1},{σ,index(a,c,2)}))))),"select Col2 offset 1"),
     reduce(torow(,1),sequence(max(Δ)),lambda(a,c,ifna(hstack(a,index(substitute(tocol(filter(Σ,Δ=c),1),"🐠",)))))))

© www.soinside.com 2019 - 2024. All rights reserved.