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

如何用原生Excel实现单条多字段电影放映记录转多行?

原生Excel转换宽表为窄表的解决方案

针对你需要将一行多组放映时间/影院数据拆分为单行对应单组数据的需求,以下是两种原生Excel的实现方法:

方法一:Power Query(高效适合大量数据)

Power Query是Excel自带的数据处理工具,几百行数据处理起来非常快:

  1. 选中原始数据所在的单元格区域,点击顶部菜单栏「数据」→「从表格/区域」,确认弹窗里「我的表格有标题」已勾选,点击「确定」进入Power Query编辑器。
  2. 在编辑器中,选中name列(第一列),右键选择「逆透视其他列」,此时表格会变成三列:name、Attribute(原列名,如time1、theater1)、Value(对应单元格的值)。
  3. 选中Attribute列,点击「转换」→「拆分列」→「按数字拆分」,将列拆分为两部分:比如time1会拆成time和1,theater1拆成theater和1。
  4. 选中拆分后得到的数字列(比如叫Attribute.2)和name列,点击「转换」→「透视列」,在弹窗中:
    • 「值列」选择Value
    • 「透视列」选择拆分后的属性列(比如Attribute.1)
    • 「聚合函数」选择「不要聚合」,点击确定。
  5. 此时表格已经变成name、time、theater的结构,删除多余的数字列,调整列顺序后,点击「关闭并上载」,结果就会导入到新的工作表中。

方法二:公式法(无需启用Power Query)

如果不想用Power Query,可以用INDEX函数配合行号计算实现:
假设原始数据从A1开始,A列是name,B/C是第一组time/theater,D/E是第二组,F/G是第三组,要在I列开始输出结果:

  1. I1、J1、K1分别输入name、time、theater作为表头。
  2. I2单元格输入公式:
    =INDEX($A$2:$A$1000,INT((ROW()-2)/3)+1)
    
    下拉公式直到出现错误值(表示已处理完所有数据)。这里的3对应原始数据里的组数,如果你有更多组,把3改成对应的数量。
  3. J2单元格输入公式:
    =INDEX($B$2:$F$1000,INT((ROW()-2)/3)+1,MOD(ROW()-2,3)*2+1)
    
    下拉填充。
  4. K2单元格输入公式:
    =INDEX($C$2:$G$1000,INT((ROW()-2)/3)+1,MOD(ROW()-2,3)*2+1)
    
    下拉填充。
    公式说明:INT((ROW()-2)/3)+1用来定位原始数据的行号,MOD(ROW()-2,3)*2+1用来定位每组对应的time/theater列号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:20:30