今天教大家用 index 加 match 函数返回多个值,比方说我们想要查找不同部门的获奖情况, 在部门的右侧呢,建立了一个数据有效性,点开下拉菜单呢,可以去选择相对应的部门。 当我选择部门以后呢,下面就会弹出这个部门的获奖的姓名和奖金,这两列的情况该怎么去制作呢?我们先把这些内容呢给他去除掉,点开数据,找到有效性,给他全部清除,点击确定。 接下来呢,删除掉这个内容。第一步呢,建立一个单元格,输入部门以后,在旁边选中空单元格,点击数据当中的有效性,在有效性设置,它允许只为一个序列 来源呢,就输入这些部门的名称,有工程部好,生产部以及运行部。 好名称输完以后呢,在每一个名称分开处呢,用一个英文的逗号给他隔开点确定。 这样的话我们就制作好了一个下拉菜单。好,但是呢,下面这些呢,就需要用一个公式, index 加 mate 函数, index 呢,它是通过定位行列呢,来查找相对应的值。 我们先输入等号,输入 index 函数啊,他总共有四个参数,第一个就是数组,我们要选中姓名这一列呢,我们全部给他选中,这是第一个 好,按一下 f 四呢,给它绝对锁定,添上一个呃呃逗号。好。第二个参数呢,就是要定 定位到它的行,我们做了一个辅助列,为什么?因为它可能有很多个,对不对?用一个 mag 函数去查找到这个行,那 mag 函数的第一个参数呢,是 i 四,也就是说我们要选中的是这个这个单元格,因为我们要查找生产部门对不对? 那这个 i 四呢,也要给它锁定式链接上一个行号,行号的话有一个减号,继续给他链接一个路函数,为了使这个行号从一二三四,我们所以呢给他用一个 a 一好,第一个函数就是查找值, 好输入一个逗号。第二个参数呢就是我们要查找的这个值所在的区域,所以呢我们选择这一块,那这一块呢要给他按一下 f 四以后,下面的所有都是在这里面去查找,对吧?第三个就是查找的方式, 有一个零精确去查找,给他添加两个又括号到的是 index, 但是这个结果里面有可能会有些啊空的,就是说没有这么多内容,所以呢再用一个 if l 呢去嵌套,当查不到的情况下啊,就说当他的结果实施错误的时候呢,我们给他空在这里。 好注意啊,所有的这些符号呢,都必须是英文的状态下的符号,好输了一对直应号,最后呢点回车,我们就查到了生产部,第一个 是王五对不对?那查他的奖金呢,只要给他移过来,那移过来以后呢,公式里面有一些变动的,就是因为我们现在查找的是奖金嘛, 所以在 index 里面这个区域呢,要给他更改为奖金的这个区域,这是这一步。 itf 四,接下来选中这两个以后呢,给他集体直接往下面 拉到很多他,当他找不到的时候呢,就会空在这里。我们看一下生产部呢,总共有这四个人,对不对? 王武,周明,黄桃,诸葛亮,对吧?那我换一个部门,换成工程部的时候呢,就变成了两个人,因为工程部只有两个序号吗?就是张三和李四,你学会了吗?
粉丝16.3万获赞82.5万

让我们认识一下 index 函数,它呢是返回对指定单元格的值,那我们想让它返回数组时,我们点击 f x index 函数确定数组就是我们要 返回的数值范围。行序数就是我们要返回的是第几行, 我们从姓名开始,一二三成了是第三行,所以我们要输入三序列号,列序号我们输入零,因为我们是输出的是行号,所以是 点击确定,这就是输入了一个数组的形式。成了,那我们想让它返回列的话, 那还是点击 f x, 点击 index 函数确定数值,还是我们要返回的数值范围。行序号,因为要返回列,所以行序号输入零。列序号,因为我们返回的列是姓名这一列,我们输入一去系数是一, 这样我们说的就是姓名第一列,假如我们想要让它返回的是第二列成绩的话,怎么办呢?我们可以直接把公式里的列序数改成二即可,我们改一下,把一改成二, 然后点击对号即可,或者是 enter 也可以。返回值就是我们指定 区域里面的第几行,第几列返回的单元格的值,我们点击 f x index 函数确定数。左还是我们返回的区域行序号呀,它是第几行?一,姓名开始一二三四 五六,第六行,它是第二列,区域序号是一,点击确定也是返回值是七十七。

下面我们开始来介绍英带斯和麦曲函数的用法,英带和麦曲函数可以算是一笑中配合比较默契的一对组合了,麦曲函数啊,简直就是为英带词函数所量身定做的。为什么这么说呢?我们先来看一下他们的语法结构吧。 因,但是函数呢,有三个参数,第一个呢就是返回值区域,就是说函数最终得到的结果一定在我们选择的这个区域,它可以是一行,也可以是一列,也可以同时包含行和列,那如果是一行的话, 只要指定的列数就可以,那如果是一列的话,他只要指定行数,那如果是一个包含行列的区域,就要同时指定行数列数了。这样听起来好像有些绕, 我们通过实际的例子就非常清楚了,就比如说我们要确定小龙女,那我们可以怎么写呢?我们在这边直接输入等于 ex 通过列来,所以的话我们就直接选中这个区域。接下来呢,要确定的就是小龙女所在的行数,这个行数呢是一个相对值,就是从我们选中的这个返回值区域从上到下往下数,小龙女是属于第三行, 而不是表格当中的这边的第七行,所以我们这边输入三,就可以缩影出小龙女这个名字。 同样的,如果我们通过行来缩影的话,我们在这边直接输入等于音带选中的是这行,然后 所在的列数是一二三四,所以我们这边输入四,也可以缩影出小龙女这个名字。那如果我们解锁的是整个区域呢?同样的,我们在这边直接输入等于英, 然后选中这整个区域,然后再确定一下他所在的行数吗?一二三第三行,然后呢确定列数,一二三四第四列,所以这样我们也可以说出小龙女这个名字。 在音带死的实际使用中,这些指定的函数啊,指定的列数啊,一般都是由他的好搭档卖去函数来取得的,所以我们赶紧来看一下卖去函数的语法结果吧。卖去函数有三个参数,第一个参数呢就是查找, 第二个就是查找区域,也就是从哪里查找这个查找区域啊,他只能是一行或者一列,他不能是同时包含行列的一整片区域。最后的一个参数就是匹配方式,匹配方式呢,一般有三种, 但是我们最常用的就是他的精确匹配,也就是零。卖起函数呢,最终返回的结果就是一个行号或者列号,这个行号或者是列号也是我们这个查找区域中相对的一个行号和列号。 下面我们来看一下具体的例子,就是如何根据姓名来匹配出他所在的行号或者列号,我们在这边直接输入等于 mate, 然后查找词是小龙女查找的区域是这一列,查找的方式是经 确匹配输入零,我们查找的区域是一列,所以他返回的是一个行号。三一二三第三行吗?同样的,我们在这边直接输入麦区 查找值还是小龙女这个时候呢,查找的区域是这一行也是零。精确匹配,我们查找的是行,所以他返回的是所在的列数,四就是一二三四第四列。 接着呢,我们将两者结合起来看几个具体中的案例,比如说正向查询,我们有左边这样一张表格,然后呢要根据姓名匹配出植物,呃,当然呢,你可以用 welcome, 但是呢,今天我们就要用到 indis 加 max, 一样可以 实现同样的效果。我们在这边输入等于音带,他要查找的是这个植物吗?所以我们的返回直区域就要选中植物这一列, 然后小龙女呢,是究竟位于第几行?这个时候就要请出麦去来确定了。 他的一个查找值就是小龙女在哪里查找呢?就是在这一列当中查找,查找的方式是精确匹配,他就可以查找出小龙女所在这一列中的行号, 然后就刚好是这个英代词里面的一个行号,然后确定就可以得出我们所需要的一个结果了。 从这个例当中我们可以看得出来, endis 加 mate 组合是没有方向性的,所以呢,他也可以轻易的实现这种数 位的逆向查询。我们切换到这个表,就比如说我们要根据他的职务啊匹配出相应的姓名,嗯,如果用 ins 加 mate 组合,我们是这样做的,输入等于 还是阴带,他要查找的姓名就是他放回值所在的区域吗?姓名就是在这里,我们还是把它选起来。呃,接下来他所在的行号啊,还是由 mate 来确定。 麦曲呢,要查找的只是密书吗?所以我们选中密书这个单元格,然后呢,秘书所在的这个列是这一列, 然后是精确匹配,就可以计算出他所在列的一个行号,这个行号对应就是这列当中的行号,所以我们再输出一个括号,就可以得出最终的一个 结果。接下来我们来看一个更加复杂的案例,就是这种多条件查询,而且还是逆向的,那如果用维洛卡函数的话,那真的就是有点为难他了。 但是呢,如果用今天的这个黄金组合的话,那就比较简单了,我们可以这样子做,选中这单元格,然后输入等于 ins, 他最终不是要返回姓名吗?所以返回职区,我们肯定就是选择姓名这一列的,毫无疑问的。接下来呢,呃,这个查找值,查找值 是什么呢?查找值必须有两个条件一起来匹配啊,所以我们将这两个条件用 m 的符号给连接起来,选中这个单元格,然后输入 m 的,再加上这个年龄,这样呢就直接 连成秘书,然后十九,然后去哪里查找呢?这个时候查找的区域也不是说直接植物啊或者年龄啊,他是这样的,他是把这个 植物这一列,然后跟年龄这一列也给连接起来,这个属于数组之间的一个运算啊,实际上他产生的结果就是总经理五十五,副总经理四十八等等,他产生了一个新的数列,这样呢我们就可以在新的数列当中确定他的一个行号, 长号确定完了之后,自然就可以缩影出正确的结果了,所以呢,我们就轻而易举的实现这种一对多匹配的问题, 要实现这种效果呢,其实有很多种方法,我后面呢就隐藏了三个,都是用白色的文字给隐藏起来的。这边呢就是用麦克风三六五的新函数 s 六卡实现的, 这个呢就是用维鲁卡函数的,他是构建出一个虚拟的内存数组,而里面还有涉及到数组的定的,这种运算比较麻烦,也比较难理解,在后面的就是这种卢卡,就是后面我要讲的这种结法,其实这种也是很好理解的。 接下来我们再来讲一个水平和垂直方向匹配的案例,比如说我们有上面这样一张表, 这实际上是一张多维表,包含多种表头了,这一列呢,其实也算是他的表头了,这些时间都是算他的表头了,这个表呢,其实是不规范的一个多维表, 所以呢,他这个匹配起来也稍微有些难度,根据啊时间还有这个工资总额,也就是他的一个类别来确定他最终的一个金额。如果呢,我们用 endex 这样卖去组合,我们是这样做的, 等于音带就是要返回的值吗?肯定就是最终的区域就在这边吗?他可以选择这种具有行和列的整个区域吗?然后呢接着就是要确定这个行号了, 行号肯定就是由这个工资总额所在的这个行号来确定吗?所以我们很熟练的调出卖去。然后查找只是工资总额吗?然后查找的这个列就是这一列吗?精确匹配吗?对吧?这样呢就得出行号。 接着呢我们再来算一下他的列号,列号也是一样的倒立的 max, 然后根据他的时间查找值,是时间查找的一个行,这时间这一列也是精确匹配,这样我们就 就可以得出他所在的一个列号,最终补全括号回车。这个呢,我们还可以借助数据验证做成这种查询表, 这样呢我们就可以随意切换叶粪呐,还有这个类别啊?然后自动生成出这样的一个结果。

