求助:Google Sheets实现动态拼接列标题与对应数组的公式
解决方案
核心公式
假设重复次数放在单元格E1(可自行修改位置),将以下公式粘贴到需要输出结果的单元格(如E2):
=LET( headers, A1:INDEX(1:1, COUNTA(1:1)), checks, A2:INDEX(2:2, COUNTA(1:1)), values, A3:INDEX(A:Z, MAX(ROW(A:A)*(A:A<>"")), COUNTA(1:1)), repeat_times, E1, process_col, LAMBDA(h, c, v, IF(c="",, FLATTEN(REPT(TRANSPOSE(IF(v<>"", h&"-"&v,)), repeat_times)))), false_list, FLATTEN(BYCOL(headers, checks, values, process_col)), true_list, FLATTEN(BYCOL(headers, checks, values, LAMBDA(h,c,v, IF(c=TRUE, FLATTEN(REPT(TRANSPOSE(IF(v<>"", h&"-"&v,)), repeat_times)),)))), JOIN(", ", FILTER(false_list, false_list<>"")) & IF(COUNTA(true_list)>0, " : " & JOIN(", ", FILTER(true_list, true_list<>"")), "") )
关键特性说明
- 动态适配列:自动识别第1行所有非空列标题,新增列时无需修改公式,直接添加标题、复选框和值即可
- 支持无限行数:自动获取所有列的最后非空行,新增行值会自动纳入拼接
- 自定义重复次数:修改
E1的数值即可控制每个“标题-值”对的重复拼接次数 - 分组拼接:自动将复选框未选中(FALSE)的列结果放在左侧,选中(TRUE)的放在右侧,两组用
:分隔,空组会被自动忽略
使用步骤
- 在
E1输入需要的重复次数(如2表示每个拼接项重复2次) - 将公式粘贴到目标输出单元格
- 新增列时,在第1行输入标题,第2行添加复选框,第3行及以下填入非空值即可自动生效
- 新增行时,直接在现有列下方添加非空值,公式会自动包含这些内容
内容的提问来源于stack exchange,提问作者Kevin P.
相关产品推荐
相关产品推荐

