You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

优化Excel公式:将列基表转为行基表并关联数值

解决方案:将宽表转换为长表(逆透视)

你需要将A1:E4的宽格式表格转换为G2:I13的长格式,这是典型的逆透视操作,以下是更简洁且动态的公式实现:

表格示例

ABCDEFGHI
1EmployeeQ1Q2Q3Q4Result
2E_01500600200800E_01Q1500
3E_0270401090E_01Q2600
4E_03300700400100E_01Q3200
5E_01Q4800
6E_02Q170
7E_02Q240
8E_02Q310
9E_02Q490
10E_03Q1300
11E_03Q2700
12E_03Q3400
13E_03Q4100

最终公式

=LET(
    emp_range, A2:A4,
    qtr_range, B1:E1,
    val_range, B2:E4,
    emp_list, TOCOL(emp_range, 1),
    qtr_list, TOROW(qtr_range),
    emp_repeated, TOCOL(REPT(emp_list, ROWS(qtr_list))),
    qtr_repeated, TOCOL(REPT(qtr_list, ROWS(emp_list))),
    val_flattened, TOCOL(val_range, 1),
    HSTACK(emp_repeated, qtr_repeated, val_flattened)
)

公式解析

  1. 提取基础数据:

    • emp_list:用TOCOL将员工列(A2:A4)转为一维列表,参数1用于忽略空值,提升扩展性
    • qtr_list:用TOROW将季度表头(B1:E1)转为一维列表
    • val_flattened:将数值区域(B2:E4)转为一维列,对应每个员工-季度的数值
  2. 生成重复序列:

    • emp_repeated:每个员工重复ROWS(qtr_list)次(即4次,对应4个季度),再转为列
    • qtr_repeated:每个季度重复ROWS(emp_list)次(即3次,对应3个员工),再转为列
  3. 组合结果:

    • 用HSTACK将员工重复列、季度重复列、数值列横向拼接,直接得到目标长表

优势对比

你原有的公式需要手动指定每个员工的重复次数,扩展性差(员工/季度数量变化时需修改公式)。上述公式是动态适配的:

  • 新增员工只需扩展emp_range
  • 新增季度只需扩展qtr_range
  • 无需手动拆分或拼接单个员工/季度的序列

内容的提问来源于stack exchange,提问作者Michi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 19:18:16