方法不会覆盖或实现超类型的方法_3个超简单的合并同类项方法,再不会就是你的错了...

私信回复关键词【福利】,获取丰富办公资源,助你高效办公早下班!


hello,大家好,我是秋叶 Excel 学习班里的小爽同学~

c1cd50d63882a1b1ab39cda8861ea3a9.png

在学习班群里一直悄咪咪「潜伏」的我,无意间看到一个小伙伴的提问:

怎么将不同公司对应的产品,合并起来,并用顿号连接?

69eb427369222c564f1a18a3f4a38813.png

整理出来的表格效果如下图所示:

42759cbd599e377193da7441950ecabd.png

很明显,其中涉及到的知识点是:去除重复值,合并同类项。

下面我们就来看一下这位同学的需求,进一步的了解合并同类项的做法~

这位同学给了我一张表(左表)让我统计一下人员购课情况,所以现在我需要把表格转换为右表的形式~

2c1a94cdbd13b43d3a8400081677493b.png

这个问题,本质上就是合并同类项。

本文将介绍合并同类项的三种方法:

❶ Office 2019 以及以上版本——Textjoin 连接法。

❷ Office 2013 以及以上版本——Powerquery(PQ)分组依据功能。

(Office 2013 版本的小伙伴可以在后台回复【插件】自行安装,Office 2016 以及以上版本的 Excel 自带 PQ 插件)。

❸ 适合 Office 2007 及以上、WPS 2016 及以上版本——插件法。

01

方法一:Textjoin 函数法

Textjion 函数适用的版本:WPS 2019、Office 2019、Office 365。

Textjion 函数的做法如下:

3234ca19a054ccd277fa54f8b12f586a.gif

公式如下:

=TEXTJOIN(" / ",TRUE,IF(E2=$A$2:$A$14,$B$2:$B$14,""))

很明显,我们要先用 IF 函数把同类项找出来,再用 Textjion 函数进行连接。

IF 函数我们都很熟悉啦,简单介绍一下 Textjoin 函数~

Textjoin 函数有三个参数。

=Textjoin(分隔符,是否忽略空值,数组/单元格区域)

如果要忽略空值就填 TRUE,不忽略空值就填 FALSE。

1caca5fac18a01544c96778cbb7955c2.png

打个比方:

=Textjoin("-",TRUE,{"秋";"";"叶";"Excel"})

结果就等于:秋-叶-Excel

第二参数为 TRUE,所以数组中的空值被忽略了,后面就直接用分隔符把秋,叶,Excel 连接了。

小贴士:

❶ 该公式是一个数组公式,返回时需要按住三键【Ctrl+Shift+Enter】来执行数组运算。

❷ 公式的运算原理是:

通过姓名与姓名列之间进行逻辑判断,返回一个逻辑值,最后借助 IF 函数返回 True 相对应的值(购买的课程)。

de3d1e654043ba7d4dca001a2bb0c60d.png

这时候形成一个由空值与购课情况结合的数组,后面就用 Textjion 函数进行连接。

由于 Textjoin 函数可以忽略空值,所以对应的购买的课程就可以直接用分隔符连接起来啦~

了解了基本的函数做法后,下面我们就来介绍一下 PQ 用法。

02

方法二:PQ 分组依据功能

第一步:将表格导入 PQ 编辑器中。

选中表格-点击【自表格/区域】。

8c804d45a54a938763e0ee1589533d55.png

勾选表包含标题-点击确定。

c90faaa2a5c95181839716b01ab360c3.png

此时就进入 PQ 编辑器里啦~

第二步:

选择姓名列-点击【开始】选项卡下的【分组依据】;

操作为【求和】-柱为【购买的课程】,点击确定。

此时出现错误没关系,后面我们就来改公式。

ae2580a073e5d2ae458d8a62f7a49f32.gif

第三步:

更改函数公式,将 List.Sum 改为 Text.Combine 并添加分隔符参数。

1dfe097f2489c8d6dbd8a11f65fae07f.gif

