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

在Google Sheets中基于单行描述生成结构化座位列

解决方案:Google Sheets 单行座位描述转结构化列表

可以用Google Sheets的数组公式实现自动拆分和座位展开,无需手动逐个处理。假设原始座位描述在F5单元格,按以下操作即可生成目标列:

1. 生成Room和SeatNumber列

在空白单元格(比如A2)输入以下公式:

=ARRAYFORMULA(
  LET(
    raw_groups, SPLIT(F5, ", "),
    rooms, LEFT(raw_groups, FIND("/", raw_groups)-1),
    seat_info, RIGHT(raw_groups, LEN(raw_groups)-FIND("/", raw_groups)),
    seat_prefixes, LEFT(seat_info, FIND(" ", seat_info)-1),
    seat_ranges, MID(seat_info, FIND(" ", seat_info)+1, FIND(" (", seat_info)-FIND(" ", seat_info)-1),
    start_nums, INDEX(SPLIT(seat_ranges, "-"),,1)*1,
    end_nums, INDEX(SPLIT(seat_ranges, "-"),,2)*1,
    seat_counts, end_nums - start_nums + 1,
    expanded_rooms, FLATTEN(MAP(rooms, seat_counts, LAMBDA(r,c, REPT(r&"|", c)))),
    expanded_seats, FLATTEN(MAP(seat_prefixes, start_nums, end_nums, LAMBDA(p,s,e, JOIN("|", p&SEQUENCE(e-s+1,1,s))))),
    SPLIT(expanded_rooms&"|"&expanded_seats, "|")
  )
)

这个公式会自动完成:

  • 拆分F5中逗号分隔的每个座位组
  • 提取每个组的房间名称(如TrainingRoom1)
  • 解析座位前缀(如E、J)和座位号范围(如17-18)
  • 将座位范围展开为单个座位号(如E17、E18)
  • 生成一一对应的Room和SeatNumber行

2. 设置Email列

直接在C列对应位置(比如C2)输入空值占位即可,后续可直接填充学员邮箱,或用公式=IF(A2<>"", "", "")保持列结构统一。

公式核心逻辑说明

  • SPLIT(F5, ", "):把原始字符串拆分成独立的座位组数组
  • LEFT(raw_groups, FIND("/", raw_groups)-1):提取"/"左侧的房间名
  • SEQUENCE(e-s+1,1,s):生成从起始座位到结束座位的连续数字序列
  • MAP + REPT/JOIN:将每个房间和对应座位范围展开为多行数据
  • FLATTEN + SPLIT:把展开后的字符串转换为标准的二维列格式

示例效果

输入F5的内容:

TrainingRoom1/E 17-18 (2) , TrainingRoom1/J 21-24 (4) , TrainingRoom1/F 19-21 (3)

生成的A、B列结果:

RoomSeatNumber
TrainingRoom1E17
TrainingRoom1E18
TrainingRoom1J21
TrainingRoom1J22
TrainingRoom1J23
TrainingRoom1J24
TrainingRoom1F19
TrainingRoom1F20
TrainingRoom1F21

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:43:35