countif函数比较两列不同_不管查找第几次出现的数据,用Vlookup函数这样做,超简单!...

e08e323b36f7ae07dce68e1f6c71fbcd.png

本文作者:小爽 本文编辑: 小叮、竺兰

Hello,大家好,我是小爽~

每个产品都有自己的价格,价格也有一定的波动范围。

例如双十一双十二的活动价格,还有平常的价格等等~

比如说,下面的同学是做汽车销售的。

每隔一段时间,汽车的销售价格就要做一些调整。

所以,他现在想要知道,「最近一次和上一次的销售价格差异是多少?」

fc3f2c6c899d8081b5a89c5585dda988.png

那么问题再归纳整理一下就是这样的:

❶ 最近一次销售价格是多少? ❷ 上一次销售价格是多少? ❸ 两者之间的差值是多少?

最终的效果大致是下面这样子的:

673a5ac9cc5b3656e0d3e1b72bd317b4.png

以上问题,本质上就是一个数据查询的问题,查询最近一次上一次的数据。

在 Excel 之中,当我们要进行数据查询时,一般我们会想到,使用 Vlookup 函数,透视表,或者 Lookup 函数等等~

那么,大家可以先结合这几种思路思考一下~

......思考时刻……

用 Vlookup 函数? 好像只能查找第一个出现的值。 用数据透视表? 好像只能得到最大日期的价格。 用 Lookup 函数? 虽然可以得到最近的日期的价格,但是好像不能得到倒数第二次的价格。 ……

…………思考时间…………

如果是你,你会怎么做呢?

好吧,我给大家来解释一下,无论使用哪种方法,都会遇到困难点——倒序查找

就是查找最后一次和倒数第 2 次的数据。

前面几种方法,直接用一个函数或者数据透视表都很难实现「自主选择返回第几次的数据」。

为了满足这个需求,我们就要费一番周折,借助 Countif 函数和 Vlookup 函数来组合实现

好啦,那接下来我们来看一下具体的做法。

b6d1568e08c2a61704ce06974eefe792.gif

今天,我就来给大家介绍一下函数法~

我们还是以这个数据作为例子。

673a5ac9cc5b3656e0d3e1b72bd317b4.png

下面就来看看具体操作。

01

按照日期进行升序排序

❶ 选中表格,点击【数据】选项卡-【排序】;

【主要关键词】-「价格维护时间」;

【次序】-「升序」。

3a4bb3a90cfb2b70d43b0e924cf9fc0f.gif

「为什么要将日期先进行排序呢?」

这里主要是为了后面可以利用 Vlookup 函数,得到最近的一个价格。

还是不理解?没关系,先往后继续看~

2679932a5f97825ce40a79cd24a61b94.png

02

添加辅助列

首先新增一列,利用拉灯式得到每个车型的出现次数。

(不理解拉灯式没关系,下面马上就会讲到啦!)

❶ 插入列的方法: 可以选中列,右键插入; 也可以利用快捷键【Ctrl+shift+=】,直接在左边插入一列。

dadf81c7c9c0d091e14e07304c26dfc3.png

❷ 利用拉灯式得到每个车型的出现次数。

A2 单元格输入公式如下:

=COUNTIF($B$2:B2,B2)

2d934876db25fa69cfb1870b8ab2091c.png

❸ 在价格列前面添加辅助列,将次数和车型连接起来。

公式如下:

=A2&B2

6c56ca484e3999b19466347f037080f8.png

看到这里,肯定有小伙伴疑惑了:

第一个辅助列用 Countif 函数的目的是?

什么是拉灯模式,拉灯模式是干嘛的?

最后为啥将 A 列和 B 列合并?

f28b16d3a27ae47dda62581429ce6310.png 下面我们就来解析一下~ Q1: 第一个辅助列用 Countif 函数的目的是? 第一个辅助列,我们用的是 Countif 函数,主要是得到各类车型依次出现的次数。 Countif 函数,能够对区域中满足单个指定条件的单元格进行计数。 基本语法为: =COUNTIF(查找区域,条件) 第一个辅助列: A2 单元格:
=COUNTIF($B$2:B2,B2)
就是在 B2 到 B2 的区域中找 B2,也就是中卡车出现 1 次。 A3 单元格:
=COUNTIF($B$2:B3,B3)
就是在 B2 到 B3 的区域中找 B3,也就是大卡车出现 1 次。
A4 单元格:
=COUNTIF($B$2:B4,B4)
就是在 B2 到 B4 的区域中找 B4,也就是中卡车出现 2 次。 …… 如此循环下去,这里我们看到中卡车一共出现了 5 次。 4deac2a695822c0d854af0d99c111961.png Q2: 什么是拉灯模式,拉灯模式是干嘛的? 拉灯模式:单列区域中, 起始单元格绝对引用,结尾单元格相对引用。 比如「$A$1:A1」,像拉灯一样头端固定,向下拉长度变化的动态区域。 下面我做了一个简单的图示,可以简单了解一下:

725f84c3f16f0b5022f7862de4dde976.png

Q3: 最后,为啥将 A 列和 B 列合并? C 列中我们将 A 列和 B 列进行合并是由于: 后面我们需要用到 Vlookup 函数进行查询 而 Vlookup 函数只能查找第一次出现的值,对于重复出现的值没办法进行查找。 Vlookup 基本语法: =VLOOKUP(找啥,在哪里找,返回的在第几列,匹配方式) PS:公众号后台回复【UP】即可获取 Vlookup 函数的相关文章。 A 列是出现的次数,B 列是车型。 两列合并不仅可以构造不重复的值,而且「次数&车型」,我们也可以得到第几次出现的值。 比如下面: 「2&中卡车」的公式,这里我们可以查找「中卡车第二次出现」的价格。
=VLOOKUP(2&"中卡车",C1:E12,2,FALSE)