第四步:关闭并上载,此时就完成啦~

a8dc656f58b6b6318704a3783a62b863.gif

看完了上面的操作,有小伙伴或许会疑问了,究竟什么是分组依据?

这里为什么要用 Text.Combine 函数?

为何出现错误值?

下面我们就来简单解释一下吧~

何为分组依据?

分组依据的功能,跟工作表中的合并计算有点类似,

也有点像 Excel 里面的数据透视表,对指定字段数据进行统计,它可以指定多个字段作为条件,也可以同时统计多个结果。

f5e1a4fc8b578d90442934ac0b23dfb3.png

分组依据可以支持的统计方式包括:求和,平均值、最小值,非重复行计数和所有行。

为什么要用 Text.Combine 函数?

分组依据没有合并文本的功能,所以我们需要用到 Text.Combine 函数。

Text,是文本的意思,Combine,是结合的意思。

这个函数就是用来文本连接的!是不是感觉有点像上面说的 Textjion 函数~

Text,Combie 有两个参数:

=Text,Combie(文本序列,分隔符)

7577610ccad4d38e4fe2ff310b3def13.gif

为何出现错误值?

分组之后的计数出现错误值的原因是:

我们的购买的课程列是一个文本,直接对文本进行求和,所以会出现错误值。

不过没关系,我们可以直接把 List.Sum 求和改为文本连接 Text.Combine 函数,后面再添加分隔符就好啦~

5efd210ad1f6327f700a5e2bc9e58733.png

使用 PQ 法的好处在于,可以实时更新数据!

接下来,我们来看看最简单的插件做法吧~

03

方法三:插件法

这里我们用到的插件是 E 灵,用到的功能是数据分类合并。

老规矩,可以在后台回复【插件】即可获取下载。

下面就通过一个动图来看看具体操作~

2e52914c932d3b1bfc5447c145816c46.gif

数据合并功能只能用顿号连接,所以不是特别灵活,不过它操作简单,也不失为一个好的方法。

68154f939b61c696fca9cb8294f8f148.png

好啦~三种方法进行合并同类项你是否 get 到了呢~

总结一下,本文介绍三种合并同类项的方法:

Textjoin 和 If 函数连接同类项——Textjoin 函数可以忽略空值,并能够用分隔符连接。

PQ 分组依据——配合 Text.Combine 函数达到连接同类项的效果。

E 灵插件数据合并功能——虽然只能用顿号分隔,不过操作简单~

关于合并同类项,还有什么困惑,可以在留言向小爽提问哦~

私信回复关键词【福利】,获取丰富办公资源,助你高效办公早下班!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以通过遍历一个数组或集合,使用Map来记录同类项的信息,最后将同类项合并成一个结果。具体实现步骤如下: 1. 定义一个Map,用于记录同类项的信息,键为同类项的标识,值为同类项的数量。 2. 对数组或集合进行遍历,对每一个元素进行处理。假设元素为item,首先获取item的标识符key。 3. 判断Map中是否已经存在以key为键的项,如果存在,则将该项的数量加1;否则,将key作为新的键,将数量初始化为1,加入到Map中。 4. 遍历结束后,根据Map中的信息,生成合并后的结果。 下面是一个示例代码实现: ```java import java.util.*; public class MergeItems { public static void main(String[] args) { String[] items = {"apple", "banana", "banana", "orange", "apple", "banana"}; // 使用Map来记录同类项的信息 Map<String, Integer> map = new HashMap<>(); for (String item : items) { if (map.containsKey(item)) { map.put(item, map.get(item) + 1); } else { map.put(item, 1); } } // 根据Map中的信息,生成合并后的结果 List<String> result = new ArrayList<>(); for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); int count = entry.getValue(); String itemStr = count + " " + key; if (count > 1) { itemStr += "s"; } result.add(itemStr); } System.out.println("合并后的结果:"); for (String item : result) { System.out.println(item); } } } ``` 运行结果如下: ``` 合并后的结果: 2 apple 3 banana 1 orange ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值