大家好,欢迎大家来到加婉零基础入门到精通的一个课程系列。那这节课的话我们来说什么?什么是返回值? 呃,返回值的话,就是方法执行完毕以后,它返回给调用者的一个结果,就比如说你去点餐是吧?然后你告诉服务员你要什么菜,是吧?这是参数啊,厨房做菜,这叫方法执行啊,方法的一个执行体, 然后服务员端菜给你啊,这就是啊,返回值,哎,就比如说你这个方法就有两个参数,然后你要返回什么结果啊?这就是他那个返回值,他返回值这个语法就是 锐特,锐特关键字啊,然后你要返回具体的值啊,返回值的类型啊,你返回这个值的类型一定要给你返回,这上面你返回值一定要跟什么跟你返回值类型是一样的啊?必须是一致的, 然后的话,哎,然后吕特的话定义的用于返回结果,然后返回类型的话,方法啊,他可以有返回值,也可以没有返回值啊,他可以返回什么?任任何,只要是你定义变量的时候的类型啊, 可以定义为哪,可以定义哪些类型,那你这个什么你返回的类型就可以有哪些类型啊?啊?未的,未的什么?未的关键字表示什么表示啊?这个方法没有返回值,哎,就执行完之后他不需要返回任何数据啊,就比如说卖方法,对吧?他执行完了不需要返回任何数据啊, 然后的话,嗯,基本类型的返回字啊,基本数据类型,哎,就比如说定义两个字和对吧啊这些啊,比如返回小数,返回部分类型啊,然后返回字母串类型啊,都是可以的然后的话引用数据类型也是可以的啊, 然后的话返回啊,时序的,拼接的,然后返回宿主啊,都是可以的你返回任何数据类型都是可以,然后返回对象也是可以的,你创建一个对象,对吧?然后你创建一个对象,你把数据传进去,哎,我把对象给你返回回来啊,都是可以的。 然后的话雷特关键字的话,他有什么?他有两种方法,第一个就是,哎,他返回一个值, 就说我处理完了,我给你返回一个结果,还有种结果就是什么提前结束方法啊?提前结束方法 就说提前结束方法后面的代码不再执行了啊,不再执行了,就说我这个逻辑,我知道你这个逻辑有问题啊,但是呢,我不喜我这个我就我就不再往下走了,没有意义了啊,没有意义了。 然后的话我就提前给你结束这个方法啊,然后的话你可以有多个滤套啊,如果说你有返回值的话,有多个滤套啊,多个滤套他就会,哎,你某个条件满足,哎,我就直接给你返回去,对吧? 然后返回回去,但是呢,他一如果说,但是呢,他一定,比如说你有返回值的情况下,你不管哪种情况,你一定要有一个滤套回去,就比如说你这, 你这有两个条件,对吧?然后呢,你这有两个旅团,但是你这个旅团就不能省略掉,不然他会不能省略他,不然会报错,因为有可能。什么有可能?你这个地方 啊,条件不满足,他没进去,然后这个地方条件也没满足,也没进去,那是不是就没有返回的这个方法,那人家掉的时候他到底返回啥玩意呢?他不知道啊,所以说一定要有返回值啊,不管哪种情况啊,必须要有一个返回值返回给人家返回回去, 然后的话,对,你看下面不是也说到了吗?就所有的分值你都必须要返回一个返回值回去啊,如果说你不返回值,那这种情况就是你这两个地方,哎,都执行完了,对吧?然后那你就可以下面如果说你不定返回值的话,那你就得抛异常什么的啊, 然后的话返回值这块就给大家先说到这里啊, 然后返回直接就只就只需要记住两个关键的一个用法啊,一个是干嘛,一个是用于返回数据,对吧? 一个是干嘛,一个是用来提前结束代码啊。还有一个就是,呃,你不管怎么什么情况啊,你都要给,只要是你定义的返回值,你都要都要干嘛? 都要把这个值都给他返回回去啊?然后他返回的数据类型的话啊,就跟你定义变量一样的,你定义变量是可以有哪些类型,那你这个返回值就可以有哪些类型,然后的话他这个返回值的, 嗯,数据类型的话啊,你返回的值一定要跟你方法上定义的那个返回值的类型一致啊,然后这里的话就给大家先讲到这里啊。

我们再讲一个 index 加 max 函数的经典用法,和 max 或者是命函数组合查找最大值或者是最小值。比如说我们要查找每一个科目的最高分和最低分分别是哪位学生,先查最高分, 输入等于 index 查找区域。因为我们返回的是学生的姓名,所以就选择 d 二到 d 九第二个算数行号, 先输入 max 函数,查找值就是语文的最高分,这里是用 max 函数选择 e 二到 e 九查找区域,还是从语文的分数这一列查找,精确匹配 第三个参数,我们省略点击回车,这里公式要向右拖动,所以第二到第九按 f 四绝对引用, 点击回车向右填充,这样每个科目第一名的人员姓名就查出来了。倒数第一就很简单了,把公式向下复制一份,将公式里面的 max 改为命函数,这样就可以了向右填充。 最后我们来总结一下, index 加 max 函数之所以被称为万能查找的黄金组合,就在于它的公式更灵活,没有版本的限制, 也没有方向的限制,更能完美适配大数据量的计算,它的公式也不复杂,记住一下这三张图就可以了。

拍放,每日学一个小知识,今日学习 index 函数。 index 函数的作用是查找字串可迭代对象中指定元素首次出现的缩影位置,返回整数。 使用语法写法一,字串 s t 二 index sub start end 写法二列表元组 et index item subitem 为查找元素, startend 可选限定查找范围。注意要点是一元素不存在时直接报错,区别于 find 二字符串查找区分大小写三,仅返回首次出现的缩影。下面将十秒案例展示,稍后提问。 提问,拍放,拍放 indexhunt 的 运行结果是多少?知道答案的小伙伴把答案打在评论区。

