Google Sheets转置:如何将筛选结果转置至行的隔列位置?
解决转置筛选结果后隔列填充的问题
Google Sheets 解决方案
你可以通过在筛选结果中插入空值后再转置的方式实现需求,推荐用LET函数简化公式(避免重复计算筛选结果):
=LET( filtered_vals, FILTER('Top HP''s List'!A:A, SEARCH("-P/TT", 'Top HP''s List'!A:A)), expanded_vals, FLATTEN(ARRAYFORMULA({filtered_vals, ""})), TRANSPOSE(expanded_vals) )
公式说明:
filtered_vals:完成你原本的筛选逻辑,提取A列中包含-P/TT的所有内容,得到一个垂直数组。ARRAYFORMULA({filtered_vals, ""}):将每个筛选值与空值横向配对,生成一个2列的数组(第一列是筛选值,第二列为空)。FLATTEN:把上述2列数组转换为垂直一维数组,顺序变为「筛选值1 → 空 → 筛选值2 → 空 → ...」。TRANSPOSE:将垂直数组转置为横向,最终实现A、C、E等奇数位置列填充值,偶数位置列留空的效果。
Excel 解决方案(365+版本)
Excel 365及以上版本支持LET、HSTACK等函数,可以用更简洁的写法:
=LET( filtered_vals, FILTER('Top HP''s List'!A:A, ISNUMBER(SEARCH("-P/TT", 'Top HP''s List'!A:A))), expanded_vals, TOCOL(HSTACK(filtered_vals, ""),,1), TRANSPOSE(expanded_vals) )
公式说明:
filtered_vals:筛选出A列包含-P/TT的内容,ISNUMBER(SEARCH(...))用于生成FILTER需要的布尔判断(避免SEARCH找不到内容时返回错误)。HSTACK(filtered_vals, ""):将每个筛选值与空值横向拼接成2列数组。TOCOL:把2列数组转换为垂直一维数组,顺序变为「筛选值1 → 空 → 筛选值2 → 空 → ...」。TRANSPOSE:转置后实现奇数列填充值、偶数列留空的效果。
内容的提问来源于stack exchange,提问作者J Dallimore
相关产品推荐
相关产品推荐

