将含空缺的竞赛计分Excel表格转换为邮件合并(mail merge)可用列表的技术求助
将含空缺的竞赛计分Excel表格转换为邮件合并(mail merge)可用列表的技术求助
嘿,我来帮你搞定这个转换需求!要把这种带空缺单元格的竞赛计分表,转成适合邮件合并的规整列表,用Excel的Power Query就能轻松实现,不用手动一条条整理,效率拉满。
先给你明确下前后的格式对比:
原始带空缺的计分表格
| Number | Name | address | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|---|
| 1 | david | xxdavid | apples | potatos | |||
| 2 | helen | xxhelen | pears | ||||
| 3 | caroline | xxcaroline | pears | potatos | carrots | ||
| 4 | jacqui | xxjacqui | carrots | beans | |||
| 5 | Nigel | zznigel | pears | carrots |
转换后适合邮件合并的两种常用格式
格式一:扁平逐条记录(单条记录对应一个人+一个获奖项目,最适配邮件合并)
| Number | Name | address | 项目编号 | 获得物品 |
|---|---|---|---|---|
| 1 | david | xxdavid | 1 | apples |
| 1 | david | xxdavid | 3 | potatos |
| 2 | helen | xxhelen | 2 | pears |
| 3 | caroline | xxcaroline | 2 | pears |
| 3 | caroline | xxcaroline | 3 | potatos |
| 3 | caroline | xxcaroline | 4 | carrots |
| 4 | jacqui | xxjacqui | 4 | carrots |
| 4 | jacqui | xxjacqui | 5 | beans |
| 5 | Nigel | zznigel | 2 | pears |
| 5 | Nigel | zznigel | 4 | carrots |
格式二:用户汇总记录(单条记录对应一个人的所有获奖项目)
- 1 - david (xxdavid):项目1的apples、项目3的potatos
- 2 - helen (xxhelen):项目2的pears
- 3 - caroline (xxcaroline):项目2的pears、项目3的potatos、项目4的carrots
- 4 - jacqui (xxjacqui):项目4的carrots、项目5的beans
- 5 - Nigel (zznigel):项目2的pears、项目4的carrots
具体操作步骤(用Excel Power Query)
生成格式一(扁平逐条记录)
- 选中原始表格的任意单元格,点击顶部菜单栏的数据选项卡,选择「从表格/区域」(记得勾选“我的表格有标题”,确保表头被识别)。
- 进入Power Query编辑器后,按住Ctrl选中
1、2、3、4、5这几列,然后点击转换选项卡的「逆透视列」→「逆透视仅空白单元格」。 - 这时候表格会自动把非空的获奖项拆成单独行,同时保留用户的基础信息。你可以把自动生成的
属性列重命名为「项目编号」,值列重命名为「获得物品」,让表头更直观。 - 最后点击主页选项卡的「关闭并上载」,转换好的表格就会出现在新工作表里,直接就能用于邮件合并了!
生成格式二(用户汇总记录)
在完成上面格式一的逆透视步骤后,继续操作:
- 选中
Number、Name、address这三列,点击转换选项卡的「分组依据」。 - 在分组设置弹窗里,分组依据选择这三列,新列名设为「获奖项目」,操作选择「所有行」,点击确定。
- 接着点击添加列选项卡的「自定义列」,输入公式:
Text.Combine(List.Transform([获奖项目], each "项目"&[属性]&"的"&[值]), "、"),这样就能把每个用户的所有获奖项合并成一段文字。 - 最后删除多余的「获奖项目」列,只保留基础信息和合并后的获奖内容,再关闭并上载,就能得到汇总版的列表啦。
这样操作下来,不管是哪种格式,都能完美适配邮件合并的需求,完全不用手动处理那些空缺单元格,既省时又不会出错!
备注:内容来源于stack exchange,提问作者adjectivedave