hello 大家好,未来的加瓦工程师们,欢迎大家来到加瓦零基础入门到精通的一个课程系列, 想要掌握加瓦这个武林秘籍吗?别急,我们一关一关的闯,不管你是大学生转行者还是纯好奇,跟着我点赞关注收藏起来带你打开加瓦新世界的大门。 嗯,上节课的话给大家讲到了这个继承啊继承的话, 嗯我们来看一下我们之前总结的啊,简单回顾一下就是加瓦的所有类啊,它都会继承而不继承个类啊而不继承类它是所有类的一个基础的一个父类,哎就是子类啊,你继承当你继承了一个类之后啊, 然后呢子类就能拥有什么父类和子类的父父类的一个属性和方法啊,然后加码里面只支只支持那个单继承啊,就子类对象在创建对象的时候呢,他会自动调用什么父类的一个无偿构造啊, 然后你如果说子类里面要用书牌去调用的话,哎,你必须写在什么你代码的第一行啊,你那个子类的那个 构造方法第一哈那就是子类在使用父类方法的时候,哎,如果说父类的方法不满足自子类的需求的时候,那么子类是可以自己重写父类的一个方法啊,达到自己想要的一个效果。然后在使用的时候我们要考虑的是,哎使是使用继承呢 还是使用组合来完成啊,然后组合的话都是他就相当于把呃一个对象啊作为属性组合啊,放到自己当前内的这个对象内里面啊, 然后呢通过这个对象啊调用这个方法啊继承呢是直接通过什么继承父类的一个方法啊?通过书牌关键字来调用的,然后 z 和书牌关键字的作用啊,大家也一定要了解清楚啊, this 的 话就表示当前对象啊的一个引用,书牌就表示什么父类对象的一个引用,就比如说你子类和父类都有同一个方法,对吧?那你什么时候? 那你如果说你用 this 点当前这个这个方法的话,那你就调的是当前类的方法啊,如果说你这个使用的是书牌点方法的话,调这个方法的话,那你就是调用什么父类的方法啊, 然后的话,这节课的话我们来看一下啊,着重讲一下啊。重写这块之前也有提到过一点,但是这节课的话,我们着重来重 重点讲一下什么这个方法的一个重写啊,这节课的话我们要了解什么理解啊?重写的一个核心概念啊,一个叫运行时多态啊,那就是掌握方法重写的规则啊,和 override 的 注解, 然后的话区分方法重载和方法重写的个区别啊,这个面试的时候也会问到啊,就是说他会问你什么方法重写和方法重载有啥区别啊? 然后的话运用什么?运用方法重写和实现多肽的一个功能扩展啊,就是啊,要掌握这些东西,然后我们需要掌握的知识点,我们来看一下方法重写啊,方法重写啊,就是子类重新定义父类已经有的方法啊,就说你父类写了这方法,哎,我子类再来重新写, 然后达到我自己想要的效果嘛。动态绑定就是运行时啊,决定调用哪个方法,哪个重写方法啊?他是运行时,他多肽的基础是什么?重写实现多肽的一个关键机制啊。 签名是什么?就是说方法名加参数列表啊,构成这个方法重写啊,他的一个重写规则是什么就什么方法名方法名一样,对吧?参数列表不同,对吧?那他这个就构成了一个重写啊, 大家看一下,他的一个规则,就是方法名必须相同,对吧?参数列表必须相同,对吧?返回值必须相同,或者是子类啊,类型啊,就是说权限访问啊,就说他不能比父类更严格啊。就是说 啊,你不说你父类用的是呃帕布雷克,你子类用普二 t 的 的话就不行啊。 然后你抛出的异常啊,抛异常就说你抛出的异常不能是更宽泛的异常之类啊,然后这个异常后面会给大家说的,然后 static 或者 find 关键字修饰的方法啊,它是不能被重写的啊, 然后我们来看一下关键字的话,就 overwrite 和出牌嘛,那核心语法就是什么?赋类的一个返回类型, 方法名,参数列表,父类这个实现,对吧?他子类加上这个注解对吧?你不加也行,但是加上的话 更加啊,让人一眼就知道你的方法是重写过来的啊。返回子类型,方法名,参数列表,然后子类可以选择重新实现啊,他也可以。什么调用父类版本的速派方法啊,然后再实现,再再干嘛 在自己在实现这功能啊,来调用父类的一个版本,然后斜斜变返回类型啊,就比如说啊,什么?就比如说我父类返回的是什么?安利某这个对象,对吧?那我子类也是返回这个, 我就返回这个对象的一个子类嘛,啊?多给一个子类,这个就叫斜变返回类型,就是说,哎,你返回的类型必须是这个类型或者这个类型的一个子类啊。然后我们来看一下一个支付系统, 就比如说我们这设计个支付系统,所有的支付都有支付,都有支付方式嘛?啊?不同的支付方式,时间不同,支付后可能不需要不同的处理,支付毁掉啊。就比如说,哎,你在付款的时候可能会 有很多支付类型,就比如说你选的那个什么支付宝支付、微信支付等,对吧?他有多种渠道的支付,多种支付方式, 那我们在这儿定一个户类支付方式啊,一个什么?一个叫订单 id, 对 吧?一个叫金额,然后呢?基础方法就是说 py, 对 吧?就指执行支付嘛?然后呢? 然后呢?再返回什么?返回这个子类啊?这个子类子类自己重写啊, 就比如说我这提供了一个基础的方法,哎,叫 piy, 对 吧?就是具体支付,但是具体支付的逻辑呢?因为你每个支付类型,比如微信支付宝支付、微信支付,或者说支付宝支付,他实际逻辑不一样啊。那这个是用支付方式呢?他干嘛他有指令去实现啊? 包括支付回调啊,也是有子类去实现,但是不能被重写的方法有哪些呢?就比如说啊, get 我 的 id, 哎,那你这个 id, 这个订单都是一样的呀。你子类你去把我的 id 返回错了,那怎么办?那我不让你重写啊, 包括静态的方法啊,就说让你选择支付方式啊,也不能让你重写啊,然后你看一下子内的微信支付啊,微信支付他会打印什么?微信支付开始啊,然后具体调用什么微信 app 生成支付二维码,然后支付完了之后给你返回退,对吧?然后 父类调用这个 off 特,就是说,哎,微信支付完了之后,他会干嘛?调用啊?发送消息给微信用户啊,他发起退款啊,这个是子类持有的一个什么特有的一个方法啊?然后我们看支付宝也是一样的啊, 那不总写 off 特,是用父类的默认实现啊。来看一下银行卡支付, 它是也是一样的啊,也是一样的,它重写这两个方法,重写,重写想要的方法啊, 啊,这里的话就是 mask card, 然后就是说给这个银行卡托米嘛,就是说不把完整的银行卡显示出来啊。然后测试类的话啊,我们来看一下这测试类, 这这类的话就是创建一个什么微信支付,对吧?啊?调用支付,调用支付后的一个回调,然后子类特有的方法,对吧?然后啊, 然后的话,这里使用多肽的方式啊,多肽的方式,就比如说你有对象,你可以干嘛?可以直接使用父类的一个类型,对吧?其实,但是这个对象呢,他是指向的是子类的这个对象,这就是多肽的一个体现啊, 然后调用,然后翻译啊,然后的话你要看一个东西叫翻译,看左边,如果说多了的话,翻译看左边。什么叫翻译?看左边就是说啊, 左边,其实虽然它是这个类型,对吧?虽然它是这个 parent 这个类型,但是 wechat p i o p i 这个它其实是属于这个对象的啊,所以说这个 p e 它是属于这个对象的,然后呢?但是它翻译的时候呢?它只能干嘛?它只能调用什么 p m t 里面的方法啊?虽然这里面微翘的 p i y 可能干嘛? 可能定义了很多方法啊,但是呢,它因为它类型是拍门特,它调不了,但是具体执行的时候,它这你调 pe 的 时候,它如果说两个类里面拍门特和微叉的 py 这里面它都有两个方法的话, 那他最终会调用什么?会会调用微叉的配这个方法。这个对象里面的方法啊,是这样的,所以说叫翻译看左边,然后运行看右边啊, 然后我们来看一下这个代码,这个叫四杠幺幺,是吧? 四杠幺幺,然后这里啊, 嗯,我们先来把这个类给它挪到代码里面去看一下啊,就比如说我这儿新建一个类嘛,把这个类放进来, 然后这里给它删掉,把这个类拿过来,然后 public, 对 吧?拿过来 这个图纸就放上面去啊啊?一个类里面的话,它可以有多个类啊,但是只能有一个 public 修饰的啊。好,放,放进来, 那我们再把这个支付宝的这个也给它放进来,然后呢?再把 这个测试类给它新建一下, 再来啊,我们来看一下直接使用子类啊,直接使用子类他就会去掉这个子类方法啊,主要是我们看一下打个断点看一下啊, 看一下这个图太这一块啊,你看他直接使用之类,他就执行什么,执行微信的一个支付流程,对吧? p i y 你 看嘛,打印这个基础流程,执行完了之后他又打印什么?微信支付开始啊,微信支付开始 看微信支付开始,微信支付开始啊,我们看一下微信支付开这啊, 然后的话,然后再打印微信用户金额啊,调用 api, 对 吧?然后支付完成发车发通知,对吧?他发送模板消息给用户,然后再发起退款啊,这些方法啊。 嗯, payment 这个这个类的话,哎,他定义了什么基础的支付方法啊? 实际支付的逻辑由子类重写啊,支付后回调啊,子类可以选择重写,也可以调用父类的啊,然后他这个是不能被重写的啊,这个进来的话也是不能被重写。好,我们来看一下这个多态啊,就比如说我们创建了一个什么, 创建这个对象,对吧?你看这个对象,别看他接受的是潘密特这个类型,其实他实际的对象是什么?这个对象实际是什么?微恰特配啊,然后的话,你看下一个也是一样的啊,你看他这个是安利配, 然后这个是银行卡支付啊,这个你看他都是具体的指向了什么?这个对象,实际上这个对象 啊怎么翻译?看左边就是翻译,你要调用哪些方法,能调用哪些方法啊?你要看左边这个对象的一个类型,具体执行看右边啊,你看具体右型类型,是不是右边啊?是不是右边右边的这个对象,具体什么类型啊?具体调用哪个方法?我们来看一下啊。就比如 p 一, 你别看它这个是拍门特,它其实掉的是什么?掉的是微叉 p i y 里面的方法,我们进来看一下,是不是掉的里面的方法啊?我们看一下,往下走,往下走啊, pe 拍门特 我们看一下,为啥它没调用呢?啊?为啥 p i y p i y 这个方法? p i y 方法它钓的是负类的啊,但是具体钓子类的话, 具体钓子类的话,你看它都是走先走负类,然后钓子类的话,我们来看一下它会钓到哪里去啊?它实际钓的是什么?银行卡支付这边的啊? 其实这里也是一样的,它首先它会调这个什么 py, 对 吧?它在这儿调用的时候,它会去调它具体这个对象是哪个对象,对吧?哪个类里面的哪个类属于哪个类,然后再去调那个类里面的那个方法啊,那是这样的, 然后的话,你看它所有的类啊,它都继承着父类,那相当于它们就可以属于是同一个类型啊,然后的话再分再循环便利这些对象。哎,再循环支付,循环什么? 循环?直线支付后的一个逻辑啊。那静态方法不能重写,它只能通过什么?通过 py 这个玩意儿去继承啊? 他可以干嘛?他继承的话,他静态方法也可以被继承啊,静态方法也可以被继承,你看静态方法对吧?然后这里的话,你看也是调用父类的静态方法啊,看一下啊。 嗯,到这里的话, 方法重写就给大家讲完了啊。方法重写就是说什么叫方法重写?就是说你什么时候需要方法重写, 什么时,就是你要考虑什么时候需要方法重写。那我们要考虑第一个是什么?第一个是单父类的 方法功能不能满足子类需求的时候,我们就需要重写父类的方法啊。然后第二个是什么? 这个问题你要考虑一下啊,构成方法重写的关键 因素有哪些啊?有哪些呢?我们说的第一个是第一个是什么?第一个方法名称必须相同,对吧?第二个啊,参数 类型和参数个数个数必须相同啊,就是参数列表嘛, 简单来说的话就是参数列表嘛,列表啊, 函数列表啊,就是我们这里说的啊,看一下啊,返回值啊,包括返回值这些,包括这些重写规则,大家注意看一下啊,回顾一下 啊,第一个就是你要考虑什么时候为什么就重写这个方法啊,然后他重写的规则是什么?你把这两题了解清楚了啊, 包括这个 super 和 zs 关于字啊,包括怎么去继承一个类,这些规则了解清楚了之后,那相当于方法重写这块的相关知识啊,你就了解透彻了啊,然后这节课就到这里, 嗯,上节课的话给大家讲到了这个继承啊,继承的话,嗯,我们来看一下我们之前总结的啊,进来回顾一下, 就是加瓦的所有类啊,他都会继承而不接的个类啊,而不接的类,他是所有类的一个基础的一个类,哎,就是子类啊,你继承当你继承了一个类之后啊, 然后呢,子类就能拥有什么父类和子类的父类的一个属性和方法啊,然后加瓦里面只支只支持那个单继承啊,就子类对象在创建对象的时候呢,他会自动调用什么父类的一个无糖构造啊, 然后你如果说子类里面要用书盘去调用的话,哎,你必须写在什么你代码的第一行啊,你那个子类的那个 构造方法第一行,那就是子类在使用父类方法的时候,哎,如果说父类的方法不满足自子类的需求的时候,那么子类是可以自己重写父类的一个方法啊,达到自己想要的一个效果。然后在使用的时候我们要考虑的是,哎,是是使用继承呢, 还是使用组合来完成啊?然后组合的话都是他就相当于把呃一个对象啊作为属性组合啊,放到自己当前内的这个对象内里面啊, 然后呢通过这个对象啊调用这个方法啊。继承呢?是直接通过什么继承父类的一个方法啊?通过书牌关键字来调用的,然后 z 和书牌关键字的作用啊,大家也一定要了解清楚啊, this 的 话就表示当前对象啊的一个引用,书牌就表示什么父类对象的一个引用,就比如说你子类和父类都有同一个方法,对吧?那你什么时候, 那你如果说你用 this 点当前这个这个方法的话,那你就调的是当前类的方法啊,如果说你这个使用的是书牌点方法的话,调这个方法的话,那你就是调用什么父类的方法啊, 然后的话,这节课的话我们来看一下啊,着重讲一下啊,重写这块之前也有提到过一点,但是这节课的话,我们着重来重 重点讲一下什么这个方法的一个重写啊,这节课的话我们要了解什么理解啊?重写的一个核心概念啊,一个叫运行时多态啊,那就是掌握方法重写的规则啊,和 override 注解, 然后的话区分方法重载和方法重写的一个区别啊,这个面试的时候也会问到啊,就是说他会问你什么方法重写和方法重载有啥区别啊? 然后的话运用什么?运用方法重写和实现多肽的一个功能扩展啊?就是啊,要掌握这些东西,然后我们需要掌握的知识点,我们来看一下方法重写啊,方法重写啊,就是子类重新定义父类已经有的方法啊,就说你父类写了这方法,哎,我子类再来重新写, 然后达到我自己想要的效果嘛。动态绑定就是运行时啊,决定调用哪个方法哪个重写方法啊,他是运行时他多肽的基础是什么?重写实现多肽的一个关键机制啊。 签名是什么?就是说方法名加参数列表啊,构成这个方法重写啊,他的一个重写规则是什么就什么方法名方法名一样,对吧?参数列表不同,对吧?那他这个就构成了一个重写啊, 大家看一下他的一个规则,就是方法名必须相同,对吧?参数列表必须相同,对吧?返回值必须相同,或者是子类啊,类型啊,就是说权限访问啊,就说他不能比父类更严格啊。就是说 啊,你不说你父类用的是呃帕布雷克,你子类用普二 t 的 的话就不行啊, 然后你抛出的异常啊,抛异常就说你抛出的异常不能是更宽泛的异常之类啊,然后这个异常后面会给大家说到,然后 static 或者 find。 关键字修饰的方法啊,它是不能被重写的啊。 好,我们来看一下,关键字的话就 overwrite 和出牌嘛,那核心语法就是什么?赋类的一个返回类型, 方法名,参数列表,父类这个实现,对吧?他子类加上这个注解,对吧?你不加也行,但是加上的话 更加啊,让人一眼就知道你的方法是重写过来的啊。返回子类型,方法名,参数列表,然后子类可以选择重新实现啊,他也可以。什么调用父类版本的素材方法啊?然后再实现,再再干嘛? 在自己在实现这功能啊?来调用父类的一个版本,然后斜斜变返回类型啊,就比如说啊,什么?就比如说我父类返回的是什么?安利某这个对象,对吧?那我子类也是返回这个, 我就返回这个对象的一个子类嘛?啊,多给一个子类,这个就叫斜变返回类型,就是说,哎,你返回的类型必须是这个类型或者这个类型的一个子类啊。然后我们来看一下一个支付系统, 就比如说我们这设计个支付系统,所有的支付都有支付,都有支付方式嘛?啊?不同的支付方式,时间不同,支付后可能不需要不同的处理支付回掉啊,就比如说,哎,你在付款的时候可能会 有很多支付类型,就比如说你选的那个什么支付宝支付、微信支付等,对吧?他有多种渠道的支付,多种支付方式。 那我们在这儿定一个户类支付方式啊,一个什么?一个叫订单 id, 对 吧?一个叫金额,然后呢?基础方法就是说 py, 对 吧?就执执行支付嘛,然后呢? 然后呢?再返回什么?返回这个子类啊?这个子类子类自己重写啊? 就比如说我这提供了一个基础的方法,哎,叫 py, 对 吧?就是具体的支付,但是具体支付的逻辑呢?因为你每个支付类型,比如微信支付宝支付、微信支付,或者说支付宝支付,他实际逻辑不一样啊,那这个支用支付方式呢?他干嘛?他有指令去实现啊, 包括支付回调啊,也是有子类去实现,但是不能被重写的方法有哪些呢?就比如说啊, get 我 的 id, 哎,那你这个 id, 这个订单都是一样的呀,你子类你去把我的 id 返回错了,那怎么办?那我不让你重写啊, 包括静态的方法啊,就说让你选择支付方式啊,也不能让你重写啊,然后你看一下子内的微信支付啊,微信支付他会打印什么?微信支付开始啊,然后具体调用什么?微信 app 生成支付二维码,然后支付完了之后给你返回退,对吧?然后 父类调用这个 off 特,就是说,哎,微信支付完了之后,他会干嘛?调用啊?发送消息给微信用户啊,发起退款啊,这个是子类持有的一个什么特有的一个方法啊,然后我们看支付宝也是一样的啊, 不总写 off 特,是用父类的默认实现啊,来看一下银行卡支付, 它是也是一样的啊,也是一样的,它重写这两个方法,重写,重写想要的方法啊。 啊,这里的话就是 mask card, 然后就是说给这个银行卡托米嘛,就是说不把完整的银行卡显示出来啊,然后测试类的话啊,我们来看一下这测试类, 这这类的话就是创建一个什么微信支付,对吧?啊?调用支付,调用支付后的一个回调,然后子类特有的方法,对吧?然后啊, 然后的话,这里使用多肽的方式啊,多肽的方式,就比如说你有对象,你可以干嘛?可以直接使用父类的一个类型,对吧?其实但是这个对象呢,他是指向的是子类的这个对象啊,子类的一个对象,这就是多肽的一个体现啊, 然后调用,然后变异啊,然后的话你要看一个东西叫变异,看左边,如果说多了的话,变异看左边。什么叫变异?看左边就是说啊, 左边,其实虽然他是这个类型,对吧?虽然他是这个拍卖者这个类型,但是微差的拍 p o p 这个他其实是属于这个对象的啊,所以说这个 p e 他 是属于这个对象的,然后呢,但是他翻译的时候呢?他只能干嘛?他只能调用什么 padment 里面的方法啊?虽然这里面微叉的 piy 可能干嘛?可能定义了很多方法啊,但是呢, 它因为它类型是 padment, 它掉不了,但是具体执行的时候,它这你掉 pe 的 时候,它如果说两个类里面, padment 和微叉的 piy 这里面它都有两个方法的话, 那他最终会调用什么?会会调用微叉的配这个方法,这个对象里面的方法啊,是这样的,所以说叫翻译看左边,然后运行看右边啊, 然后我们来看一下这个代码,这个叫四杠幺幺,是吧? 四杠幺幺,然后这里啊, 嗯,我们先来把这个类给它挪到代码里面去看一下啊,就比如说我这儿新建一个类嘛,把这个类放进来, 然后这里给它删掉,把这个类拿过来,然后 public, 对 吧?拿过来 这个图纸就放上面去啊啊?一个类里面的话,它可以有多个类啊,但是只能有一个 public 修饰的啊?好,放,放进来, 那我们再把这个支付宝的这个也给它放进来,然后呢?再把 这个测试类给它新建一下, 再来啊,我们来看一下直接使用子类啊,直接使用子类他就会去掉这个子类方法啊,主要是我们看一下,打个段领看一下啊, 看一下这个图太这一块啊,你看他直接使用子类,他就执行什么,执行微信的一个支付流程,对吧? py, 你 看嘛,打印这个基础流程直接完了之后,他又打印什么?微信支付开始啊,微信支付开始看微信支付开始, 微信支付开始,我们看一下微信支付开这啊,然后的话,然后再打印微信用户金额啊,调用 api 对 吧?然后支付完成发车发通知,对吧?他发送模板消息给用户,然后再发起退款啊, 这些方法啊。嗯, pam 的 这个这个类的话,哎,它定义了什么 基础的支付方法啊?实际支付的逻辑由子类重写啊,支付后回调啊,子类可以选择重写,也可以调用父类的啊,然后它这个是不能被重写的啊,这个进来的话也是不能被重写。好,我们来看一下这个多态啊,就比如说我们创建了一个什么, 创建这个对象,对吧?你看这个对象,别看他接受的是潘密特这个类型,其实他实际的对象是什么?这个对象实际是什么?微恰特配啊,然后的话,你看下一个也是一样的啊,你看他这个是安利配, 然后这个是银行卡支付啊,这个你看他都是具体的指向了什么?这个对象,实际上这个对象 啊怎么翻译?看左边就是翻译,你要调用哪些方法,能调用哪些方法啊?你要看左边这个对象的一个类型,具体执行看右边啊,你看具体右型类型,是不是右边啊?是不是右边右边的这个对象具体什么类型啊?具体调用哪个方法?我们来看一下啊。就比如 p e, 你别看它这个是拍门特,它其实掉的是什么?掉的是微叉 p i y 里面的方法,我们进来看一下是不是掉的里面的方法啊?我们看一下,往下走,往下走啊。 pe 拍门特, 我们看一下,为啥它没调用呢?啊?为啥 p i y py 这个方法啊? py 方法它钓的是负类的啊,但是具体钓子类的话, 具体钓子类的话,你看它都是走先走负类,然后钓子类的话,我们来看一下它会钓到哪里去啊?它实际钓的是什么?银行卡支付这边的啊, 其实这里也是一样的,它首先它会调这个什么 py, 对 吧?它在这儿调用的时候,它会去调它具体这个对象是哪个对象,对吧?哪个类里面的哪个类属于哪个类,然后再去调那个类里面的那个方法啊,那是这样的, 然后的话,你看它所有的类啊,它都继承着父类,那相当于它们就可以属于是同一个类型啊,然后的话再分再循环便利这些对象。哎,再循环支付,循环什么? 循环?直线支付后的一个逻辑啊?那静态方法不能重写,它只能通过什么?通过 py 这个玩意儿去继承啊? 他可以干嘛?他继承的话,他静态方法也可以被继承啊,静态方法也可以被继承,你看静态方法,对吧?然后这里的话,你看也是调用父类的静态方法啊,看一下啊。 嗯,到这里的话, 方法重写就给大家讲完了啊,方法重写就是说什么叫方法重写?就是说你什么时候需要方法重写, 什么时就是你要考虑什么时候需要方法重写。那我们要考虑第一个是什么?第一个是单父类的 方法功能不能满足子类需求的时候,我们就需要重写父类的方法啊。然后第二个是什么? 这个问题你要考虑一下啊,构成方法重写的关键 因素有哪些啊?有哪些呢?我们说的第一个是第一个是什么?第一个方法名称必须相同,对吧?第二个啊,参数 类型和参数个数个数必须相同啊,就是参数列表嘛, 简单来说的话就是参数列表嘛,列表啊, 函数列表啊,就是我们这里说的啊,看一下啊,返回值啊,包括返回值这些,包括这些重写规则,大家注意看一下啊,回顾一下 啊。第一个就是你要考虑什么时候为什么去重写这个方法啊?然后它重写的规则是什么?你把这两节了解清楚了啊,包括这个书牌和这些关键词啊,包括怎么去。

