[教学]:Excel查询课堂
第一课 二维查询Excel中数据很重要,对数据进行查询的也很多,这里对二维查询进行解说
虽然论坛中已经有下拉菜单、定义名称的介绍,这里再具体示范一下,我的初衷是朋友们如果觉得有用,可以保存起来,进行统一的查询(有点王婆卖瓜的嫌疑哦)
在这里先介绍一下查询进行的思路:Vlookup是根据首列的值进行查询的,它可以找出首列与要匹配的值相同(或最接近)的行,然后根据你指定的列进行返回
Vlookup函数中返回的列号是要你指定的,因此可以用match函数的返回特定值在数列中的位置来动态的帮助你返回Vlookup的列号(第三个参数)
和Vlookup相似的函数有Hlookup,它只是按首行返回而已,其他都一样,因此,这个公式也可以用Hlookup来编的,只是match要换成name来排序了
有兴趣的朋友可以多试试看,只要大体清楚了函数的作用,根据自己的所求,基本上就能有个公式的大体轮廓了,然后就是公式的调试了,渐渐的熟能生巧
由于本人现在上网不方便,所以未能及时解决朋友们的难题,在这里表示抱歉,我会定时写些东西传上来,如果朋友们觉得需要我讲讲哪方面的内容,可以提出来,在下尽量满足(VBA除外,我也不怎么会的) 表格的预览 单元格式的设定 定义名称 数据有效性的设立
这里是"死的"二维的查询,主要是入门
要想进军高级查询,请看下面的帖子 上面的查询是死的,既如果你的表格增加了行或列,你需重新定义名称,然后才能完成查询
肯定有朋友要问了:“那要怎么才能一劳永逸呢?既不管你怎么增加表格的数据,查询都能到达每个数据?”
答案是使用动态地址:根据你的表格的行列计算出定义名称的范围来,这也是我在表格介绍中引用了counta与offset两个函数的目的。
这个定义名称是进行编辑公式了,所以也不能做演示了,朋友们就看看附件中的表格吧,只要你已经学会了上面的定义名称,将公式输入就OK了 由于工作原因,要离开论坛一阵子了,这里再传一个使用动态地址后的结果演示上来 很好,谢谢! 真是不错!!偶又学会一招!!支持!! 我是excel初入门者,有点看不明白耶, 谢谢分享,努力学习中...... 看不清上面的附图,有什么方法解决。急,急,真急死我了,我要的就是动态查询。 excel中能够实现组合查询吗?还请大虾指点! 二位查询确实能省不少力
第二课 三维初步
最初由 liyunfei425 发布看不清上面的附图,有什么方法解决。急,急,真急死我了,我要的就是动态查询。
点击附图,可以另开窗口查看的
你也可以下载附件,看看里面的公式就好了,附图只是结果
三维查询初步
所谓三维查询,是相对于上面的二维来说的。
二维查询中分行、列来查询,三维查询中引进了“立体”的概念,即将工作薄中的工作表引入查询的部分,这样做出来的查询,要得到结果需要进行三个条件的选择:工作表、行标题、列标题。
拿上面的例子来说,如果数据栏按班级分表,如一班、二班、三班……,此时要查询到每个学生的成绩,就需要添加班级的选项。
三维查询的基本就是需要得到工作薄中工作表名称的组,此次我们先了解一下得到工作表名称的方法
首先需要明白几个函数:cell、find及mid,附件中已经详细的解说了其功能与用法。
几个函数的关键是cell函数,当它以filename为信息参数时,返回的是现在表格的绝对地址及工作表名,如:C:\My Documents\Excel\[三维初步.xls]sheet1。注意,工作薄一定要保存,否则返回空字符。这个字符串中已经有我想要的工作表名称了,再用文本函数将我们需要的字段提取出来就行了,于是就用到了mid函数,mid函数是从指定位置从文本串中提取指定长度的字符,由于前面的字符长度是不确定的,指定位置无法用一固定的数值指定,于是我们就运用动态链接里用到的思维方式——用其他的函数算出其位置来,随之就想到了find函数,将它搜索xls后面的"]",这样不管前面的字符串有多长都和我们没关系了,但注意要在find后面+1,因为现在算到的位置是"]"的,而我们需要的是它后面一个位置!最后,就是mid函数的最后一个参数了,它是必须指定的,就将它定为31,因为工作表名的最大字符长度就是31,这样的话,不管这个表的名称是什么,都可以返回了。当然,你取比31大的数字也可以,不过没必要嘛:-)
在每个工作表中输入公式就可以显示其名称了。
利用这几个函数,也可以得到工作薄保存的路径、名称,详见附件中的表格
这一课就上到这里了,同学们,下课!回去试试看,如果这一课有些地方没听懂,肯定是以前的课有缺了,回去好好复习。
…………
…………
PS:这一课讲的还不能用于真正的三维查询,因为还不能将整个工作薄的工作表组合到一起来进行查询,需要做到这一步,还需了解其他功能。这一课就不讲了,没看到标题是“三维初步”吗?