如何在Excel中基于行之间的%分隔符合并行,实现单单元格存储单道完整试题
Excel批量合并分隔符之间的行操作指南
以下提供两种可直接落地的操作方案,均支持3000+行数据处理:
方案1:辅助列公式法(适用于Excel 2019/365及以上版本)
假设原始试题内容全部存放在A列,A1为表头Questions,有效数据从A2开始:
- 第一步:插入标记列,B2单元格输入公式,下拉填充所有数据行,识别每道题的起始位置:
=IF(ISNUMBER(FIND("%",A2)),1,0) - 第二步:插入分组列,C2单元格输入公式,下拉填充所有数据行,相同分组编号对应同一道题的所有行:
=SUM(B$2:B2) - 第三步:提取合并后的完整试题,在D2单元格输入公式,下拉填充直到返回
#N/A为止,每一行D列内容即为一道完整试题:=TEXTJOIN(CHAR(10),TRUE,FILTER(A:A,C:C=ROW(A1)))
注:如果需要合并后内容保留原换行格式,选中D列,点击「开始」选项卡→「对齐方式」组的「自动换行」即可。
方案2:Power Query法(无Excel版本限制,处理大量数据更稳定)
- 选中A列所有数据,点击顶部「数据」选项卡→「从表格/区域」,将数据导入Power Query编辑器
- 点击「添加列」→「自定义列」,输入公式
= Text.Contains([Questions], "%"),确定后得到布尔值列,带%的行显示为TRUE - 点击「添加列」→「索引列」→「从0开始」,生成从0计数的索引列
- 再次添加自定义列,输入分组公式:
= List.Sum(List.FirstN(#"上一步的列名"[自定义], [索引]+1)),替换公式里的「上一步的列名」为你上一步操作后右侧查询设置里显示的步骤名即可,相同数值对应同一道题的所有行 - 选中新增的分组列,点击「转换」→「分组依据」,设置:
分组依据:分组列
新列名:临时表
操作:所有行 - 再次添加自定义列,输入合并公式:
= Text.Combine([临时表][Questions], "#(lf)"),得到合并后的完整试题列 - 删除其余无用列,点击「主页」→「关闭并上载」,即可将合并后的数据导出回Excel工作表
后续去重操作
合并完成后,选中完整试题所在列,点击「数据」选项卡→「删除重复值」,即可批量排查移除重复试题。
内容的提问来源于stack exchange,提问作者Blane
相关产品推荐
相关产品推荐