hello, 大家好,未来的加瓦工程师们,欢迎大家来到加瓦零基础入门到精通的一个课程系列, 想要掌握加瓦这个武林秘籍吗?别急,我们一关一关的闯,不管你是大学生转行者还是纯好奇,跟着我点赞、关注、收藏起来,带你打开加瓦新世界的大门。 上节课的话给大家讲了这个,呃,怎么去创建一个类啊?创建一个类的话你就只需要考虑什么,看一下这个基础的最简形式 啊,然后其他的都是根据这个来慢慢的进行变化的啊。创建一个类的时候你就要考虑你这个类的一个能在哪些地方访问啊? 好,你这个 class 关键字啊,就是用来创建类的,然后你这个类名是什么?然后你类的话肯定有两个很重要的东西啊,一个叫成员变量啊,就是你这个类他有哪些属性,然后这个你这个类应该有哪些方法啊?他要完成哪些功能 啊?你只要考需要只需要考虑到这些啊,然后接下来的话就是这些啊,包括他的类的一些方法啊,然后这节课的话我们重点来讲一下什么,讲一下这个类的一个实力化方法。 磁力化方法之前我们学的都是静态方法啊,通过类名点方法名的方式去调用的,他现在他那个方法是属于类级别的啊,那现在我们要学要继续看的是什么对象的方法叫磁力化方法啊? 磁力化方法他和那个静态方法不一样的是什么?不一样的是他这个需要通过对象点方法名来调用啊,然后呢? 它这个少了这个什么?少了个 static 关键字啊,静态的啊,说明什么?它没有那个关键字的话说明什么?说明它是实体化方法啊,它是属于某个对象的啊, 我们来看一下实体化方法啊,它那个无参构造啊,有返回值啊,无无 参无返回值的方法啊,它和之前学的那个方法搜索和方法这边啊是一样的啊,是一样的,你看 都是一样的,他就是少了什么?少了这个时代利口关键词啊,因为有这个时代利口关键词的话,就表示这个方法是通是类的啊,他是属于类的啊,啊属于类的,然后的话他通过类名点方法名来调用啊, 啊?实际化方法的话,他不加那个那个时代利口关键词啊,就表示这个方法他是属于什么?属于这个对象的啊,他通过对象点方法名来调用啊,这就是他那个调用 他方法的分类的话,哎,就这些啊,一样的啊,就是你创建个方法的时候啊,你要考虑他有没有返回值,对吧?他的参数是什么啊?他权限访问修饰符是什么?你只要考虑这些,只要你考虑到位了啊,不管他有哪几种类型啊,你还是可以随心所欲的去创建啊。 然后的话我们来看一下怎么去实念化这个对象啊,就是六关键字,然后内名点一个括号,然后再跟上一个分号啊,最后返回这个对象的一个引用啊。好,我们来看一下这个 这个啊,你看创建这个对象创建完了之后啊,通过类名点去调的方法啊,他这个是实力方法,如果说你加上这十来个关键字的话,就是他那边就调不了了, 他那边他那边也能调,也能调,但是的话,你看他已经提示你了,他说你这个东西不是什么 不是不是这样去用的啊,然后的话,哎,通过内点调这个方法啊,他其实也能调,但是呢,你这个对象,他每个对象他调这个方法啊,结果都是一样的,但是你这静态方法的话, 你就不能,不能干嘛不能调里面的什么实力方法了啊?你必须大家都是静态的,你才能调用啊, 必须是,所以说,所以说这个静态的方法一定要按照这规范去调用啊,不推荐大家这样去搞。如果他是静态的话啊,静态的话他怎么调用呢? 他应该是通过什么内明点去调用的啊,并不是通过那个啊对象去调用啊,大家一定要注意,然后的话看大家这里,然后的话啊调用都是对象点调用啊,然后运行一下 啊,运行一下,就是大家注意, 其实和之前讲的那个速度和方法那边就一个差别啊,目前来说就一个差别,就是个静态和动态的关系啊,但是呢,你要注意啊,静态的方法里面,实力方法里面 他是他是不能去掉实力方法的啊,比如说 s 他 是不能去调用这个方法的啊,但是呢,但是静态方法干嘛? 但是什么?但是实力方法他干嘛?他是可以干嘛可以去调用你这个静态方法的,你看一下可不可以调用啊? 比如说一逗号二啊,他是可以的啊,所以说大家一定要注意啊,因为他是静态的啊,他因为他这个是静态的,静态的话他就是啊,在哪个地方都可以调用啊, 他是表示属于这个类的,但是你是如果说你是静态方法,你在静态方法里面的话,你要干嘛要去调用这个实力方法的话是调不了的啊,调不了的,为啥?因为他的实力方法他是属于什么? 它只属于这个内内的一个具体的一个实力啊,它并不是这个内属于内的一个方法啊,所以说它没法调用啊,这一点区别一定要注意啊。就是 啊,就是一定要注意是什么静态方法不能直接调用什么要用实力 方法,但是静态,但是实实力方法是可以调用什么静态方法的啊?静态方法的啊, 然后呢?还有一个点是什么?还有一个点就是静态方法是属于什么? 是属于类的啊,他是归属于类的啊,然后实力 方法是归归属于对象的啊, 他必须必须什么通过对象来 对线点方法名称来调用啊,然后静态方法的话,他就可以静态方 方法可以直接通过类名点方法名称来调用的啊,来调用啊,这就是他们的一个区别。 然后的话我们呢再看一下方法的重载啊,方法的重载的话,哎,方法的重载大家只需要考虑一个东西啊,方法的参数列表不同,具体是哪一点呢? 归属的第一点是什么?方法名字一样,对吧?一样 一样,但是他什么参数的类型不同啊,他干嘛?他构成方法重整,对吧?这是第一个,第二个 方法的名字一样啊,什么叫方法的重载?方法的重载?就是,哎,前提第一个条件是什么?方法方法名字相同啊,方法参数的类型不同啊。第一个是方法参数类型不同啊,方法参数类型不同。第二个是什么参数参数的什么 参数的个数不同?不同啊,不同它也会构成什么方法重载啊?你看到没?这个,这个啊, print 这打印个时域,这打印个 int, 对 吧?它没有报错吧?没有报错吧? 嗯,我们看这个类是哪个类? print, 对, 对,对吧,是吧?你看这两个,它没有报错法,即使你有同名的方法,它也没有报错法,因为它构成了什么?构构成了这个方法的重载啊, 因为它参数类型不一样,这儿参数类型不一样,对吧?这儿又干嘛?参数个数又不同。假如说我这儿再来一个什么 s 一, 对吧?但是呢,我就和第一个方法一样啊, 我就和第一个方法一样,这是不是再报错了? 他说这个方法已经存在了啊,所以说,所以说你只需要参数不同啊,他就能构成方法名字一样,他能够存在啊,构成存在。那比如说,我们再来看一个啊,看了一个,嗯, 看一个啥?看一个。再来,再来。总结一个点是什么?我们再来看一下,总结第三点啊,第三个,注意点, 第三一点,方法名字一样啊。这个,这个叫什么?不构成方法重组啊? 方法的重载,它跟那个方法方法的返回值没有任何关系的啊, 大家应该记住这个啊,就比如说我现在,哎,这,我这方法名数要一样,对吧?我这要返回 int, 对 吧?我这有它一个零,你看它是不是还是在报错啊? 它是不是跟返回值没有任何关系?从这个对比上来说,对吧?它跟返回值没有任何关系,对吧?它只跟什么?跟你方法的参数有关系?就比如说我现在改成 float, 对 吧?那干嘛?它就构成重载了,干嘛?因为它参数类型不一样,对吧? 参数类型不一样,好的,那方法的重载这里又给大家回顾了一遍啊。然后的话我们再来看一下方法的一个递归调用。 方法的递归调用啊,简单一个例子啊,什么是方法递归调用啊?简单来说方法递归调用就是说自己调用自己啊,自己调用自己。但是方法递归调用一定要干什么? 需要注意的点是什么?需要控制方法的结束条件,如果不控制的话, 方就会就就就会一直自己调用自己,然后干嘛?直到 堆站溢出啊?知道堆站溢出错误异常啊,他会出现这个问题啊, 哎,就是地规我们有时候是什么时候用呢?就比如说,哎,就比如说我们要地规去辨别这个目录的时候啊,我们就会自己调用自己啊,他其实也是一个循环啊,他其实有些地规他是可以转化为循环的啊。那给在这里给大家举个例子,我们怎么计计算一个阶层? 什么是阶梯啊?我们来看一下什么是阶梯?阶梯的话他就是一个啊,一直自一直慢慢往上沉的一个结果啊。阶梯看阶梯的话就是 再往上走一点, 阶层的话大家理解一下,阶层的话就是这里的阶层的话就是什么?就比如说我要计算五的阶层,对吧?那最终的它等于的就是五 乘四、乘三,再乘二、再乘一啊,这就是什么?这就是五的一个阶层,对吧?最终它的一个结果, 那我要求这个阶层,阶层怎么求呢?如果说我们要低规的话,那我们什么时候结束呢? 我们是不是当 n 小 于等于一的时候,我们这个低规就要结束了,对吧?他第一次 n, n, 如果说 n 第一次我们传五进去,对吧? n 这是五,对吧?五,那他要怎么成呢?那我们自己再调用一下自己,对吧? 那我们五下一个要乘四,那怎么办?那就 n 减一嘛,对吧? n 减一,再下一步,再再下一步,他四过来还是小于等于一的,对吧?那这就是四了,对吧?然后这边再减一,那是不就是三了,对吧? 所以说一直这样自己调用自己,直到什么?直到 n 小 于等于一了,然后雷特一啊,结束,然后他这里再会干嘛?他会再把这个结果慢慢的往回往外面弹,往外面弹弹出去啊, 然后大家可以看一下啊,最终的一个结果是什么?最终的一个结果是 是一百二十,一百二十啊,我们来可以看一下这个加强版的啊,加强版的还可以看到详细步骤的啊。 加强版的其实逻辑都一样啊,只是里面加了一些什么,加了一些日式打印,大家可以更清楚的看到啊。他这个计算过程,就比如说计算五的阶层,对吧?他第一次干嘛?第一次调用三个星等于五,对,呃,这个是吧?等于五, 然后的话,哎,这个地归深都是一,那就是五层,干嘛?五层这个方法穿过来的啊?等于四啊,四啊,五乘四,然后这是第一层已经结束了啊,结束了,那他下一层是什么?下一层是四四乘三,对吧?四乘三,四乘完了啊?下一层应该是三乘二啊,然后再进入下一层 第四层了,然后只让二乘一,对吧?好,然后地规吊用到 f 一 的时候,到一的时候他干嘛?他这地规结束了,结束了他开始要干嘛?开始要慢慢的, 往往往外层弹出去啊,弹出去了,那他接下来就会从下层开始地规返回了, 他就是一乘二,对吧?他就是二乘三啊,就四乘六啊,最最后得到一个结果是什么?二十四,二十四啊,二十四,再乘五啊,最终得到什么?得到一百二十啊,他就是这么一个过程。 那比如说我们学的地规有什么用啊?我们来看一下。呃,计算一下这个一个案例啊,有一个案例,那我们放 f i n d f i l e find file。 就 比如说我们现在有一个要求是什么?一个要求就是说我想知道 这个目录下的文件啊,这个目录下的文件啊,它这个目录,大家不知道什么是目录吗? 目录就说,哎,你这个目录上可能包含了很多层,他有可能是文件,也有可能是目录啊,有可能他目录里面还套了目录啊,目录里面有文件啊,这样的话,我想知道这个 这个目录下面的什么?所有文件,所有文件,对吧?那我现在就想实现这功能,那你怎么实现呢?那你是不是可以利用一个低贵的思想,对吧?就比如说我想知道 s r c 下面的所有文件,那有些时候我们怎么 怎么可能,有些时候怎么会用到这个这个呢?啊?就比如说,哎,你做一些啊,文件资源下载的时候,那你要把这个目录哎给人家展示出去,那你是不要通过地柜便利的方式把所有的文件拿到,把这个文件结构拿到啊,写成一个数据结构, 组成一个合理的数据结构,哎,给前端返回去啊,或者说你要查找这个目录下的文件,这文件里面它包含哪些内容,或者说你要替换, 批量替换啊,文件里面的内容啊,把它替换成某个内容啊,这也要用到第一规去,因为你要知道这个目录下的所有文件吗?那我们怎么来实现这个功能啊?就比如说我们先拎一个 file, 对 吧? 拎一个 file 这个文件大家先不不需要知道什么,不需要知道这些方法,你只需要知道这个思路和逻辑,第一规他有什么用啊?那比如说我把绝对路径传过来,对吧?然后比如说, 比如说我就叫 public public word static。 呃,你看我错,我怎么去写这方法的啊? 比如说我现在要帕布里克,对吧?我我就想把类似就就直接帕布里克到处可以访问,对吧?我的方法我需要定义成静态的,然后不需要返回值,方法名 f 的, 对吧? f 的 f, 对 吧?然后我再拿过来,我需要什么? 我需要一个路径啊,一个路径是类型的什么? p a t h, 对 吧?然后我把这个方法拿过来,对吧? 我应该叫修 file 吧,然后的话,那我这个方法拿过来,我就它这个方法,有个东西叫历史的 file, 历史的 file, 就是 就是说他会拿到什么?拿到你这个目录下的所有文件,所有文件,对吧?那我们是不是现在要开始干嘛? 我们之前是不是学过通过那个增强赋来循环这个文件啊?就比如说你 it er 这个编辑器啊,点敲回车,他会直接给你啊?拿过来,比如说 f, 对 吧?如果说我,我们再来判断一下,如果说 file 他是文件,干嘛?他有个方法啊,判断他是否是文件?我是文件,那干嘛?我们就打印什么?打印 file, 点 get 打他,打印他是什么?打印这个文件的一个绝对路径啊, 比如说我们加上一个什么,找到文件,对吧?找到文件,那如果说 else, 如果说是目录,那怎么办?那我们继续再调用,地归调用,对吧?那我们这个是不休 file so file, 然后把路径传过来,路径是什么?路径?就这个路径啊,对吧?路径是这个路径,然后呢?我们这是不是就把路径拿过来了啊?然后这个文件这个方法是干嘛的啊?这个方法就是什么? 这个就是文件路径,对吧?那就是地归查找 指定目录下的所有文件,对吧?那我们这个方法是不是?那我们这个功能是不是就实现了啊?很简短的一个方法,但是非常实用啊,你看我们来运行一下,看看会不会报错啊?是不是会把这所有文件都拿到? 你看是不是找到文件了?找到文件了,对吧?是不是就拿到了啊?你看是不是就把这个目录下的所有文件都拿出来了,对吧? 包括你,不管是多急的,就比如说我,我甚至可以干嘛?我甚至可以指定一个,随便指定一个路径。我现在不拿 sr 去了,我要拿一个更复杂的路径,我就拿整个项目下的所有的文件,看他会不会拿到啊? 一样的啊,一样的,你看非常的快啊,把所有文件都拿出来了啊。所以说大家这个啊,这个,这个一定要记住啊,一定要记住,我们把这个方法给大家放到这里啊。 啊?然后的话,实力方法的话,呃,就给大家。

