我爱电脑技术论坛's Archiver

LOK 发表于 2008-6-2 11:50

Excel公式应用常见错误及解决方法!

 在利用Excel完成任务的过程中,公式被使用得非常多,正如前面所介绍的,公式能够解决各种各样的问题。但是,这并不意味着公式的运用总会一帆风顺,如果我们运用函数和公式的时候稍微不仔细,公式就可能返回一些奇怪的错误代码,这可不是我们希望得到的结果。;On/eo%EJ^ W
T ?6\`l].aj
  看到这些奇怪的错误代码,有的朋友可能会手忙脚乱,甚至感到烦躁。其实,任何错误均有它内在的原因,下面我们就通过实例剖析,和大家探讨根据公式返回错误值的代码识别错误的类型和原因,以及相应的处理方法,帮助朋友们轻松地应对各种常见错误。文章末尾提供原文件供大家下载参考。a'o3[ B1?r h/p4z

6}k P"[7t   文中选用的实例都是平时出现最多的情况,请大家注意体会。文中图6提到的帮助更正错误的智能标记非常有用,如果利用介绍的方法都还未解决问题时,可以借助它进一步的分析。总之,只要思路正确、耐心仔细,Excel的公式错误最后就会被我们一一“歼灭”。6V {]2j!x;h,U8X"g

hxC7b-NoH^[u 一、 #DIV/0! 错误
L}.I8M n)M(c
^RP q[#OGW R   常见原因:如果公式返回的错误值为“#DIV/0!”,这是因为在公式中有除数为零,或者有除数为空白的单元格(Excel把空白单元格也当作0)。
vTBI[K
?O b { e O#W   处理方法:把除数改为非零的数值,或者用IF函数进行控制。具体方法请参见下面的实例。 5]3cUaf)K ^I5JlX
-b*i1}h.wV7LK4i
  具体实例:如图1的所示的工作表,我们利用公式根据总价格和数量计算单价,在D2单元格中输入的公式为“=B2/C2”,把公式复制到D6单元格后,可以看到在D4、D5和D6单元格中返回了“#DIV/0!”错误值,原因是它们的除数为零或是空白单元格。
7Hq+KJ5m|;I'}Q3@
:q4h+FNeF*]d)W]
W6o|(V_E/l
!mUp5na'Q [attach]28550[/attach]7]$k?G6D s;r
B X4oqS-z)yl |1O
ibDT hP H C B Z9U

's5[-U~}h.Y   假设我们知道“鼠标”的数量为“6”,则在C4单元格中输入“6”,错误就会消失(如图2)。
,~r?H!o}
4C-o"m8}b|C
m)bA7O} e`U
w!Okm J7YGh)~ [attach]28551[/attach]
cR\R Y5g ^9^ 8^:@vqlo#L"@z

