马背上的戈黛娃:查找交叉格 MATCH

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 02:58:49
统计符合两个条件的和=SUMPRODUCT((数据表!$A$2:$A$300=DATE($S$1,$T$1,$B5))*(数据表!$E$2:$E$300=C$3))
某字在单元格内出现的次数=LEN($B$4&$C$4&$D$4&$E$4)-LEN(SUBSTITUTE($B$4&$C$4&$D$4&$E$4,某字,""))
假设:
B1:Z1是人名
A2:A10是年份(要留意格式, 需与公式一致)
B2:Z10是数据
如求 张三 2005的成绩, 公式是:                                      行                       列                 数所区域
=SUMPRODUCT((B1:Z1="张三")*(A2:A10=2005),B2:Z10)

人名及年份, 应是不可重覆
如有重覆, 公式会将合乎条件的成绩求和
即如有 两列 是 张三, 有两行是 2005, 公式便会将合条件的4个成绩求和

上述提供的Sumproduct用法, 是相当特别及较高程度, 如Excel新手, 未必能马上理解。但针对交叉格是最好的公式办法。有几百列或几千行都可轻易解决  =MAX(IF($A$1:$N$22="土豆",ROW(1:22)))查找所在行号
=MAX(IF($A$1:$N$22="土豆",COLUMN(A:N)))查找所在列号
查找含张字所在行MATCH("*"&"张"&"*",J$3:J$6,0)VLOOKUP($A1,$B2:$P10,MATCH("张",$B1:$P1,0),FALSE) 行列交叉查找数据(index与match函数的配合使用)

         vlookup的定向查找数据时给我们带来的很多的方便,但有一点就是比较生硬,比如下列一组数据--学生成绩表,我不想知道也不想动手去查学生有哪科成绩在哪行,我只希望满足两个条件:学生的姓名和科目,我就可以快速的找出这个学生该科目的成绩,也就是说这两条件的行数与列数,通过行列交叉马上得出这个交叉点——也就是我要找的数据。vlookup运作起来就比较麻烦一点,我找到了index与match的结合,很简单地解决这个问题。


        虽然不是很专业,但为了简单明了,简单解释如下:

        =index(搜查数据的范围,数据的行数,数据的列数,0)

                                                                   ==》0可以省略不写,但要保留逗号

        解释如下:通过数据的行数与列数在搜查的范围内交叉就可以得出我们需要的结果。

         数据的范围很容易定,但数据的行数与列数怎么知道呢?这时候请match出来工作了。已经知道了条件,那么通过这个条件确定满足条件的行数与列数。


          我们可以举个例子:比如我要查一个学生叫“李一叶”的“化学”科的成绩,只要在K2输入“李一叶”,l2输入“化学”就可以得出他的成绩“80”


 
查找某字所在单元格行号、列号(数组)行号=MAX((“ABC"=AJ3:AQ10)*ROW(3:10))列号=MAX((“ABC”=AJ3:AQ10)*COLUMN(AJ:AQ))列行号=ADDRESS(MAX(("ABC"=A1:J10)*ROW(1:10)),MAX(("ABC"=A1:J10)*COLUMN(A:J)),4)