大家好,我是五六七,今天分享的内容是这个是函数,这个函数属于查找或引用类的函数,它主要是返回表或区域中的值或值的引用, 然后函数以这个参数有两种形式,竖着形式或引用形式啊,竖着形式通常返回竖直或竖直,竖着引用形式的话,通常返回的是引用。 好,我们看一下这一个函数有哪些参数,这参数的话也只有三个参数,第一个参数,这里第一个参数是必须选的单元格区域或数组场面啊,第二个就是说啊,如果数组只包含了一行或一列这相对应的 参数,这一个行或列可选参数,但如果数组有多行或多列,但只使用了行或列,那函数应该是返回数组中的整行或者列。 企业返回职业为数组函数的一个讲解啊,在这里,但是我们要把它啊怎样记得很清楚的。然后我们这里有个简单的一个啊形式,看了你的 x 区域行列,那我们看一下,我们用了这上面的数据,我们具体的实力去讲解一下。 好,我们还是用这个,看到我这里把这个函数点出来过后,好,我们来操作一下。好,我们选择这里啊, fx 进去选择查找与引用函数,这里看到,我们再去 找一下。引的可闪走在中间的一个位置,在格定的单元格区域中返回特定的行列交叉处单元格的直或引用,那我们看一下,点击确定一下,这里有两个,我们就选择最上面一个参数, 选择完了,我这里提示一个引用好,这个对话框弹出来过后,我们选择一下啊,第一种方式,我们选择这一个列 啊,就选择这一个区域按列,我们选择第一种方式啊,我们选择第几行了?我们假如选择第三行,看一下三,我们数三,我们下面的列我们不去选,因为我们现在选择一组数据,一组数据啊, 好,我们看一下他弹出的是王军军,是不是从这里开始这个区域开始在我们选择第三行,是不是他就刚好这个字就引用了这个字,是不是啊? 我们看一下这个这里的公式,是不是看好这上面是不是很清楚,是不是一样的要返回这个纸也比较清楚?好,我们再来第二种,我们用力的时候,我们怎样去看他 另一个选择,我们还是点着 fx 进去选择查找引用,这里查找引用还是说这里啊?往下拉一点就可以看到了,然后我们选择快速选择一下 啊,我们区域的话,我们看还是要怎么去选的啊,然后我们选择这个区域吧,啊,是这大一点啊,拉大一点啊,我们再看一下这里,然后我们选行的话,假如我们选择第二行啊, 第三行吧,我们还是第三行,那那列的话,我们选择第几列?我们还是第三列,我们看一下这个数字出来他 是怎么一回事?好,第三行,然后这里这个区域的第三行,一二三在这里啊,看到没有?那第三呢?一二三 到这里的这里交叉的一个地方,是不是学会分享笔记,然后,呃,这后面一个括号也是学会分享,是不是刚好就是就把这个纸已经就引用出来了,查到出来了是不是非常的方便,也非常的实用。好,我们看一下这一个纸 啊,具体怎么去写啊?看我们第一个选择什么一个区域,然后我们只选择一个数组那个区域啊?那么只引用了行,对吧?然后我们这里是又选择区域有货啊, 行和列都选择了,他就是一个交叉点,我们这一点比较要一定要去看一下啊。这个函数的话, 你我们先把它掌握好,在后面的一个编程和 vba 里面运用的也比较多。呃,他也比较实用啊。今天的内容我们就分享到这里, 喜欢的小伙伴们欢迎大家关注、评论、转发、收藏,如果对你有点帮助,请帮忙点个赞再走呗!