▲左右滑动查看

结果为 92000。 454d0ae21c5fb4f78f70d442474930dc.png 通过上面的解释,你是否看懂了呢? 9f9599e830e714a408bcc4410444bdd6.gif 如果明白了上面的解释,下面编写公式就难不倒你了~

03

编写公式

❶ 查找最近一次日期, I2 单元格中输入公式:
=VLOOKUP(COUNTIF($B$2:$B$12,$H2)&$H2,$C$1:$E$12,2,FALSE)

▲左右滑动查看

2d15b06ac31c9acaaf9f5a8a2b67136b.png ❷ 查找倒数第二次日期, J2 单元格输入公式:
=VLOOKUP((COUNTIF($B$2:$B$12,$H2)-1)&$H2,$C$1:$E$12,2,FALSE)

▲左右滑动查看

68d8a31587e8821efbe7106f4c7370cd.png ❸ 最后计算两个的差值, K2 单元格输入公式:
=I2-J2
7d1ce67f2a02d5cbfc608713e93ad771.png 下面我们就来简单解析一下公式~ 前面我们知道了,可以利用 Vlookup 函数,通过「次数&车型」来查找,获得第几次出现的价格; 最前面,我们也已经将日期进行升序排序了。 那么,如果想要获得「某种车最近一次日期」的价格,我们可以利用 Vlookup 函数。 比如:通过查找「小轿车一共出现的次数&小轿车」的价格,也就是最近一次日期的价格。 那如何才能得到小轿车的总次数? 前面我们介绍过 Countif 函数,它可以得到小轿车在某个区域中出现的总次数,公式如下: =COUNTIF(区域,「小轿车」)

c95e1276a6db3128900bb32a9d0eab69.png

所以,在 I2 单元格中输入公式如下,得到最近一次日期:
=VLOOKUP(COUNTIF($B$2:$B$12,$H2)&$H2,$C$1:$E$12,2,FALSE)

▲左右滑动查看

在 J2 单元格中输入公式如下,得到上一次日期:
=VLOOKUP((COUNTIF($B$2:$B$12,$H2)-1)&$H2,$C$1:$E$12,2,FALSE)

▲左右滑动查看

最后两者差值,直接相减就可以得到啦~ ead1837f98103ac42dfd0b903056b8ba.gif 好啦,总结一下,本文涉及到的知识点和思路有: ❶ 通过排序为后面获取最大值做准备。 ❷ 借助 Countif 拉灯模式获得车型依次出现的次数。 ❸ 通过辅助列构造不重复值,再用 Vlookup 函数进行查找。

04

小延伸

前面,我们是将日期先进行升序排序。 后面,通过计算各车的总次数,还有次数减 1,利用 Vlookup 函数返回对应的价格。 那么我们逆向思考一下。 如果我们事先将日期进行降序排序。 后面就可以直接用「1&车」,「2&车」,分别利用 Vlookup 函数得到最近一个日期,还有倒数第二次的价格。 这样就少了后面 Countif 函数计数的那一步了。 这其实是一个逆向的思路,我们关键是理解思路背后的原理。 前面我们是用组合公式完成的,对吧? 但是组合公式还有几个缺点: ❶ 每次都需要提前将数据按照日期进行排序; ❷需要写很多辅助列; ❸ 数据无法自动更新。 而这些缺点,使用一个叫做 Power Query 的神器都可以通通解决掉!! 看一下演示的效果~ 09aa552d582a7475c23faca662c8978a.gif 整个过程不需要事先对数据进行排序,不需要做辅助列。 直接在右边的结果上面,右键点击刷新,就可以完成数据的更新。 一劳永逸的感觉,有没有! 想要知道这个是怎么做的吗?快快给我点赞吧! 点赞越多,我写文章就写得越快,可能下篇文章我们就可以来聊这个话题。 还有任何疑问,或者其他做法,欢迎在后台留言和小爽互动,有用的话可以动动手转转发~

57cad192564dde6633d0866dc0b84f7e.png57cad192564dde6633d0866dc0b84f7e.png57cad192564dde6633d0866dc0b84f7e.png

如果你也想遇到问题,现场提问、现场解答,再也不用一个人苦苦挠破头,欢迎加入 【 秋叶 Excel 数据处理学习班】:  

?学习班里,不仅教 Excel 数据处理的思路方法、教表格设计的内功心法,也教透视表、常用函数、图表的使用技巧!

?上课还有老师在线直播讲解,不用看一个人孤独看录播!

?有学员群、小组群,有助教、小组长督促你一起学习!

扫码咨询入群,一起成为效率达人

↓↓↓ 5142e7ed06e849cf30727c7fad5fd176.png 40460e913c8766730691a086ef802d4f.png fcbc87ff5f2963dccb0081a9b59cc8be.png 04a67188967d99e25c470af0cd506441.png 57e03f3d462d43a6c8b15c6b330161c2.png 4d11a3e24144d18f5bb0444363456a05.png cdbc55a01f68e0e06d5b2fdbc2164562.png 学习打卡~~ cb7f99138d49fa660dda90d4a4c0acc4.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值