如何用函数实现Google Sheets列底部三分之一数据移至顶部并自动更新?
解决Google Sheets列数据重排问题
直接用ARRAYFORMULA结合OFFSET就能实现,不需要复杂函数。假设你的数据在A列(从A1开始,无表头),公式如下:
=ARRAYFORMULA( { OFFSET(A1, COUNTA(A:A) - ROUNDUP(COUNTA(A:A)/3), 0, ROUNDUP(COUNTA(A:A)/3)); OFFSET(A1, 0, 0, COUNTA(A:A) - ROUNDUP(COUNTA(A:A)/3)) } )
公式拆解:
COUNTA(A:A):统计A列已填充的单元格总数ROUNDUP(COUNTA(A:A)/3):计算底部三分之一的行数(用ROUNDUP避免小数,确保所有行都被覆盖)- 第一个
OFFSET:定位到A列底部三分之一的起始位置,提取这部分内容 - 第二个
OFFSET:提取A列剩下的上三分之二内容 - 用
{}加分号;把两部分上下堆叠成一列,ARRAYFORMULA让公式自动扩展到所有行
带表头的情况:
如果A1是表头,数据从A2开始,把公式里的A1换成A2,COUNTA(A:A)换成COUNTA(A2:A)即可:
=ARRAYFORMULA( { OFFSET(A2, COUNTA(A2:A) - ROUNDUP(COUNTA(A2:A)/3), 0, ROUNDUP(COUNTA(A2:A)/3)); OFFSET(A2, 0, 0, COUNTA(A2:A) - ROUNDUP(COUNTA(A2:A)/3)) } )
这个公式会随着A列数据的自动填充实时更新排序结果,完全符合你的需求。
内容的提问来源于stack exchange,提问作者googlenovice
相关产品推荐
相关产品推荐