大家好,这个视频给大家讲一下缺失的第一个正数这道题,然后这道题我们最终需要仿的是个正数 int, 然后我们来给它起名叫 first missing positive。 我 们需要常用的是一个数字 numbers 这道题,我们的速度是这样的,首先我们知道这个缺失的正数,它的范围一定是在一到 n 加一之间的,我们通过两次变例, 第一次变例把数组元素放到它正确的位置上, 然后第二次变例就是找这个元素是不是在正确位置上, 哦,我们就直接返回这个元素的数, 如果都在的话,呃,就返回零下一。 今天我们来选第一趟变量,然后就是 for int i 等于零, i 小 圆 i 加加。 我们只需要对元素在一到 n 加一,一到 n 之间的进行操作,所以是 while numbers i 大 于等于一 and numbers i 小 于等于 n and 它放在它应该的位置上,如果它不在它的位置上,也就是 numbers i 减一非等于 numbers i 这个地方,它逻辑是这样的,因为是我们假如说一个数组一二三, 那它的缩影就是零一二,所以说它的对应关系是这样的,就是 i 加一是等于 numbers i 的, 就是在这里的位置,比如说我们这里判断就是 i, 它对应的是 numbers i 减一, 所以我们这里做的判断就是 numbers i 减一和 i 这一场元素是否相等,然后如果不是的话,我们就将它交换位置, 然后这里我们常记的也是,所以就是 i 和 numbers i 减一, 然后我们第一趟变例做完了,然后下面就第二趟变例, i 等于零, i 小 圆 i 加加,这里没有拿它的长度一定等于 numbers 减 less, 然后 e 负 number si 等于 i 加 e, 我 们就 return i 加 e, 否则我们就呢 return n 加 e。 我 们写下辅助的函数 private white swab numbers in the j into tempo 等于 number sign number sign 等于 numbers j numbers j 等于 tempo。 这道题都做完了。

