excel中公式错误如何找出问题「Excel公式出错很常见怎么找出错误原因并debug得好好学本文思路」

有一个好学勤奋的学员,在学习了很多函数用法以后,尝试着解一道按模糊条件查找并求和的案例,公式倒是写得挺像模像样,但是结果总是出错,折腾了一天也不得其法,于是求助。

今天就借着这个案例,给大家讲解一下一些比较容易出错的思路,尤其重要的是要教会大家,当公式不正确的时候,如何把复杂嵌套公式逐一分解至最小单位查找错误根源,从而 debug。

这个过程非常重要,学会了自己查找原因,才算是会灵活变通地运用公式。

案例:

下图 1 的左侧是公司各部门同事的年终评分,请按 E、F 列的要求计算相关的总分。

效果如下图 2 所示。

解决方案:

学员想到的是下面这个公式,说实话,乍一看,好像没什么毛病,而且能用到这些函数的人,已经是下功夫认真学习过了。

1. 学员在 E2 单元格中输入了以下公式:

=SUMPRODUCT(SEARCH("销售*",A2:A13),C2:C13)

遗憾的是结果出错了。

为了搞清楚到底为什么出错,我们来看一下分解步骤结果。

2. 在公式栏中选中 SEARCH("销售*",A2:A13) --> 按 F9

于是就显示出了这段公式的结算结果:

search 函数的作用是在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号;找不到的则返回错误值;"销售*":表示所有以“销售”开头的字符串;因此这段公式的结果是由错误值和“1”组成的一个数组

有关 search 函数的用法,可参阅 Excel 如何按设定条件提取单元格内的字符串?

公式的最外层是 sumproduct 函数:

sumproduct 的作用是将两个数组的元素相乘并求和;如果遇到错误值,无论是乘法还是接下来的加法都无法得出结果,至此大家就能理解为何公式最终结果出错了。

通过公式分解理解了原理,那接下来就不难想到修复这个公式的办法了:如果能把 search 的结果中的所有错误值替换成 0,那么 sumproduct 就能正常计算了。

3. 将 E2 单元格的公式修改如下:

=sumPRODUCT(iferror(SEARCH("销售*",A2:A13),0),C2:C13)

在 search 函数外面包了一个 iferror 公式,旨在将查找不到的结果转换成 0 值,从而让最外层的 sumproduct 函数可以加总所有销售部的总分。

接下来要查找两个部门并求和,我们的学员非常会举一反三,在上述公式结构不变的情况下,将 search 公式替换成了两个 search 公式相加 SEARCH("研发*",A2:A13) SEARCH("测试*",A2:A13),“ ”表示“或”关系;逻辑貌似正确,但结果却为 0。

4. 学员在 F2 输入的公式如下:

=SUMPRODUCT(IFERROR(SEARCH("研发*",A2:A13) SEARCH("测试*",A2:A13),0),C2:C13)

照例,我们还是分步骤查看结果来找原因。

5. 在公式栏中选中其中的一段 search 公式 --> 按 F9

公式结果仍是一组以错误值和“1”组成的数组,这段前面已经解释过,不复述;但是接下来的运算优先级是跟另一个 search 公式的结果相加,即错误值和数值两两相加,最终得出一个全部由错误值组成的数组;然后,外层的 iferror 公式将数组中的所有元素都变成 0;最后的乘积求和结果自然就是 0 了。

针对上述出错原因,其实也很好解决,只要把相加的计算优先级放到 iferror 之后就行了。

6. 将 F2 单元格的公式修改如下:

=SUMPRODUCT(IFERROR(SEARCH("研发*",A2:A13),0) IFERROR(SEARCH("测试*",A2:A13),0),C2:C13)

与之前的公式区别就是:在每段 search 公式外面分别套一个 iferror 函数,将查找结果转换成 0、1 组成的数组;然后再将两个数组相加求和,得出“或”关系的正确查找结果;最后用 sumproduct 相乘求和就得到了正确结果

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

