楼主 传递 |
在EXCEL中,有一种不常见的特殊运算,涉及到的"符号"有四种,分别是:--、*1、^0、&"" 这些"符号",通常在特殊的运算中使用。这些其实不应该称为“符号”。它们都是实实在在的运算,--和*1是算术运算,^0是幂运算,&""则是文本运算。它们的原理都是应用了Excel中的数据类型自动转换(日期、文本形式的数字、货币等在参与算术运算时都将自动转换为数字,而多数类型在参与文本运算时都将自动转换为文本)。 下面,给大家介绍这四种符号的用法。 注意:(红色内容为错误理解) ①--两个减号的用法(减负运算) --可以将文本型数值转换为数值型数字。(-- 符号的作用是将文本转换成为数字) 举例:A1单元格内容为 '8,文本型数值经运算时转换成数值型数字8,第一个"-"(理解成,减)0减8当然是-8 (减八,负八。各人理解),第二个"-",将-8前再加一个减。这样可以理解成“减负(减去负八)”最后返回8。 譬如:A1单元格内容为 '-8 注意,此时,A1单元格是文本-8,而不是数字-8!如果直接使用公式 =IF(A1>7,"√","×") 那么,所得结果为√;这是错误的结果,并不是“EXCEL自动将文本8变成了8”,而是在不等式中文本永远大于数字。事实上在EXCEL不等式中,True>False>文本>数经过运算,就得出√了。 要想正确的对A1单元格进行运算,我们就得使用--符号,将A1单元格的文本转换成为数字,正确的公式应该如下: =IF(--A1>7,"√","×") 结果应该为×。 =IF(A1>7,"√","×") 这种判断如果单纯是为了验证是否文本,可以利用istext函数或者isnumber函数。 ^0 符号的作用是将数字转换成为1,^0通常用于有数组参与运算的公式,从而得到一个数组元素全为1的数组。 比如,E3单元格的值的内容是数字6,那么,想在F3单元格中,将E3的内容变成1,那么,公式函数如下:结果就为1了=E3^0 结果就等于1了乘幂^运算(不一定是^0,相反,文本数字0^0之后不会得到1,而是得到#NUM!错误) ③*1符号的用法 *1 符号的作用是将文本转换成为数字 比如,A9单元格等于 '-6 注意,A9是文本,不是数字。如果我们直接使用公式: =IF(A9>5,"√","×") 那么,结果就等于√,这样,明明是负6的,怎么可能大于5,应该输出×的,结果却输出√了。 因此,在这种情况下,我们需要使用 *1 符号,正确的将A9单元格转换成为数字。如下公式就是正确的公式了:=IF((A9*1)>5,"√","×") 根据运算顺序可以(A9*1)不加()直接 =IF((A9*1)>5,"√","×") 结果等于× ④&""符号的用法 &""某些情况下可用在数组公式中修正显示值。(&""符号的作用是空格显示空) &""符号的作用是空格显示"空"(在VBA中则该叫Range对象),&""通常用在返回“引用”的公式后面,使得引用空单元格时不返回数字0,而返回空字符串。 除了--、*1外,还有+0、-0、/1和VALUE()函数转换,这是公式方式解决的几种情况。此外,文本型数字在以下几种情况也会被直接视为数值参与运算: 1.%百分比,比如=right(A1)% 2.一些函数会直接视数字为数值,例如COUNTIF、MOD等。 3.一些函数对独立的文本数字参数,也会视为数值,例如=SUM("3",3)、=MAX("3",2)等。 |
2楼 wjc2090742 |
汗,错了不少啊。从头开始。 1、--将文本数字转为数值型数字的方法,该算是一种四则运算法,实际上--A1是0-(-A1),通常叫做减负运算。不能把--当成是一个符号。当然,如果不影响楼主写公式以及对公式理解,各人有各人的记忆方法,也就算了。 2、Excel没有把文本-8变成8的,按这个逻辑的话,A1中如果是-1,那么结果就应该是×了。楼主可以试试。本分点中,演示的公式,之所有得到这个结果,是因为文本>数值。参考下帖 逻辑值和数值及文本之间有什么样的关系 http://www.exceltip.net/thread-1152-1-1.html |
3楼 lrlxxqxa |
有些地方不太准确。“不常见的特殊运算”这种表达不太合适。 个人建议,少使用**是**这种句式,因为这种表达太绝对了。比如“-- 符号的作用是将文本转换成为数字。”换成“--可以将文本型数值转换为数值型数字”更准确些。 ^0可用于产生元素全是1的数组 &""符号的作用是空格显示空,也容易使人误解,&”“某些情况下可用在数组公式中修正显示值,见附件 |
4楼 wjc2090742 |
细节就不说了。关于“符号”这个说法,我的意见如2楼,这个虽然不同意,倒也可以随楼主高兴。 1、^0是求0次方的意思。按楼主的话,修正过来应该是“^0 符号的作用是将非0的数字转换成为1”。 2、=IF((A9*1)>5,"√","×")是可以写成=IF(A9*1>5,"√","×")的。这个公式不算错,只是显然楼主对运算顺序并不熟悉,建议参考下帖:Excel中的运算符具有怎样的优先级?http://www.exceltip.net/thread-7721-1-1.html 3、空格、空单元格是不一样的,尤其excel中,这两者是真的要分清楚的。“显示空”也很含混。参考下帖: 在Excel中究竟何为“空”?http://www.exceltip.net/thread-1747-1-1.html 其实,即使能写很漂亮的数组公式,也是容易在基础的问题上犯错的。有些理解,对写公式还是很有影响的,还是建议楼主看看参考的帖子。 |
5楼 lrlxxqxa |
=IF(A1>7,"√","×") 这种判断如果单纯是为了验证是否文本,可以利用istext函数或者isnumber函数。 文本转换数值的方法很多,减负,+0,-0,*1,/1,value(),还有利用选择性粘贴和数据→分列。 |
6楼 传递 |
谢谢指出不对地方,再仔细想想了,一次性修改 |
7楼 天南地北 |
SUMIF的第一个参数和第二个参数也不区分的! |
8楼 gouweicao78 |
小胖、锐版指导很好。在文字表述方面,传递兄还需加以注意哦。 转换文本数字为数值的方法,仅1楼就有2种,怎么“就得”用--呢。 其实,错误或片面的理解,是学习过程中很正常的一件事,而且是一种好教材,有比较才更清楚地理解。因此,1楼的内容就不改了,并且收录文库,相信传递兄和更多学习者会更深刻理解。 除了--、*1外,还有+0、-0、/1和VALUE()函数转换,这是公式方式解决的几种情况。此外,文本型数字在以下几种情况也会被直接视为数值参与运算: 1、乘幂^运算(不一定是^0,相反,文本数字0^0之后不会得到1,而是得到#NUM!错误) 2、%百分比,比如=right(A1)% 3、一些函数会直接视数字为数值,例如COUNTIF、MOD等。 4、一些函数对独立的文本数字参数,也会视为数值,例如=SUM("3",3)、=MAX("3",2)等。 |
9楼 poiuyman5 |
长知识了 |
10楼 keven |
长知识了1谢谢! |