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

如何将单列值转为多列?Excel/TSQL/PowerBI实现方案咨询

表格长转宽分组解决方案(以Fixed+Part为分组键)

以下提供Excel、TSQL、PowerBI三种实现方案,适配分组后动态列数的需求:

Excel方案(Power Query实现)

  1. 选中原始数据区域,点击「数据」选项卡→「从表格/区域」,确认勾选「我的表格有标题」,进入Power Query编辑器。
  2. 选中「Fixed」和「Part」两列,右键选择「分组依据」,在弹出窗口中:
    • 分组依据保持默认的「Fixed」和「Part」
    • 新列名输入OriginalValues,操作选择「所有行」,点击确定。
  3. 添加自定义列:点击「添加列」选项卡→「自定义列」,输入公式:
    Table.AddIndexColumn([OriginalValues], "列索引", 1, 1)
    
    点击确定后生成包含索引的表格列。
  4. 点击自定义列右侧的展开箭头,仅勾选「Original column」和「列索引」,点击确定展开数据。
  5. 选中「列索引」列,点击「转换」选项卡→「透视列」,值列选择「Original column」,高级选项选择「不要聚合」,完成后自动生成New column 1、New column 2等动态列。
  6. 点击「关闭并上载」,将结果导出到Excel工作表。

TSQL方案(动态PIVOT实现)

适用于SQL Server数据库,通过动态SQL自动适配分组后的列数:

DECLARE @cols NVARCHAR(MAX), @sql NVARCHAR(MAX);

-- 生成动态列名列表
SELECT @cols = STRING_AGG(QUOTENAME('New column ' + CAST(rn AS VARCHAR)), ',')
FROM (
    -- 获取每个分组内的行序号
    SELECT DISTINCT ROW_NUMBER() OVER(PARTITION BY Fixed, Part ORDER BY [Original column]) rn
    FROM YourTableName -- 替换为你的表名
) t;

-- 构造并执行动态PIVOT语句
SET @sql = N'
SELECT Fixed, Part, ' + @cols + N'
FROM (
    SELECT 
        Fixed, 
        Part, 
        [Original column],
        ''New column '' + CAST(ROW_NUMBER() OVER(PARTITION BY Fixed, Part ORDER BY [Original column]) AS VARCHAR) AS ColName
    FROM YourTableName -- 替换为你的表名
) src
PIVOT (
    MAX([Original column]) FOR ColName IN (' + @cols + N')
) pvt;';

EXEC sp_executesql @sql;

注意:将YourTableName替换为实际表名,若需要调整列的排序规则,修改ORDER BY [Original column]中的字段即可。

PowerBI方案(Power Query实现)

  1. 在PowerBI中导入原始数据,点击「数据」面板中的「转换数据」进入Power Query编辑器。
  2. 选中「Fixed」和「Part」列,点击「转换」选项卡→「分组依据」,设置新列名为Details,操作选择「所有行」,点击确定。
  3. 添加自定义列:输入公式Table.AddIndexColumn([Details], "ColumnIndex", 1, 1),点击确定。
  4. 展开自定义列,勾选「Original column」和「ColumnIndex」,点击确定。
  5. 选中「ColumnIndex」列,点击「转换」→「透视列」,值列选择「Original column」,高级选项选「不要聚合」,生成动态列后关闭编辑器,即可在数据模型中得到转换后的表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 09:25:14