Google Sheets中实现特定列转置并重复行的方法求助
解决Google Sheets特定列转置并重复的问题
针对你需要将固定列与Item列标题配对、重复固定列数据的需求,这里提供两种可行的公式方案:
方案一:直接使用ARRAYFORMULA+FLATTEN组合
假设你的原始数据范围是A1:H3(A1:H1为表头,A2:C3是需要重复的固定列,D1:G1是要转置的Item标题),可以用以下公式:
=ARRAYFORMULA({ FLATTEN(A2:C3), TRANSPOSE(REPT(D1:G1&" ", ROWS(A2:C3))) })
FLATTEN(A2:C3):将固定列的每一行数据重复4次(对应4个Item标题),平铺成连续的列数据TRANSPOSE(REPT(D1:G1&" ", ROWS(A2:C3))):将每个Item标题重复2次(对应2行原始数据),转置后与固定列的平铺数据一一对应
方案二:封装成可复用的LAMBDA函数
如果需要更灵活地调整固定列和Item标题范围,可以用LAMBDA封装成通用函数:
=LAMBDA(fixed_range, item_headers_range, ARRAYFORMULA({ FLATTEN(fixed_range), TRANSPOSE(REPT(item_headers_range&" ", ROWS(fixed_range))) }) )(A2:C3, D1:G1)
只需修改括号内的A2:C3(固定列范围)和D1:G1(Item标题范围),即可适配不同的数据源结构。
补充说明
你之前尝试的Lambda函数仅实现了行的重复复制,没有将Item标题与固定列数据做关联配对,所以无法满足需求。上面的方案通过FLATTEN和TRANSPOSE+REPT的组合,实现了固定列与Item标题的笛卡尔积配对,完全匹配你的期望结果。
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