excel中公式错误如何找出问题「Excel公式出错很常见怎么找出错误原因并debug得好好学本文思路」

Excel中出现公式常见显示错误原因与解决方法

  Excel2007的公式如果写错,就会在单元格中显示各种各样的错误信息。看到这些奇怪的错误代码,有的朋友可能会手忙脚乱,甚至感到烦躁。今天,我就教大家在Excel中出现公式常见显示错误原因与解决方法。

  Excel中出现公式常见显示错误原因与解决步骤:

  其实,任何错误均有它内在的原因,下面我们就和大家探讨根据公式返回错误值的代码识别错误的类型和原因,以及相应的处理方法,帮助朋友们轻松地应对各种常见错误。

  错误显示1:#####!

  原因:单元格所包含的数字、日期或时间占位比单元格宽。

  解决方案:拖动鼠标指针更改列宽。

  错误显示2:#NUM!

  原因:顾名思义,公式中的数字出现问题——类型错误,或者数字超出Excel表示的有效范围。

  解决方案:让数字类型和大小都符合要求。

  错误显示3:#REF!

  原因:公式引用的单元格被删除或者被错误覆盖。

  解决方案:临时修改后及时“撤销”,恢复单元格原状。

  错误显示4:#VALUE!

  原因a:需要数字或逻辑值时输入了文本,如单元格B1为数字15,单元格B2为文本,则B3中输入公式“=B1 B2”将返回错误值#VALUE!

  解决方案a:确保公式引用的单元格中包含有效值。上例中可在B3中输入=SUM(B1:B2),SUM函数忽略文本,所以结果显示15。

  原因b:本来应该引用单一数值,却引用了一个区域。

  解决方案b:将数值区域改成单一数值,或者修改数值区域,使其包含公式所在的数据行或列。

excel中公式错误如何找出问题「Excel公式出错很常见怎么找出错误原因并debug得好好学本文思路」

Excel公式应用常见错误及处理方法

在利用Excel完成任务的过程中,公式被使用得非常多,能够解决各种各样的问题。但是,这并不意味着公式的运用总会一帆风顺,如果我们运用函数和公式的时候稍微不仔细,公式就可能返回一些奇怪的错误代码,这可不是我们希望得到的结果。

看到这些奇怪的错误代码,有的朋友可能会手忙脚乱,甚至感到烦躁。其实,任何错误均有它内在的原因,下面我们就通过实例剖析,和大家探讨根据公式返回错误值的代码识别错误的类型和原因,以及相应的处理方法,帮助朋友们轻松地应对各种常见错误。

一、 #DIV/0! 错误

常见原因:如果公式返回的错误值为“#DIV/0!”,这是因为在公式中有除数为零,或者有除数为空白的单元格(Excel把空白单元格也当作0)。

处理方法:把除数改为非零的数值,或者用IF函数进行控制。具体方法请参见下面的实例。

具体实例:如图1的所示的工作表,我们利用公式根据总价格和数量计算单价,在D2单元格中输入的公式为“=B2/C2”,把公式复制到D6单元格后,可以看到在D4、D5和D6单元格中返回了“#DIV/0!”错误值,原因是它们的除数为零或是空白单元格。

图1

假设我们知道“鼠标”的数量为“6”,则在C4单元格中输入“6”,错误就会消失(如图2)。

图2

假设我们暂时不知道“录音机”和“刻录机”的数量,又不希望D5、D6单元格中显示错误值,这时可以用IF函数进行控制。在D2单元格中输入公式 “=IF(ISERROR(B2/C2),"",B2/C2)”,并复制到D6单元格。可以看到,D5和D6的错误值消失了,这是因为IF函数起了作用。整个公式的含义为:如果B2/C2返回错误的值,则返回一个空字符串,否则显示计算结果。

图3

说明:其中ISERROR(value)函数的作用为检测参数value的值是否为错误值,如果是,函数返回值TRUE,反之返回值FALSE.。

