VLOOKUP, COUNTIFS 应用

Vlookup ,根据关联字段,合并表格,类似join

需求1:

sheet 1:
user_id, order_no

sheet2:
order_no, payment

现需把数据合并成一个表展示,通过order_no关联两个sheet

最终效果是:
sheet1:
user_id, order_no, payment

做法:

sheet1的第三列,名字叫支付方式(payment),在这里的空格输入程序:
=VLOOKUP(I2,Sheet2!$A$1:$B$4000,2,1)

解释:
I2(待搜索匹配的数据): 代表sheet1的order_no
Sheet2!$A$1:$C$4000(在哪个范围搜索匹配): 代表整个sheet2的数据,注意$A$1:$B$4000这里是绝对引用,不是相对引用。
2(匹配后取第几列的数据): 代表sheet2的第二列,即payment列,意味着匹配后,sheet1的payment就显示这一列的数据
1(精确or模糊匹配): 1精确,0模糊

这样就能合并了

注意的地方

  1. 我们搜索的是sheet1的order_no, 那么搜索的目标范围,第一列必须就是order_no的数据,否则匹配不上。这里的含义是,你拿你所搜的东西,到我目标范围的第一列匹配,不是第一列匹配不了。即excel的做法只会搜索第一列,不会跟你全列搜索,这样效率也低。
  2. 搜索范围的绝对应用和相对应用,我一开始用相对引用(直接输入sheet1:2000),那么后面数据执行函数的时候,会自动变成2:20001, 3:20002。 结果匹配的数据出错了。 用绝对应用,无论哪个数据执行,都是针对整个搜索访问,不会移动,这样没有出错。$A$1:$B$4000 这种就是绝对引用

COUNTIFS 应用,聚合统计count\sum,类似group by

需求

sheet1
user_id1, order_1, status=1
user_id1, order_2, status=0
user_id1, order_3, status=1

user_id2, order_10, status=0
user_id2, order_11, status=1

需要在sheet2表统计好用户分组数据,最后展示为:
user_id1, 订单总数, status=1的总数
user_id2, 订单总数, status=1的总数

思路

我一开始想使用vlookup,来达成这个目的,但是搞了很久,都没搞成,vlookup每次只会搜索一次,然后不会累加
这个思路我觉得还是得梳理一下。

做法:

累计订单总数=COUNTIF(Sheet1!A:A,A2)
第一个参数:范围
第二个参数:条件
这里的含义是:A2这个值在sheet1A列里面如果匹配了,则count累加一下行数

计算status=1的总数 =COUNTIFS(Sheet1!A:A,A2,Sheet1!F:F,"=1")
COUNTIFS(范围1,条件1, 范围2,条件2)
这里的含义是:
第一个条件:A2这个值在sheet1A列里面匹配
第二个条件:F列里面值=1
符合这两个条件,才会COUNT计算行数

待思考的

VLOOKUP一对多实践

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容