Sp!l @!V c-D#Y
8e:IK VClY"xU w   假设我们暂时不知道“录音机”和“刻录机”的数量,又不希望D5、D6单元格中显示错误值,这时可以用IF函数进行控制。在D2单元格中输入公式“=IF(ISERROR(B2/C2),"",B2/C2)”,并复制到D6单元格。可以看到,D5和D6的错误值消失了,这是因为IF函数起了作用。整个公式的含义为:如果B2/C2返回错误的值,则返回一个空字符串,否则显示计算结果。 Y1U$Jp.N1T c
_!st{F(N
]'z(L'Gz6{"z;b2Y\
[attach]28552[/attach])Au~}3T @*D-g z'f.y _I
5]T X K W n j

f4wJ aeF
5b9j5JxZ*[N3N L.s.Y9QZ7k)Q ES
  说明:其中ISERROR(value)函数的作用为检测参数value的值是否为错误值,如果是,函数返回值TRUE,反之返回值FALSE.。

LOK 发表于 2008-6-2 11:52

二、 #N/A 错误
8d[1^G6Ls#q8y ? pT9Y*~@}liP
  常见原因:如果公式返回的错误值为“#N/A”,这常常是因为在公式使用查找功能的函数(VLOOKUP、HLOOKUP、LOOKUP等)时,找不到匹配的值。 f:j Mp rFe5}
Iys7zR|3I
  处理方法:检查被查找的值,使之的确存在于查找的数据表中的第一列。 +cJ|"s#J~
8oF%`.w_XmS5aT
  具体实例:在如图4所示的工作表中,我们希望通过在A10单元格中输入学号,来查找该名同学的英语成绩。B10单元格中的公式为“=VLOOKUP(A10,A2:E6,5,FALSE)”,我们在A10中输入了学号“107”由于这个学号,由于在A2:A6中并没有和它匹配的值,因此出现了“#N/A”错误。
5u ^6o2O&y]
Fy,x$h/P2`_;a
2OF+D:oTYO3dps
hPQ.m hb
X7[*np/H/rUQ [attach]28557[/attach]
[\C/|Y/sEQu
ny+o2U ])@ Jlm q UUb L4S
  如果要修正这个错误,则可以在A10单元格中输入一个A2:A6中存在的学号,如“102”,这时错误值就不见了(如图5)。
k^G4Vb
P6|D^B#j
2Ake3E9P0l
I{ w,u6Y [attach]28558[/attach]{WV!zP.v W*B&Y
xG jZS`{

JX-f9HR0t0xGK&q
$m"l _Q l Vd C   说明一:关于公式“=VLOOKUP(A10,A2:E6,5,FALSE)”中VLOOKUP的第四个参数,若为FALSE,则表示一定要求完全匹配lookup_value的值;若为TRUE,则表示如果找不到完全匹配lookup_value的值,就使用小于等于 lookup_value 的最大值。 9|aTcv|3\
#A:SW&M Vo
  说明二:出现“#N/A”错误的原因还有其他一些,选中出现错误值的B10单元格后,会出现一个智能标记,单击这个标记,在弹出的菜单中选择“关于此错误的帮助”(如图6),就会得到这个错误的详细分析(如图7),通过这些原因和解决方法建议,我们就可以逐步去修正错误,这对其他的错误也适用。
^)tk,{g6^ Y z
}ZlJ NQG0Q [attach]28559[/attach]}'O7x Gl}
6diB {4c#\#jwH
[attach]28560[/attach]9F rkzD6A#i8u!V
+?"bb8LWo,q0m,u
[[i] 本帖最后由 LOK 于 2008-6-2 11:54 编辑 [/i]]

LOK 发表于 2008-6-2 11:56

三、 #NAME? 错误
!Pf Vka W-JE ;M~6o p7x nUq
  常见原因:如果公式返回的错误值为“#NAME?”,这常常是因为在公式中使用了Excel无法识别的文本,例如函数的名称拼写错误,使用了没有被定义的区域或单元格名称,引用文本时没有加引号等。 0DYX'eV_bS

2J:iu1jb5H0L   处理方法:根据具体的公式,逐步分析出现该错误的可能,并加以改正,具体方法参见下面的实例。 $c v#OH+\J
;xd1t_{Q+e
  具体实例:如图8所示的工作表,我们想求出A1:A3区域的平均数,在B4单元格输入的公式为“=aveage(A1:A3)”,回车后出现了“#NAME?”错误(如图8),这是因为函数“average”错误地拼写成了“aveage”,Excel无法识别,因此出错。把函数名称拼写正确即可修正错误。 .g#L]@ Hy3G+e3Nc&}

sR+? {Z-Np_b
y4j WK8j\$X#w"] CB_C+dx],Y1[2[.]fV

NC;Cng'A [attach]28561[/attach]
6Hq+Lc#[ [0d6R
h;M8tE.d e
o$qW`%YH-p?   选中C4单元格,输入公式“=AVERAGE(data)”,回车后也出现了“#NAME?”错误(如图9)。这是因为在这个公式中,我们使用了区域名称data,但是这个名称还没有被定义,所以出错。
+K2U*y,?iU(s&z
1?c|4rP9x 0i&jy2uWH f|t
TiN/Ya(g.W1|k
(fAO e4UI;{
[attach]28562[/attach]
/X]xM5f.\C
:c'M/HF'she3@
1W*T:V8QB   改正的方法为:选中“A1:A3”单元格区域,再选择菜单“名称→定义”命令,打开“定义名称”对话框,在文本框中输入名称“data”单击“确定”按钮(如图10)。 BTw[~"o:_Un Q

2a"I7~"D x _4J-w` Y
~8J|%F Y`Z&c!T
$qk*G\:[[(Z#[ Q$?
$cS'`(y `(TG$x [attach]28563[/attach]
*b)OF8k w MN[ U#m
"`r^4pY*Z5f$] k;I"Vw:j w.{
  返回Excel编辑窗口后,可以看到错误不见了(如图11)。 v%j/bx/g;N/`
\;R-J@&~ C Dt!R~
5O.N1Iuv

"b o1aJ:~/M [attach]28564[/attach]
:WH)Kyw9~NCZ*h
EG/`)}"mR!D X
0}6K0n?D6kX
^"sV#`.u([   选中D4单元格,输入公式“=IF(A1=12,这个数等于12,这个数不等于12)”,回车后出现“#NAME?”错误(如12),原因是引用文本时没有添加引号。 7F*@.]]S Pv6E_
.XwSo-j
.j(il.l.Ow"Z
[attach]28565[/attach]2O0u g y8p'G6@7v
RDy8\:q&p
} d l,A ur
0wo)vM)H[T

8tfR;s8^7V_W   修改的方法为:对引用的文本添加上引号,特别注意是英文状态下的引号。于是将公式改为“=IF(A1=12,"这个数等于12","这个数不等于12")”(如图13)。
5K/o)xF rE V5J7M/B$~{t1M
[attach]28566[/attach]

LOK 发表于 2008-6-2 11:56

四、 #NUM!  错误
t d'}#Q.~S9g9C
'V'u~KYk   常见原因:如果公式返回的错误值为“#NUM!”,这常常是因为如下几种原因:当公式需要数字型参数时,我们却给了它一个非数字型参数;给了公式一个无效的参数;公式返回的值太大或者太小。
bY9s$sA4}&M .cms,umwF4_/kq
  处理方法:根据公式的具体情况,逐一分析可能的原因并修正。 u2S%E+A8eVJ'lM

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

n+Z3]&l;q0k [attach]28567[/attach]

LOK 发表于 2008-6-2 11:58

五、 #VALUE 错误 N[1[Fb6i)OH)V

/T%[$x*a1X CMK   常见原因:如果公式返回的错误值为“#VALUE”,这常常是因为如下几种原因:文本类型的数据参与了数值运算,函数参数的数值类型不正确;函数的参数本应该是单一值,却提供了一个区域作为参数;输入一个数组公式时,忘记按Ctrl+Shift+Enter键。
S`mAZ;Ay0g5k8I{
CN-{!h+m!t ke   处理方法:更正相关的数据类型或参数类型;提供正确的参数;输入数组公式时,记得使用Ctrl+Shift+Enter键确定。 6}1Lx rn ]P

b N hl} R   具体实例:如图15的工作表,A2单元格中的“壹佰”是文本类型的,如果在B2中输入公式“=A2*2”,就把文本参与了数值运算,因此出错。改正方法为把文本改为数值即可。 5`C+GY'G/h;xu

lL^^k1Tk .dc0m2K,]'Cg3UO
[attach]28568[/attach]
B'h"W:c y(X+x5k#gvW2C THI4b z3TDZy

IK&EI P o
vt'J7UV(GQX|
"R4f&uii,` Gr{ b   图16中,在A8输入公式“=SQRT(A5:A7)”,对于函数SQRT,它的参数必须为单一的参数,不能为区域,因此出错。改正方法为修改参数为单一的参数即可。
5_5I\^c5t:cFR 6j;@d3Fxx
8c VP~+s
[attach]28569[/attach];qp"w9CG.B$y%C
l x+C)n#~d;T
/C1Z#oun8g

#[7?-?#c3J
US"ym*B.ez   如图17的工作表,如果要想用数组公式直接求出总价值,可以在E8单元格中输入公式“{=SUM(C3:C7*D3:D7)}”,注意其中的花括号不是手工输入的,而是当输入完成后按下Ctrl+Shift+Enter键后,Excel自动添加的。如果输入后直接用Enter键确定,则会出现 “#VALUE”错误。
:l"@\5b+c
/f/FS ?N&KMG(wN
Y[?_i+[%WX)c [attach]28570[/attach]6E u,J6t q^eR6x^

9M!pC8SM
5GRs3Q5B.Ue f`+v#y K~\*u.@op

7B(O:O%D*o v1F`   修改的方法为:选中E8单元格后激活公式栏,按下Ctrl+Shift+Enter键即可,这时可以看到Excel自动添加了花括号(如图18)。 6Rl8yC8j'O

(yI"WXW9WK8R
z:Dx `4t E+E [attach]28571[/attach]

LOK 发表于 2008-6-2 12:00

6、 #NULL! 错误 "K3~;?Ml EO&i A"cl
  导致原因:如果公式返回的错误值为“#NULL!”,这常常是因为使用了不正确的区域运算符或引用的单元格区域的交集为空。
0Z3eQd8z
cy0z)\K   处理方法:改正区域运算符使之正确;更改引用使之相交。 P I?T.Eoj0k;x

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

#j7Qv%pm uhH m s/])ej6^"IH
[attach]28572[/attach]
$n&cR^8o jX'R
Wl.|O:ZJ~:z'q
3y.W/k2UHE x.aM _   改正的方法为:在公式中的两个不连续的区域之间添加逗号,改正后的效果为图24。 y9|2k(x,@)w`

K2x#NJm;r,s
&H{V*Ev2X [attach]28573[/attach]
7D#N3s.Hm2A2W[2i
tJ$S Jcr
8W*S T\r5jz;fB[
)v!O,GH'R   关于Excel公式常见错误的处理方法就介绍到这里。文中选用的实例都是平时出现最多的情况,请大家注意体会。文中图6提到的帮助更正错误的智能标记非常有用,如果利用介绍的方法都还未解决问题时,可以借助它进一步的分析。总之,只要思路正确,耐心仔细,Excel的公式错误最后就会被一一“歼灭”。

页: [1]
   

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.