EXCEL-INDEX+COUNTIF函数
(2010-06-20 17:16:54)
标签:
excel工具杂谈 |
分类: 软件与数据 |
查找近似值
比如:
1、一个数字:10
2、另外有一组数字:30,50,46,78,30,56
然后想用个函数写:在一组数据里寻找和10相近的一个数字
比如这一组数字30,50……在A1:A10,要找的数字10在B1,数组公式
=INDEX(A:A,MIN(IF(ABS(A1:A10-B1)=MIN(ABS(A1:A10-A1)),ROW(A1:A10))))
或=MAX(IF(ABS(A3:F3-A1)=MIN(ABS(A3:F3-A1)),A3:F3))
或=INDEX($A$1:$A$6,MATCH(MIN(ABS($A$1:$A$6-B1)),ABS($A$1:$A$6-B1),)),按组合键,假如数字在A1-A6,要查找的数字在B1。
EXCEL-INDEX函数
1. INDEX函数的用途是返回列表或数组中的指定值。
={INDEX(A1:F13,SUM(IF((D2:D13=D4)*(F2:F13=F4),ROW(E2:E13))),COLUMN(E2))}
={INDEX(A1:F13,SMALL(IF((D2:D13=D4)*(F2:F13=F4),ROW(E2:E13))),COLUMN(E2))}
公式输入完成后,同时按下CTRL+SHIFT+ENTER,公式会自动出现大括号,表明使用数组函数。 Row行数
=INDEX(A:A,MATCH("66666",B1:B2,0),column(A1))
公式输入后同时按下CTRL+SHIFT+ENTER
Excel舍入函数简介
ABS 返回数字的绝对值。=ABS(-12.55)返回12.55。
ROUND
将数字按四舍五入规则舍入到指定的位数。=ROUND(1.378,1)返回1.4(1位小数);=ROUND(123.56,-1)返回120(最接近10的倍数);=ROUND(123.56,0)返回124(最接近的整数)
ROUNDDOWN 与ROUND相似,但总是向下舍入。去尾法
ROUNDUP 与ROUND相似,但总是向上舍入进1法
TRUNC
将数字截为整数或保留指定位数的小数。=TRUNC(1.55)返回1;=TRUNC(-5.6)返回-5;INT(x)与TRUNC(x)唯一的不同在于参数为值时。TRUNC(x,n)截取数字为保留n位小数。
CEILING
将数字向上舍入为最接近的整数,或最接近的指定基数的培数,两个参数的符号必须相同。=CEILING(1.2555,0.5)返回1.5.
FLOOR 按给定基数向下舍入为最接近的整数,两个参数的符号必须相同。=FLOOR(1.2555,0.5)返回1。
EVEN 将正数向上舍入为最接近的偶数,将负数向下舍入为最接近的偶数。=EVEN(3.25)返回4。
ODD 将正数向上舍入为最接近的奇数,将负数向下舍入为最接近的奇数。=ODD(4.25)返回5。
INT 将数字向下舍入为最接近的整数。=INT(-5.6)返回值-6。对于负数,返回比该数小的最接近的整数。
MROUND 将数字舍入为最接近的倍数。=MROUND(6.89,4)返回8。
COUNTIF函数的16种公式设置
用来计算区域中满足给定条件的单元格的个数
Range 为需要计算其中满足条件的单元格数目的单元格区域。
Criteria 为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为
32、"32"、">32" 或 "apples"。
1、返加包含值12的单元格数量 =COUNTIF(DATA,12)
2、返回包含负值的单元格数量
3、返回不等于0的单元格数量
=COUNTIF(DATA,"<>0")
4、返回大于5的单元格数量=COUNTIF(DATA,">5")
5、返回等于单元格A1中内容的单元格数量=COUNTIF(DATA,A1)
6、返回大于单元格A1中内容的单元格数量=COUNTIF(DATA,“>”&A1)
7、返回包含文本内容的单元格数量=COUNTIF(DATA,“*”)
8、返回包含三个字符内容的单元格数量=COUNITF(DATA,“???”)
9、返回包含单词"GOOD"(不分大小写)内容的单元格数量=COUNTIF(DATA,“GOOD”)
10、返回在文本中任何位置包含单词"GOOD"字符内容的单元格数量=COUNTIF(DATA,“*GOOD*”)
11、返回包含以单词"AB"(不分大小写)开头内容的单元格数量=COUNTIF(DATA,“AB*”)
12、返回包含当前日期的单元格数量=COUNTIF(DATA,TODAY())
13、返回大于平均值的单元格数量=COUNTIF(DATA,">"&AVERAGE(DATA))
14、返回平均值上面超过三个标准误差的值的单元格数量=COUNTIF(DATA,“>"&AVERAGE(DATA)+STDEV(DATA)*3)
15、返回包含值为或-3的单元格数量=COUNTIF(DATA,3)+COUNIF(DATA,-3)
16、返回包含值;逻辑值为TRUE的单元格数量=COUNTIF(DATA,TRUE)
countif函数计算只含三个字符的个数公式?
A列的单元格有1-10,怎么计算出只包含3个字符的单元格个数?
=COUNTIF(A:A,"???")
?是强制占位通配符,一个?占用一个字符位. *表示是任意多数量
FREQUENCY:求区域中数据的频率分布
由于函数 FREQUENCY 返回一个数组,必须以数组公式的形式输入。
语法形式为FREQUENCY(data_array,bins_array)
其中Data_array为一数组或对一组数值的引用,用来计算频率。如果 data_array 中不包含任何数值,函数
FREQUENCY 返回零数组。Bins_array为一数组或对数组区域的引用,设定对 data_array
进行频率计算的分段点。如果 bins_array 中不包含任何数值,函数 FREQUENCY 返回 data_array
元素的数目。
看起来FREQUENCY的用法蛮复杂的,但其用处很大。比如可以计算不同工资段的人员分布,公司员工的年龄分布,学生成绩的分布情况等。这里以具体示例说明其基本的用法。
以计算某公司的员工年龄分布情况为例说明。在工作表里列出了员工的年龄。这些年龄为 28、25、31、21、44、33、22 和
35,并分别输入到单元格 C4:C11。这一列年龄就是 data_array。Bins_array
是另一列用来对年龄分组的区间值。在本例中,bins_array 是指 C13:C16 单元格,分别含有值 25、30、35、和
40。以数组形式输入函数 FREQUENCY,就可以计算出年龄在
25岁以下、26~30岁、31~35岁、36~40岁和40岁以上各区间中的数目。本例中选择了5个垂直相邻的单元格后,即以数组公式输入下面的公式。返回的数组中的元素个数比
bins_array(数组)中的元素个数多 1。第五个数字1表示大于最高间隔 (40) 的数值(44)的个数。函数 FREQUENCY
忽略空白单元格和文本值。
{=FREQUENCY(C4:C11,C13:C16)}等于 {2;2;2;1;1}