二、 #N/A 错误

常见原因:如果公式返回的错误值为“#N/A”,这常常是因为在公式使用查找功能的函数(VLOOKUP、HLOOKUP、LOOKUP等)时,找不到匹配的值。

处理方法:检查被查找的值,使之的确存在于查找的数据表中的第一列。

具体实例:在如图4所示的工作表中,我们希望通过在A10单元格中输入学号,来查找该名同学的英语成绩。B10单元格中的公式为 “=VLOOKUP(A10,A2:E6,5,FALSE)”,我们在A10中输入了学号“107”由于这个学号,由于在A2:A6中并没有和它匹配的值,因此出现了“#N/A”错误。

图4

如果要修正这个错误,则可以在A10单元格中输入一个A2:A6中存在的学号,如“102”,这时错误值就不见了(如图5)。

图5

说明一:关于公式“=VLOOKUP(A10,A2:E6,5,FALSE)”中VLOOKUP的第四个参数,若为FALSE,则表示一定要求完全匹配lookup_value的值;若为TRUE,则表示如果找不到完全匹配lookup_value的值,就使用小于等于 lookup_value 的最大值。

说明二:出现“#N/A”错误的原因还有其他一些,选中出现错误值的B10单元格后,会出现一个智能标记,单击这个标记,在弹出的菜单中选择“关于此错误的帮助”(如图6),就会得到这个错误的详细分析(如图7),通过这些原因和解决方法建议,我们就可以逐步去修正错误,这对其他的错误也适用。

图6

图7

三、 #NAME? 错误

常见原因:如果公式返回的错误值为“#NAME?”,这常常是因为在公式中使用了Excel无法识别的文本,例如函数的名称拼写错误,使用了没有被定义的区域或单元格名称,引用文本时没有加引号等。

处理方法:根据具体的公式,逐步分析出现该错误的可能,并加以改正,具体方法参见下面的实例。

具体实例:如图8所示的工作表,我们想求出A1:A3区域的平均数,在B4单元格输入的公式为“=aveage(A1:A3)”,回车后出现了 “#NAME?”错误(如图8),这是因为函数“average”错误地拼写成了“aveage”,Excel无法识别,因此出错。把函数名称拼写正确即可修正错误。

图8

选中C4单元格,输入公式“=AVERAGE(data)”,回车后也出现了“#NAME?”错误(如图9)。这是因为在这个公式中,我们使用了区域名称data,但是这个名称还没有被定义,所以出错。

图9

改正的方法为:选中“A1:A3”单元格区域,再选择菜单“名称→定义”命令,打开“定义名称”对话框,在文本框中输入名称“data”单击“确定”按钮(如图10)。

图10

返回Excel编辑窗口后,可以看到错误不见了(如图11)。

图11

选中D4单元格,输入公式“=IF(A1=12,这个数等于12,这个数不等于12)”,回车后出现“#NAME?”错误(如12),原因是引用文本时没有添加引号。

图12

修改的方法为:对引用的文本添加上引号,特别注意是英文状态下的引号。于是将公式改为“=IF(A1=12,"这个数等于12","这个数不等于12")”(如图13)。

图13

四、 #NUM! 错误

常见原因:如果公式返回的错误值为“#NUM!”,这常常是因为如下几种原因:当公式需要数字型参数时,我们却给了它一个非数字型参数;给了公式一个无效的参数;公式返回的值太大或者太小。

处理方法:根据公式的具体情况,逐一分析可能的原因并修正。

具体实例:在如图14所示的工作表中,我们要求数字的平方根,在B2中输入公式“=SQRT(A2)”并复制到B4单元格,由于A4中的数字为“-16”,不能对负数开平方,这是个无效的参数,因此出现了“#NUM!”错误。修改的方法为把负数改为正数即可。

图14

五、 #VALUE 错误

