分享

Excel实用技巧:这个问题有这么多方法解决?哪一个是好方法呢?看我为你详细分析

 ExcelEasy 2021-02-05

方法用的好,工作没烦恼

在Excel中,一个问题往往有非常多的解决方法。可以使用菜单功能,可以使用快捷键,可以使用各种菜单功能的组合,也可以使用函数,函数也有简单和复杂,巧妙与笨拙,“高手”还可以写VBA代码,总而言之,条条大路通罗马。

那么问题就来了,你想走那条呢?

我听过不止一个人跟我说过:只要能解决问题的就是好方法!

其实,这是不对的。同样是解决问题,别人5秒钟,你花3个小时,无论如何不能说你的方法是个好方法。

说了那么多,问题是什么呢?


01

一个简单的问题

这个问题很简单,起因是有人在QQ群里发了一个截图:

然后问了一个问题:

如何判断这些数字是否全部相等!

问题很简单吧。我就把这个问题放在了各个微信群里,做了一个问题征解,最好的方法将获得红包奖励😁。

大家提出了各种方法。那么哪一个是最好的方法呢?


02

好方法的标准

别的领域我不了解,但是在Excel中,我认为一个好的方法必须符合下面的3条:

  1. 方法的适用范围可扩展。
    适用范围可扩展的意思是说如果我们面对的场景发生了变化,这个方法还能用,最好是不经过修改就能用,如果经过微小的修改后能用,也可以。当然这个变化是说非本质的变化。比如,如果我们将来要判断不是4个数相等,而是400个,4000个数是否相等,最好这个方法还能用。如果这400个不是在一行上,而是在一列上,这个方法还能用。如果这400个数是在一个多行多列的矩形区域中,这个方法还能用。这个方法就是一个适用范围可扩展的好方法。上面的这些变化就不是本质的变化,还是判断数值是否相等。如果问题变成了有多少个100,这就是本质的变化了。

  2. 方法的结果应该是“随动”的
    这个“随动”的意思是如果源数据发生了变化,那么这个方法的结果应该是跟随源数据自动变化的。举例来说,现在这4个数据都相等,如果其中一个改成了200,应该自动能反映出变化来。从这个意义上来说,所有通过菜单功能实现的方法,或者通过某个快捷键等键盘操作实现的方法不能说是一个好方法,因为数据变化后,你必须再次进行操作才能看到结果。
    这里还要考虑另外一个因素:结果是否可引用。在多数情况下,我们并不是眼睛看到结果是否相等就可以了。我们需要根据这个是否相等的结果进行下面的处理,比如,如果不相等,在其他单元格中就会显示一个提示信息等。这样的话,那些菜单功能和快捷键等方法就不符合要求了。

  3. 方法应该是简便的。
    一个好的方法必然是简便的方法。这个简便有两个含义,其一是操作简便。这个方法必须能够在很短的时间内用很少的操作就可以完成。其二是大部分人能够掌握。如果是使用了一个非常复杂的公式,使用者必须研究生学历以上,这就肯定不是一个好方法。
    当然,这个简便是相对的。比如判断数字是否相等,如果必须写5000行的程序,肯定是复杂了。但是对于像500个Excel文件的数据合并,写个程序就是一个可考虑的选择。

好了,现在我们有了这3个标准,看看大家都提出了什么样的方法呢?


03

不同方法的比较

方法1 =B3=C3

通过比较相邻两个单元格是否相等,并且将公式向右拖拽填充,只要有一个FALSE出现,就说明至少有一个数跟其他的不相等。

就这个问题而言,这个方法当然是解决了这个问题本身。但是从第一点:“可扩展”的角度看,这个公式不能适用数据变化后的情况。比如,如果我们要判断一个30行,10列的区域中的数字是否相等。用这个方法就不能很方便的实现。

还有朋友提出了一个这个方法的变形,使用一个公式:

=AND(B3=C3,C3=D3,D3=E3)

这个方法比前面的方法好,但是,如果我们有400个数,这里的等式就必须有399个。实在不能说是一个具有实用性的方法😀

方法2 使用CTRL+\

这是一个快捷键,选中B3:E3区域,然后按CTRL+\,如果数字全部相等,就会返回一个“未找到单元格”的信息:

如果有不相等的,就会选中那个有差异的单元格。

这个方法也是可以解决这个问题的。但是这个方法首先不是“随动”的。任何时候需要判断,你都需要重新执行这个操作。并且,如果数据发生了变化,这个方法根本不能得到我们需要的正确结果:

我们现在有个2行4列的区域,其中的数值并不全相等。但是CTRL+\不能找到结果

这是因为这个快捷键是用来查找多列数据的差异的。凡是第二列跟第一列数字有差异的地方都可以被发现:

而行之间的差异就发现不了了。

方法3 条件格式

有朋友提出了条件格式突出显示唯一值:

看上去,也发现了不同的值,但是仔细一想就会发现这个方法只能适用于只有一个不同值的时候,比如,如果另外再有一个200,那么就什么都看不出来了。

方法4 使用公式MAX=MIN

有几位朋友使用了公式:

=MAX(B3:E3)=MIN(B3:E3)

如果这组数字中全部相等,那么他们的最大值和最小值一定是一样的。反之则不然

应该说,这个方法完全符合我们那三条关于好方法的标准:范围可扩展,不管你有几行几列,都可以使用这个公式;结果随动,因为是公式产生的,所以结果跟随源数据变化而自动变化,同时,结果还是可以在其他公式中引用的。简便性是当然的,MAX和MIN是大部分人都会用的,公式也不长。是一个好方法的候选者。

方法5 使用公式COUNTIF

有朋友使用了公式:

=COUNTIF(B3:E3,B3)=4

在我们给出的例子的情况下,这个公式也起作用了。

但是由于公式中使用的一个常量“4”,这个公式就有了一点缺陷。如果数据范围变化了,就必须手工修改这个值。
有朋友修改了一下这个公式:
=COUNTIF(B3:E3,B3)=COUNT(B3:E3)

判断一下这个区域中的值等于B3的单元格个数是否就是全部含有数字的单元格个数就可以得出结论了。

这明显是一个好方法。不过由于公式比前一个方法略长,所以我觉得这个方法稍落下风。

方法6 使用公式VAR

还有一个公式可以使用:

=VAR(B3:E3)

VAR函数计算一组数据的方差。如果所有数据完全相等,返回值为0。否则,返回值不为0

从各方面来说,这个方法更好一些。除了满足我们的3个判断条件外,这个公式更加简单。稍微有一点欠缺的是,有很多人不了解这个函数,尽管这个函数使用很简单,但是很多人并没有接触过。也许正是因为这个原因,没有任何一位朋友提出用这个函数解决问题。


04

结论和结果

根据前面的分析,我认为对这个问题而言,最好的方法是使用MAX/MIN函数的方法:

=MAX(B3:E3)=MIN(B3:E3)

尽管我个人更倾向于VAR方法,但是由于知道的人比较少,所以这个方法在简便性上是有一点缺陷。

最后,两位提出这种方法的同学获得了我们的红包奖励。

方法用的对,工作并不累!加入E学会,学习更多Excel实用技巧和工作方法,每天节约3小时。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多