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

如何调整Excel LAMBDA公式以输出多列价格及相关数据

调整Excel LAMBDA公式实现多维度数据转置

原LAMBDA公式仅支持SKU与FL列的转换,现针对包含SKU、DESC、DISCOUNT、UNITC/UNITP/UNITU、FLC/FLP/FLU、NETC/NETP/NETU的源表,调整公式实现每行对应一个UNIT维度(C/P/U),输出包含SKU、Description、UNIT、FL、DISCOUNT、NET的目标格式。

调整后的完整LAMBDA公式

=LAMBDA(source_data,
    LET(
        // 提取除表头外的所有数据行
        data, INDEX(source_data, 2, 0):INDEX(source_data, ROWS(source_data), 0),
        // 拆分源表各字段列
        SKU, INDEX(data, , 1),
        DESC, INDEX(data, , 2),
        DISCOUNT, INDEX(data, , 3),
        UNIT_GROUP, INDEX(data, , 4):INDEX(data, , 6),
        FL_GROUP, INDEX(data, , 7):INDEX(data, , 9),
        NET_GROUP, INDEX(data, , 10):INDEX(data, , 12),
        // 定义UNIT维度的对应标签
        unit_tags, {"C", "P", "U"},
        // 生成扩展后的二维数组
        expanded_table, MAKEARRAY(ROWS(data)*3, 6,
            LAMBDA(r,c,
                LET(
                    // 计算当前行对应的源数据行号
                    original_row, CEILING(r/3, 1),
                    // 计算当前行对应的UNIT维度索引
                    unit_index, MOD(r-1, 3)+1,
                    // 根据列号返回对应字段值
                    SWITCH(c,
                        1, INDEX(SKU, original_row),
                        2, INDEX(DESC, original_row),
                        3, INDEX(unit_tags, unit_index),
                        4, INDEX(FL_GROUP, original_row, unit_index),
                        5, INDEX(DISCOUNT, original_row),
                        6, INDEX(NET_GROUP, original_row, unit_index)
                    )
                )
            )
        ),
        // 拼接表头与扩展数据
        headers, {"SKU", "Description", "UNIT", "FL", "DISCOUNT", "NET"},
        VSTACK(headers, expanded_table)
    )
)

公式说明

  1. 参数定义:source_data为输入参数,需传入包含所有表头和数据的源表完整区域(如A1:L10)。
  2. 数据拆分:将源表拆分为单个字段列(SKU、DESC、DISCOUNT)和三组多列字段(UNIT、FL、NET各3列)。
  3. 维度扩展:通过MAKEARRAY生成原数据行数3倍的新表,每个源数据行对应C/P/U三个UNIT维度行。
  4. 字段映射:根据行号计算对应源数据行和UNIT维度,通过SWITCH按列号映射目标表的各个字段。
  5. 表头拼接:用VSTACK将目标表头与扩展数据合并,输出完整结构化结果。

使用方式

将公式命名为自定义函数(如TransformUnitData),在任意单元格输入:

=TransformUnitData(A1:L10)

其中A1:L10替换为你的源表实际范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:55:36