常见原因:如果公式返回的错误值为“#VALUE”,这常常是因为如下几种原因:文本类型的数据参与了数值运算,函数参数的数值类型不正确;函数的参数本应该是单一值,却提供了一个区域作为参数;输入一个数组公式时,忘记按Ctrl Shift Enter键。

处理方法:更正相关的数据类型或参数类型;提供正确的参数;输入数组公式时,记得使用Ctrl Shift Enter键确定。

具体实例:如图15的工作表,A2单元格中的“壹佰”是文本类型的,如果在B2中输入公式“=A2*2”,就把文本参与了数值运算,因此出错。改正方法为把文本改为数值即可。

图15

图16中,在A8输入公式“=SQRT(A5:A7)”,对于函数SQRT,它的参数必须为单一的参数,不能为区域,因此出错。改正方法为修改参数为单一的参数即可。

图16

如图17的工作表,如果要想用数组公式直接求出总价值,可以在E8单元格中输入公式“{=SUM(C3:C7*D3:D7)}”,注意其中的花 括号不是手工输入的,而是当输入完成后按下Ctrl Shift Enter键后,Excel自动添加的。如果输入后直接用Enter键确定,则会出现 “#VALUE”错误。

图17

修改的方法为:选中E8单元格后激活公式栏,按下Ctrl Shift Enter键即可,这时可以看到Excel自动添加了花括号(如图18)。

图18

六、 #REF! 错误

常见原因:如果公式返回的错误值为“#REF!”,这常常是因为公式中使用了无效的单元格引用。通常如下这些操作会导致公式引用无效的单元格:删除了被公式引用的单元格;把公式复制到含有引用自身的单元格中。

处理方法:避免导致引用无效的操作,如果已经出现错误,先撤销,然后用正确的方法操作。

具体实例:如图19的工作表,我们利用公式将代表日期的数字转换为日期,在B2中输入了公式“=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))”并复制到B4单元格。

图19

这时如果把A2:A4单元格删除,则会出现“#REF!”错误(如图20),这是因为删除了公式中引用的单元格。

图20

先执行“撤消 删除”命令,然后复制B2:B4单元格区域到A2:A4,也会出现“#REF!”错误(如图21),这是因为把公式复制到了含有引用自身的单元格中。

图21

由于这时已经不能撤销,所以我们先把A2:A4中的数据删除,然后设置单元格格式为“常规”,在A2:A4中输入如图19所示的数据。

为了得到转换好的日期数据,正确的操作方法为:先把B2:B4复制到一个恰当的地方,如D2:D4,粘贴的时候执行选择性粘贴,把“数值”粘贴过去。这时D2:D4中的数据就和A列及B列数据“脱离关系”了,再对它们执行删除操作就不会出错了(如图22)。

图22

说明:要得到图22的效果,需要设置D2:D4的格式为“日期”。

七、 #NULL! 错误

导致原因:如果公式返回的错误值为“#NULL!”,这常常是因为使用了不正确的区域运算符或引用的单元格区域的交集为空。

处理方法:改正区域运算符使之正确;更改引用使之相交。

具体实例:如图23所示的工作表中,如果希望对A1:A10和C1:C10单元格区域求和,在C11单元格中输入公式“=SUM(A1:A10 C1:C10)”,回车后出现了“#NULL!”错误,这是因为公式中引用了不相交的两个区域,应该使用联合运算符,即逗号 (,)。

图23

改正的方法为:在公式中的两个不连续的区域之间添加逗号,改正后的效果为图24.

图24

关于Excel公式常见错误的处理方法就介绍到这里。文中选用的实例都是平时出现最多的情况,请大家注意体会。文中图6提到的帮助更正错误的智 能标记非常有用,如果利用介绍的方法都还未解决问题时,可以借助它进一步的分析。总之,只要思路正确,耐心仔细,Excel的公式错误最后就会被一一“歼 灭”。

上一篇:女销售原来靠这样卖房(楼盘置业顾问提成大概多少)
下一篇:生态板什么牌子的好「生态板什么牌子好生态板十大品牌推荐」