欢迎收看第十讲,今天这一讲呢,咱们来学习一下 match 跟 index 这两个函数,并且呢把这俩函数结合在一起,类比一下之前学过的 vlog 函数。请大家打开一下今天的演示数据,咱们来看一下咱们出了什么事了,要用到 match 加 index 了, 说现在看的有一组客户信息数据,跟上一次课的数据差不多,稍有区别,那接下来呢,看一下查询表,通过客户 id 找公司名,咱们赶快看看,那这表里有客户 id, 有 公司名,通过左边的找右边的?上次课呢,我们已经用 vlog 处理过了, 那么在查询表里呢,实际上大家可以看到这就是用 vlog 找回的公司名。那接下来我们就直奔主题, 在上次课里,我们发现呢,说这客户 id 能找公司名,但是公司名不能反查客户 id, 我 们的 vlog 只能通过左边的找右边的,不能通过右边找左边, 那万一我的表格都需要我从右找左边,同时这表格结构又不允许我修改,那怎么去写函数呢?接下来咱们来试一下 max 跟 index 这两函数。 首先呢,请大家感觉一下啊,说 vlog 应该是找那个值,在那区域里找,并且取回什么值,这里明显是两个动作,一个是找,一个是取,对吧?那么 mash 跟 index 恰好就是一个是找,一个是取。咱们来试试 这俩函数呢,一个叫 match, 一个叫 index, 先试一下 match, match 负责找说,哎,就这家公司,我先去找找,我先来写一个试试啊吧。哎,不用写, 找一下呗,找什么呢?就找这个公司名逗号在哪找啊?当然是在客户信息表的公司名称这一列里找了,请注意一下,这函数只负责找,不负责取回,所以你要取什么东西跟我没关系,我只管我找的事,只选 b 列就可以了。 说,我在 b 列里找一下,那公司名逗号,那是精确还是近四呢?当然是精确,匹配了括号结束。 这样呢,回串一下,可以得到一个数字,七,哎,七什么意思啊?我们看到这家公司实际上是 b 列当中的第七行,那么迈驰就帮我找到了一个位置,对不对?那接下来看 说,那他对应的客户 id 是 什么呢?那接下来我在客户 id 里也找第七个,不就是他对应的客户 id 吗?同行数据吗?好的,那我来试一下,怎么在 a 列里取回第七个呢?看我的 index 出场了, index 函数负责在一个区域里取回第几个, 他说,你快告诉我在哪取,我在客户 id 的 a 列当中取,取第几个呢?第七个呀,回成倍儿讲。那么现在我又找回了这公司名称对应的客户 id 了。 哦,是先找位置,再用 index 去到客户 id 当中去取,这逻辑关系大家看到了吧?本身是很直接的逻辑关系, 那我来把这俩函数呢写在一起,形成一个公式,等于说现在公司名称是这个,我要取跟他相关的客户 id, 怎么取呢? 我就去取 index 到客户信息当中,取客户 id 当中的某一个。你不要取回客户 id 吗?一定是 a 列当中某一个呀,我先选着 逗号,那取第几个呢?鬼才知道。取第几个怎么办?你去麦吃一下啊。我不知道该取第几个,你去麦吃一下,你去麦吃一下。这公司名称逗号 在客户信息的 b 列当中是第几个?别忘了精确查询,然后你把你找到的位置告诉我,我就去取 a 列的第几个,看到了吗?俩函数嵌套在一起, match 给 index 提供查询的依据, 回撤一下。那现在呢,我们就通过公司名称取回客户 id 了。好了,大家发现了吗?其实这俩函数呢,加在一起也就刚好等于 vlogop, 哎,也不能说刚好等于,应该是刚好比 vlogop 强一点点, vlogop 只能通过左边少右边,但这个 index 跟 match 呢,本身是不分左右的对吗?其实实际上是比 vlogop 好 用一点。 当然这公式写完之后呢,发现其实有点问题,你看啊,我先撤交一下。其实在我们工作当中呢,你会发现,咱们公司里那些表格总是五颜六色的,说这一行是个颜色,这一行没颜色,这一行有颜色没颜色。 所以有时候呢,写公式你要注意点,如果直接向下拖拽的话,就相当于把颜色盖过来了,这隔行着色的效果就没有了。那咱们公司里边总是这样一行红一行黄的吗?是吧,那怎么样保证公式能拉下来,同时又不盖掉格式呢?啊,我先撤销一下, 在这里呢,不要用左键去下拉,一定会盖掉,这样用右键注意啊,指着这位置还是拖拽那位置,中指按住右键不松开,用右键向下拉,拉到最下之后松开一下,选择不带格式填充, 这样的能保证公式拉下来,并且不破坏原表格式。这实际上是我自己写公式用到的最多的一个拉法。好了,可以吧,没问题吧?好,继续。 那这俩函数呢,其实相对来说比较简单,咱们就介绍到这应该也没问题了,接下来我们要看一个实际的例子,这个例子呀,要借用一下咱们这 index 函数,同时呢,这是一家生产型企业里现存那个实际的问题,给大家看一下, 说这家公司里边呢, hr 部门的人呢,就做了这么一个员工信息表,姓名、工号,部门职务,很多信息, 那一共是两百多个人,老板呢看了一眼说,你这数据也太乱了,你这看有什么好看的呀,你这样,你帮我把数据每个人的信息都做成一个报告书。 当时呢,这个 hr 就 问他们那个老板说,什么叫报告书,怎么做呀?那老板人也不错,就说,哎,我先帮你做个模板,你看一下, 这老板呢,就给他做了一个查询表,放大一点说,你看这里边红颜色的信息呢,就是你员工信息表里的各类的信息,我已经用红色标记好了。那第一个人你先把林涛复制过来,这不就林涛的报告书就出来了吗?然后把这表名呢改成叫林涛。 那接下来再做第二份吧,你再把第二个人汪梅的数据抓过来,再变成汪梅一张表,那接下来再改成张三一张表,李四一张表,王五一张表。那就是说呢,一共两百个人,你做两百张用员工名字命名的表,其中的信息都是那个人对应的信息。 好了,听清楚我的意思了吗?那这个问题,如果你真的照着老板的意思做,去做两百张表,那你就死了,咱不提这表多难做啊,你可以想象一下,到年底,老板就盯着这两百多张表,都问你说,哎, 在咱们公司里边,物流部有几个人呢,你说你两百多张表做统计,烦都烦死了,对吗?所以接下来咱们来看一下 这类问题呢,在 excel 当中有标准解决方案,咱们从来不会做很多张一模一样的表格,只会做一个数据表以及一个模板表。我们来看一下 说你要看第一个人汪梅吗?你要看第二人,点这就完了呗,点一下三四五六,这里员工信息会动态变化,只有一个信息表,一个模板表就够了,这个比你做两百多张表呢,第一个做或者方便,第二个管理数据不也方便吗?那所以接下来咱们来试一下 怎么样利用 index 函数来做这么一个动态的员工报告书。那咱们就做一下试试呗,点击一下查询表, 首先第一件事你得做一个滚动条吧,试一下这项工具,在这点击一下开发工具,选择一下插入当中的表单控件,当然我相信呢,有些同学就没有这个开发工具,那怎么加出来呢?看我的, 点击一下文件选项卡,找到选项这一项,点一下在选项当中呢,点击一下自定义功能区, 我们说上面这一块一块的都叫功能区吗?开始功能区,插入功能区,开发工具也是功能区, 那在功能区当中呢?找到右侧说你带这么多功能区选项卡,如果说你的开发工具没有勾的话,就不会显示了,你就把这一项勾上,然后点击一下,确定就可以了,上边就会多开发工具了。好了,现在有了吗?那接下来继续 在开发工具的手提箱工具包里啊,点一下上边那一组工具,下边也有一堆工具,那上边叫表单空间,下边叫 x 叉空间, 有什么区别呢?你可以这么认为,上边是简单的按钮,下边需要用 vba 控制,是复杂的按钮,如果你在学会 vba 以前,你下边的就都不能用了,只能用上边的,简单的,咱们来试一下。 首先呢,在第二行第三个叫滚动条,我先来点一下,来,先点为敬啊,大家别动,点完以后鼠标变成十字,这时候呢,看你竖拉还是横拉,横拉就是水平滚动条,竖拉呢就是垂直滚动条, 这次我拉横的好了,放在这拉出来一条,大家也拉一下试试吧。好,可以了吧,好了之后呢,拖拽这东西的边块,把它放在这个位置,当然有些同学说,哎呀,惨了, 我点了别的位置,现在已经不选择这滚动条了,那我拖不了他了,一点就相当于是更改数值了,这时候怎么办啊? 用右键点击一下滚动条边框又出来了,进入了编辑状态,拉住这块别动,给他移动到这个位置。好了,先放好,点击一下其他位置,我们这滚动条就做好了。好了,大家做好了吗?好了之后你要想一件事, 这滚动条现在是多少啊?这数字就没人知道,你起码要把这数字反馈回来,我才能有个变化,才能看到这个动态吗?来,咱们试一下, 选中这滚动条,右键点一下,选择一下,设置控件格式,其中最重要的一项就是单元格链接, 这一次咱们都做一样的,点击一下 l 一, 我把滚动条链接到 l 一 单元格上,点击一下,确定好了,这次再来点一下滚动条,一点呢,我们就发现这数字跟 l 一 建立了联系,点击滚动条,这数字会加减。 好了,做好了吗?如果你做好了,跟我一起来把数字调整成三,咱们都做成一模一样的。那接下来我们要考虑一下,这人员信息怎么变呢?你这么考虑一下,我先不做啊,大家考虑一下。 说你一点滚动条啊,他就由二变成三变成四,那我能不能这样呢?如果说你是三, 我就抓取第三个人的信息,填写到这表当中,那就是第三个人的数据。 如果你一点滚动条,这不变四了吗?那公式就会自动抓第四个人的数据填写进来, 那如果变成五,那公式会自动重算,他就会抓第五个人进来。不就完成了一个动态报告书的创建了吗?于是核心问题在于,你是五,我就要取员工信息里的第五个人, 在一个区域里取第几个?这用什么函数啊? index, 哎,迎刃而解,快点一下回到查询表,我们来试一下。首先 b 四不要写林涛了,这是固定尺,我来放大一点, delete, 把它删除掉,咱们一起来试一下。等于说,你不是林涛,你是谁呢? index, 我 要取一个人过来,在员工信息表里 a 列取一个姓名过来。 逗号,取第几个呢?点回来点一下 l 一, 你 l 一 里是几,我就取第几个,你是五,我就取第五个,你是六,你点编第六个了吗?我就取第六个。 好,括号结束写好了吗?你是几,我就取第几号。回测一下,逐渐取出来了,接下来工号,工号也不能是固定的呀,等于 index 取员工信息表里的某一个工号。逗号取第几个呢?点回查询表,还取 l e, l e 里是第几个,我就取第几行的工号。回戳一下, 那现在是五,就取到了第五个人的姓名跟第五行的公号呗。那如果点了滚动条会怎么样?大家看一下啊。看我这数据,我一点他会变成六,他不就取第六行了吗?再一点七不就取第七行了吗?这样就完成了一个动态抓取了。那继续啊,咱把这工作完成。 在入场日期当中,等于 i、 n、 d, e、 x, 取一下入职日期 c 列 查询表当中的 l, 一 按 l 一 来回戳一下。是不是所有公式都一样啊?我们在做重复劳动啊。 部门当中等于 index, 在 部门表当中,逗号取第几个呢?取你是几,我就取第几个,管你是几呢。级别等于 index, 在员工信息表当中,级别表里 f 列取查询表了,你是几,我就取第几个职务。 index 取一下,职务的第几个呢?还是 l 一 工资,大家发现了吗?都一样。取工资当中的第几个呢? 查询表选择 l 一 可以了,所有的查询都跟 l 一 绑定,只要 l 一 数字一变,我所有信息都变,往回点点看看点一个,哎哎哎,看没看到都在变,那就可以了。这函数呢,其实也没有什么好错的地方,只剩下几个小细节了,看一下, 说零抓到林涛为什么不清楚?再点一下,当我的数值是一的时候,我的姓名姓名公号,公号什么意思?你看,把表头抓过来了,第一行是表头,所以实际上呢,我们这滚动条就不应该有零和一,他第一个数就应该是二, 从第二行开始吗?所以接下来细节修改一下,我们这人员信息呢,从二滚动到十四,点击一下滚动条,右键点一下,选择一下,设置控件格式,最小值是几二百,从第二行选起,最大值呢?到多少结束啊?十四个, 点击一下确定,那这滚动条呢,就不会超范围了,点一下试试好了,基本上啊,全部做完了。那接下来还有最后一件事,看清楚 这 l 一 呢,你要把它文字字体改成白颜色,让别人看不到,这样好像是显得我们点了滚动条,数据会自动变一样,把中间过程隐藏起来,显得很高大上的样子。 好了,最终啊,我们通过一个滚动条完成了数据的动态抓取,大家看一下他的好处是什么?我们说查询数据呢,比你做两百多张表还要方便,同时到年底的时候,老板就问你了,说,哎,物流部,咱公司物流部有几个人呢?你怎么做?怎么做 哦,要统计,那统计是什么工具?插入后视表确定说,老板你多问我几个好了,我把部门 跟人名统计一下,我分部门统计人名,物流部有四个人名,那就是说物流部有四个人呗,你再问问我别的,那么生产部 p 二线两个人的,这条线一个人的,所以我们还保留了原来很规范的员工信息数据,那这样呢,未来统计也会变得很方便, 大家看一下说你查看数据方便,第二个你统计数据方便,维护数据方便, 这是不是比你做两百张表好多了?所以这个问题呢,就送给大家,让大家看一下啊,这类的问题我们都应该用这类的思路来解决, 绝对不可能说做两百张格式一样的表,这事在咱们 excel 当中就不会出现。好了,今天这问题啊,关于 match 跟 index 这样函数,咱们今天先学到这。

大家好,我是小恩,今天给大家分享 excel 中常用的查找组合 index 加 match 函数,让你十秒就能掌握高级查找技巧。你是不是经常需要在表格中查找指定值,并返回对应位置的值?比如数据查询、报表生成、跨表引用 用福乐克,有局限性,用 index 加 match 函数一键搞定。 index 加 match 函数的核心功能就是在表格中查找指定值,并返回对应位置的值,支持双向查找,比福乐克更灵活, 非常强大。举个例子,如果你要查找产品 b 的 价格,只要输入等于 index b 一 b 三 match b a 一 a 三零,瞬间就能得到结果,结果是两百, 是不是超级方便?再比如,查找产品 c 的 库存,输入等于 index c 一 c 三 match c a 一 a 三零,就能得到产品 c 的 库存,结果是二十, 轻松处理数据。如果你需要横向查找,输入等于 index c 一 c 一 match 价格 a 一 c 一 零, 就能在第一行中查找价格的位置,效率翻倍。不过要注意两个常见坑,第一, return array 和乐克 perry 的 大小必须匹配,否则会返回错误。第二,当使用精确匹配 matchahead 等于零 且查找值不存在时, match 函数会返回错误。掌握了 index 加 match 函数,你的数据查找效率会大大提升,工作学习都能更轻松。觉得有用的话,点赞收藏,分享给更多朋友!评论区告诉我你最想了解的 excel 函数,我们下期见!

大家好,我是小 n, 今天给大家分享 excel 中实用的查找函数 index 函数,让你十秒就能掌握数据提取技巧。你是不是经常需要从表格中提取指定位置的数据,比如查找产品价格、 员工信息、销售数据,手动查找太麻烦,用 index 函数一键搞定。 index 函数的核心功能就是返回表格或数据库中指定位置的值,支持行毫和列毫定位,非常灵活。 举个例子,如果你要查找表格中第二行第一列的值,只要输入等于 index b 一 c 三二一,瞬间就能提取出对应位置的值,结果是两百,是不是超级方便?再比如,提取整行数据,输入等于 index b 一、 c 三二零,就能返回第二行的所有值,结果是两百三十,轻松获取整行信息。如果你需要提取整列数据,输入等于 index b 一、 c 三零二,就能返回第二列的所有值,结果是五零三十二十,效率翻倍。不过要注意两个常见坑,第一行行和列号必须是正整数,不能超过数组范围,否则会返回错误。 第二数组或引用区域必须是有效的,否则会返回错误。掌握了 excel 函数,你的数据提取效率会大大提升,工作学习都能更轻松。觉得有用的话,点赞、收藏,分享给更多朋友!评论区告诉我你最想了解的 excel 函数,我们下期见!