粉丝2004获赞7421

派三人函数默认返回难的原因是为了确保函数始终有返回值。在派三人中,如果函数没有显示的指定返回值,则函数默认返回难。 这样设计的原因是为了避免潜在的错误或不确定性。如果函数没有返回值,那么在调用该函数后,可能会导致后续的代码出现错误或逻辑混乱。通过默认返回呢?可以确保函数总是有一个返回值,即使没有显示指定。 此外,那人在拍份中被视为一个特殊的对象,表示空值或缺失值。他可以用于判断函数是否有返回值,或者用做函数的占位符。 在函数中,你可以根据具体需求使用条件语句来判断返回那的情况,并进行相的处理。需要注意的是,如果你希望函数返回其他特定的值,你可以使用 return 语句显示的指定返回值。例如,可以使用 return 语句返回一个具体的数值是否串获其他对象。

有同学问了这样的问题,说他在用上面一幅 s 函数进行多条件求和的时候,发现返回错误值,而平时呢,自己用的时候呢,就没有什么错误值,就直接算出结果了啊,这个呢,不知道什么原因,莫名其妙的就算不出结果,那我们可以看看他的公式怎么写的, 就是说在这个数据范围里面呢,第一场数呢,是选择了这个求和区域,那就是工资,这一溜没毛病。 第二三说的话,是选择了条件区一,也就是部门所在列啊,是 a 列这个这个地方,对吧?然后呢,选择这个啊, f 二啊,就是客户部没问题。 然后呢,这个后面第四个呢,他是选择了区域二啊,就是条件区域二,那么这个时候你会发现他跟别的不一样, 有同学说这玩意有什么不一样的,对吧?不是选了这个数据范围吗?没有问题啊,选了数据范围啊, 那这个里面他问题就出在什么呢?函数不一致,这个上面一幅 x 函数,他有个特性,就是说是这个啊,你所有条件啊,就是条件一,条件二所在的区域必须跟求和区域函数保持一致, 就从你看这个呢,是从 d 二框选到 d 二十二,那么其他你写框选条件的时候,也必须是从对应的什么这个 a 二框到 a 二十二,然后你这个 c 列的话,这个条件区域其实要从 c 二框到 c 二十二, 那么他在里面出现的错误是什么呢?就是说是多框了一行,他不是四月二十二,而是什么二十二,多了一行 啊,下面多宽一行,这样呢就会导致啊,条件区域跟求和区域啊,行数不一致,行数不一致的话就会返回错误值, 因此呢,我们找到原因以后就把这行数改成一致的,就别人都是到二十号结束啊,都是二开头二十号结束,那这个时候你这个也得二十号结束,而就说上面平齐看到没,从都是从第二个单元格开始框选, 最后呢,都是从二十二单元格结束,那这样呢,你按确定他就可以算出结果来, ok, 这里面一定要注意啊,就行数必须保持一致,还有的同学会这么狂啊,在这个参数这么狂呢, 让我们把这个窗户删了啊,给你示范一下错误的关法,他这么宽,下面的航速是不是一致的?但是呢,上面是 多框了一个性别,跟性别本身没有关系,只是跟这俩字没有关系,只是多框一个格的时候就是多一行数据,他就是啊,这个条件区域跟求和区域不一致,直接就会返回错误值啊,这样的话也会返回错误值,看见没? 所以说你只能什么,就是框的时候你还记住了啊,别人从第二个格框,你这个地方也得从第二个格框啊,一定记住,这样才能穿出结果。 ok, 学会了吗?点个赞哦。


大家好,今天在安装 s w 二零二四的时候,遇见了一个比较麻烦的一个问题啊,就是他提示的就是安装管理程序注册,然后一个英文的后面带一个 d 失败,然后就是 c 盘的这个文件 记啊,就是提示已返回,然后遇见这种问题该怎么处理啊?就是首先我们点确定,然后把这个 页面 l w 这个页面我们直接关掉,关闭完之后我们打开这个 a i o c 一个工具箱, 嗯,打开工具箱我们直接登录一下,登录 一下啊,这个工具箱也是我自己在网上找的啊,他是单独,他是单独收费的。 呃,登录完之后, 登录完之后我们打开这个 s solo works, 然后里面我们有一个错误的修复补丁,然后打打开这个什么三十二补丁,然后然后就是,呃,等等一会啊,他会自动弹出一个补丁成功, 然后我们直接返回到安装包,然后点这个 set up, 安装的时候尽尽量把这个什么进网啊,进网,进网安装,这样会快一点,然后直接点下一步 到这个界面,就是我们选择这个插件啊,我们需要什么插件我们自己选择,然后把这个中文选上,然后我这边就是把这所有的插件我全部给取消了。 接下来就是返回啊,返回了之后我们选择这个安装位置,安装位置都选地盘了啊, 然后我们直接进行安装啊,这个安装大概三十分钟左右啊,嗯, 现在啊,现在终于跑完了,跑完之后我们直接把这个页面我们 破解补丁,嗯,我们直接复制,复制完之后我们打开这个安装位置,我们直接粘贴到。呃,我们直接粘贴到这个位置里面, 粘贴完之后我们直接打开桌面上这个 sw 图标, 呃,这样就是 s w 就可以正常打开了。嗯,好的,今天的视频都分享到这里啊,如果大家需要这个工具的话,可以在评论区留言。 好了,今天的视频的分享这里,如果大家有需要这个工具的话,可以在评论区留言,感谢大家收看。

如果你做 a 型的企业级应用,你可会遇到一个痛苦,就有质询解析。今天提到这个项目呢,就是应对这个问题,叫 python 这个 ai。 这个 ai 的 核心思想就是不要试图去解析 m 的 会言乱语,而是用内容系统去约束它。它构建了一套圣诞节的框架, python 会自动拦截 m 的 输出,如果验证失败,就把错误信息自动发回 m, 找到它,得到正确的格式才返还给你。代码相当于说把不确定性的放在框架内部,而对外暴露的是确定性的排斥对象。 我们来看个 demo, 第一次呢, m 输出的错误类型,团体排序, ai 自动拨回,然后第二次呢, m 修正为整数二十,这就通过了。另外,它也推出了排序个 graph, 它可以让构建有状态多步骤的 agent 像写普通 text 代码一样简单了。 排序 ai 不 仅仅是一个库,它是一个生态,通过 m c p 的 连接工具,通过 agent to agent 来连接其他 agent, 再通过 low file 来监控一切。如果你也在做生产级的 agent 应用的话,可以试一试,我是安迪,教你用 ai 解锁更多自由。

大家好,今天我们来学习一位如果啊盘数查到出现错误值,第三讲,也就是第三参数造成的错误啊,先生们看这里公式写好了,然后呢我要根据姓名查找出一三五电影的他的销量,然后呢我现在这个值已经写好了,然后呢我们先看第一个参数 合的列数不等于匹配列数,那大家注意看我选择的数据源就是这一部分,然后我先查第一个一月份,那一月份呢就是在我们数据源的第二列,所以说我这个地方写的是二,如果我这个地方写上一啊,他就是返回我数据源的第一列,那第一列是什么?就是姓名所在列 啊,这个地方啊,大家都知道啊,也就是大家在数据源一定要从数据源你选择了数据源,而不是这个表的第几列,你选择的是数据源的第几列啊,一月是你选择数据源的 排在第二列,然后三月三月他就在排在这个数据源的第四列啊,然后呢还有第二个参数缓和的列数大于数据源的列数,这个怎么理解呢?就是比如 这里是一共才六列,假如你这里不小心写到了七列,或者你搞不清楚第几列,你就敲到七列,然后这个时候就会出现报错啊,因为你这个列数已经比这个数选这个数据的列数的还要大啊, ab 两个条件啊,这两个错误大家一般都能够直接看出来,然后第三个呢,就是 因为我这个要返回一三五啊,要公式向右拖的时候啊,记住公式要向面右边拖的时候要返回几列,大家应该看出要返回什么二四 六,二四六,要返回第二列、第四列、第六列。那如果说我向右边拖的时候,我不可能拖一个改一个,如果说列数太多了,我不可不可能一个一个去改这个列号,对吧? 这个是我们要借助一个科勒函数啊,科勒函数,我先给大家普及一下,科勒函数参数也很简单啊,我们这里要返回他对应的列数啊,对应的列数,我们这里就直接用 a 一叫他先看一下 a 一这个公式,他返回列数就是 第一列。如果像公式向右边拉的时候,那 b 一啊,就是 b 所在的列啊,就是第二列,然后 c 一呢,就是第三列,也就是说我们可以将这个公式 直接用这个公式向右边拓展的时候,他返回一二三,我们只需要在这个一二三后面怎么,怎么才得到二四六呢?一二三怎么才得到二四六呢?就是分别乘一个二啊,分别乘一个二就是一乘二,二乘二得四,三乘二得六,这样就返回二四六。所以说我们这里公式就怎么改啊? 可乐 a 一,然后这个呢,是返回 a 一所在列, a 一所在列就是 a 列, a 列就是第一列,我们这里呢,返回第一列,我们要乘以一个二,因为我们要返回的是二十六乘以二啊。这个时候啊, 如果说你不知道返回的第一点,我们选中这一部分啊,就是选中这一部分,按 f 九,按 f 九进入公式运算,我们按一下 f 九跑一下啊,返回的是第四列,对不对?就刚才我们说了二四六,我们再测下一下有信心的同学, 然后发现我这里出现了两个顺冲,为什么只查到第一个顺冲?为什么这个顺冲没有查到啊?我们这里先了解一下为,如果俺们函数呢?他默认就是一对一的查到,他只能返回出第一个值,也就是 查到了第一个值他就返回出来了,后面第二个顺冲他查都不查了,他只查了另一个顺冲。那这个时候假如说 我这个时候偏要查幺零四号的顺冲,这个时候你给我查到了幺零七啊?这个时候应该怎么做呢?这个时候我们就要借助一个类似于思维上转变,就是要出现多条件差的,我们要加编号,要加姓名,这两个呢我们都要合到里面去,这个 我们就要把它连成多条件,把它变成单条件来查到。所以说我们要把它这个编号和姓名把它连接起来, 这样构成一个唯一的查找值,查找值构造了数据园里面,我们同样要把它构建一下,然后呢这个时候我们再将这个公式进行改造。怎么改案?首先我查找值要变成什么?要变成这个 a 幺三, 就是幺零四春葱,所以说这个地方要改成 a 幺三,对吧?然后现在我数据范围,数据范围也要改了,数据范围要改成什么?二年这个构造的这个条件要一起选,所以说我们这里要从哪里开始?我们要从 a 幺七开始啊? 从 a 幺七,然后这里要返回第几列啦?现在我同样的查一三五,那一三五的话,我先回测一下一三五,那我们就要从这里看他返回第几列,那这个时候一三五他就是在第几列要返回 第四列、第六列、第八列,对不对?刚才我们给大家返回的是什么?二四六啊?二四六。怎么得到四六八?那直接在每一个参数前面加一个二就可以了,对不对?然后呢?我这里加一个二不就可以了吗? 对吧?啊?这个时候对不对?公式在右边拖一下啊?这个时候就查到了,要你是顺充七十五、六十七、九十九啊。第三个参数,这个非常灵活多变,大家要去多练习一下。好,今天的课程就到这里。

有同学说学了自动化爬虫之后呢,不知道逆向有什么用?好,那么今天的话就来给大家去介绍一下 更多爬虫逆向视频,可点击主页粉丝群自行领取。首先呢像这样的一个问题,我们直接右键运行一下这个基础爬虫的代码,然后呢我们会发现他返回给我们,结果呢是一个四零三的错误, 比如说没办法去成功的去采集到页面的数据信息的时候,我们要检查一下是不是需要去逆向他的某一个建参数,比如说我们当前的这个页面里面呢,就有一个叫做 h s t 的 这一个参数,需要我们去逆向分析好。又或者说呢,我们遇到这样的一个问题,右键运行下这个代码, 然后呢我们会发现它这里的话是有各种各样的编码格式的一个问题,这也是需要我们去逆向分析的。包括我们这里的话,可以去看到我们想要去批量采集数的时候呢,它也是有一个加密参数,像这个 a 账 booms 也是要去我们去逆向分析的, 包括呢我们在这里啊,尤其是运行下这个代码,这里出现了各种各样的这个编码格式的问题,也是需要我们去逆向分析的。好,那么我们再去看一下 第三种情况是什么呢?就是当我们去遇到这样的一个反调式的问题,就我们打不开开发者工具的时候,又或者说呢,我们遇到了这样的一个问题,无限的 bug 反调式的问题的时候,或者说呢,像我们遇到这样的一个混淆这个代码的时候呢,还有呢,像我们的这几个就是 打开这个开发者工具,结果呢?结果呢?我们在这里啊,就跳转到另外的这个界面的时候, about blank, 好 像这一些问题的话,都需要我们去结合上更进阶一点的技术去解决,这也是为什么我们要去学更多进阶的这个这次逆向的一些技术啊, 也就是为了针对这些问题去进行处理。因为很多这个网站呢,他都是做了一个反自动化的处理,或者说呢他的这个加密机制确确实实会比较困难。

前端网页当中这种 ypark 究竟是如何构成的呢?遇到这种网站我们又该如何来做逆向分析呢?今天就带大家来实战难度指数,两颗 新的 ypark 的 一个网站。首先先了解一下 ypark 是 什么? ypark, 其实说实话,目前拼多多其实采用的就是 ypark, ypark 其实说到底啊,它其实就是一个前端的打包器,它就是干嘛呢?它把在我们传输过程当中的一些静态资源,那都把它当做以模块的方式来进行传输,那这就是一个 ypark。 那么上 ypark 的 话,我带大家了解一下。首先可以了解一下基础需要更多爬虫逆向学习视频以及啊海量的爬虫项目员嘛,可以点击我的主页来进入我的抖音粉丝群来进行获取,直接找个网站吧。好吧,我们直接上实战来 ypark, 那 么像 ypark 的 话,目前挺多网站的啊,就是这种纯 ypark 的, 你看五块, 呃,然后这个是那个看准网,看准网是属于多文件 ypark, 呃。财联社也是 ypark 呃。拉钩网也是属于 ypark, 当然拉钩网也可以做成算。然后这里还有一个,呃,一个报价的一个商家,后台商家的商品的一个查询也是 ypark, 呃,其实还有很多,云南省的一个监管的一个平台, 然后还有像这个,这是某一个行司,那我们看这个通谋找货,那么像这个通谋找货的话,在这里我们来看一下,首先它里面会有像商家查询什么的,有很多,我们点个商家查询,然后在上面随便输个编号啊,输个爱,然后,呃,这个是吧?彩金美妆是吧?搜索,然后出现商家的一些商品信息, 对吧?点击下滑还会加载更多,对吧?啊?只是说这个网站有点慢,是吧?他有点慢,好,那么在这里我们直接鼠标右键点击检查,打开它的工具当中,我们尝试重新进行搜索,比如说搜个, 那我们看啊,他这个未登录,是吧?然后我们来重新在这里进行一个搜索,比如说我们搜索一个,呃,繁花啊,都可以来搜索一个繁花。然后当我们进行搜索之后,像在下方会给我们产生接口,首先你看像这种它的数据接口比较多,对不对?你看 还有四个,对吧?幺二三四,对吧?四个,这种四个我们其实可以不用去管它,为什么直接看这个最大的,你看我们直接可以看这个最大的啊,重新清空一下,重新加载一下,我们可以直接看这个最大的接口里面,你看它就会包含我们所需要的这些商品的信息,你看是不是包含在这里? 好,那么在这里我先给大家讲一下,就是刚有同学提到就是 ypark, 首先先给大家讲一个 ypark 的 基础,你看各位,我随便在这里点个代码进去,好吧?我随便点一个,点个这个 你看,大家请看,就是我们一般在做调色过程当中,我们总是会发现,很多时候我们扣代码,扣着扣着我们会发现我们的变量是以正形式生成的,看到没有? o 等于 n, 括号七,对吧? i 等于 n 是 吧?这种就属于 ypark, 对 吧?首先这里你看这个 n 其实是谁啊?这个 n 其实就是在外部在进行使用的加载器, 然后它里面的括号一是什么?括号一,它代表的是模块,对吧?模块因为当前是整数,我也不太清楚它到底是下标还是自创啊,所以你们注意。但如果说它里面是自创,那么它的模块就一定是什么,如果是自创,模块一定就是对象的形式,键值,对, 如果说它里面的模块对吧?为整数,那你就要注意一下了,因为它有可能是下标,也有可能是键值。对,但如果是自创,那么就代表它只有可能是这种对象 啊,所以你们要注意一下,明白吗?这就是其实这种就是我们在外面具备的 ypark 的 一个特征,可以通过这个点来看出来它是个 ypark, 对 吧?那么像在这里我们来做一个加密分析,并且我把它的 ypark 文件给它复制下来,然后给大家详细的讲一下 ypark, 因为 ypark 其实也很重要啊,是一个很重点的知识 来,我们像在这个地方啊,可以直接来进行断点,但是我们发现它上面有 settimeout 和 pos 点 z, 所以 啊,我的堆栈调试方法,我首先优先的会去观察一下,在 pos 点 z 里面有没有构成我们的加密, 是不是由 pos 点 g 来构成我们的加密,所以我们直接点到 excel 表格的前一个堆栈,然后打一个断点,在页面当中直接来进行搜索, 搜索之后我们发现他已经加载,但是他不断点,对吧?好奇怪,他怎么没断点啊?断了好,那么当他断点之后,我们去观察一下啊,你看一下啊,我们去上面看一下,来这个地方打个断点。好,这个地方可不要了,换掉。来,我们来看一下啊,现在加载之后我们去观察,好像没有,你看啊, 他的请求参数里面有个 c 选项表单吗?那我们可以看到当前他的表单是没有生成的啊,那我们多试几个,没有生成,那么没有生成,那么就证明他的生成结构应该有可能是为我们的正常对账来进行构成,那么我们来调试一下他的正常对账, 来把下面这个断点删掉,来页面里面进行切换断点,然后断点之后我们可以看到当前的话是处于,呃,不是,我们的结构 好,当前有 c 选啊,各位看,有 c 选,然后我们向上推 n 点 a 塔,呃,不对,它好像是 e 部里面生成的 e 方法,看一下啊,这个 e 方法,然后这个 e 方法里面会作为一个接收。 e 的 话是一个行餐,是吧?这个行餐 要用的是 send, 然后 send 进行发送,发送,发送了一个 e, 然后这个 e 的 话,我看哪里来了啊? c 头 come out 里面传过来的。呃,那就是它是 e 部,它是我们的 pos 里生成的。 好,那么像在这里我们可以看到啊,那么像在这里的话,我们现在可以把它全部都清掉,清掉之后我们现在重新来调一下啊,来重新来调一下。呃,它这个地方我们直接去到这个 pos 点这里啊,看一下在 pos 点这里,这里有什么特性可以方便我们来使用的。往上推一步来,在这个地方它会有一个比较好的一个点,为什么这个地方呢?因为上面它没有内容,对不对?你看它里面都是空的, 都不好调,所以我们看这个,因为这里我们有很多接口面吗?我们有多接口,所以我们需要来观察里面的这个接口是属于这个, 这是它的接口名称,是 api 哦,然后我们的哦不能读,呃,哦,是吧?是 api 哦。看一下它的后面的参数,这个是 s y s, 我 看一下啊,这个是 pos, 呃,不对,这个接口不是这个地方,我们可以看到,你看这个地方其实是有一个一个路径的一个判断, 看没有,所以说这个地方我们可以做一个条件判断,要当它等于它的时候。好,这个是 n 里面的 u i l n 点 u i。 好, 那么在这里我们做一个条件判断,来点击右击添加一个条件断点,添加一个条件断点, ok, 当我们的 n 点 u i l 能等于它的时候,来点断点执行, 后面的断点不要了,来,我们在页面当中去进行尝试,进行尝试搜索。哎,分点 u i。 哦,这地方怎么不断点?哦?它下面好像直接就产生的只有一个 promise。 稍等一下,各位,我看一下啊,其他接口都没有走的,是直接走的 promise, ok, 呃,那如果说他这个地方直接是走的 promise 的 话,那我们其实更好, 对吧?我们看一下这个 promise, 我 看一下它到底怎么回调的。呃。什么情况?来点击看他当前这个位置,不是我们的 c 选,这个是我们的 e 对 象,在 e 步之前是已经生成的,那么我们再往上推 n 对 象, n 对 象里面的 c 写 n 对 象, n 方法, n 变量, n 变量上面。呃。 n 变量上面有个 s, 然后是由 s 传 s 在 这里, 呃,然后这个地方它告诉我们是 a 点 r s a in trap 处理了一个 o, 处理了一个 e 点 p, 是 吧?你看,各位,你看,其实我们在做分析的时候,各位,你们要注意一下,我们要去进行多次分析,其实这个地方还有个技巧,上面它可以搜路径,其实可以搜得到的, 有没有发现可以搜路径,看到没有可以搜路径。当然了,我刚刚我也不知道,我是看到这个地方的时候我才知道,明白吗?所以这也很有很多技巧都是只有你去做了,你才知道你该怎么用,你不去做,你永远你都不知道它该怎么开始好。那么像在这里,你看我们,首先我,我就不深入了啊,我再去看一下这个 a, 那 么这个 a 的 话,我们往上推 a 的 话看一下在哪里啊? a 变量来找一下, a 变量的话不可能是在它的同级方法里面, 这个 a 变量肯定是跟我们当前这个方法是处于同级的,你们要明白吗?这是一个重要性的问题啊, 我直接快速推了啊,它应该在最上面,它的变量常量的声明一般都是声明在最上面的。呃,当你们搜索也可以啊,直接搜索, 你看 a 在 这里看没有?就在这里,你看我们的这个 a 变量看没有, a 等于我们的 e 括号 f a d f, 是 吧?哦,当然你这个地方是可以搜,对吧? a 等号对吧? a 等号或者搜 v r a 都可以。 你看那么像这种,你看我们就很明确可以看到它是一个 y park, 而且它这个地方这个一是一个外部的 y park 的 一个加载器,它却加载了一个叫做 f a d f 的 一个模块, 看到没有?那么在这里我们进行页面的整体刷新,因为 y park 是 需要刷新页面它才能断点的,如果你直接只使用分页,呃,它是不会断点的啊。注意一下,因为 y park 是 属于资源文件的一个加载,所以需要进行整体全页面刷新。然后我们可以来看,我们可以进入这个方法,你看,当我们进入这个方法之后,我们会发现它里面的格式是这么一个样子的, 这个是为当前的主要的启动文件,也就是它里面的 webpack 文件。我先把代码给你们复制下来看一下,讲一下 新建一个目录,这是 webpack 通用账户。 好,然后我们来新建一个 g s 文件,来, code 一 啊,拿过来。好,我们来看。你看后面这个地方,先为空,你看下面这个地方是空模块啊,模块内容暂时为空。来,我们首先可以把代码键全部折叠啊,全部收起来,我们来看一下 ipad 到底是一个什么东西啊?或者又该怎么办? 首先当前的 ypark, 第一步我们要确定 ypark 一 般视为一个自止型函数,明白吗?如果说我们前面你当然这个地方,你看我如果不带这个叹号,他会报错,报一个 word 错误,是吧?这个 word, 我 们先这个地方我先写一下,哦,等一下告诉你们是干嘛?先声明一下,先基本补个变量给他, 你看, ok, 没问题。那么在这里我们来看,首先我们先看一下 ypark 的 主体部分,它的整个主体部分,第一个部分,你看它首先第一个是一个自止型函数, 自执行函数,自执行函数就是代表我们只需要去运行程序,然后他会自己去进行执行,对不对?然后在后面会带有一个括号,这个括号里面是为我们的行餐,对吧?行餐行餐他所取决的其实也就是我们在后续传入的模块内容,也就是这个发括号,当然他不一定是发括号,也会设置速度, 对吧?你看他会传过来给到一,对吧?他是一个行餐,然后再往下走,再往下走,屁股后面有个花括号,这个花括号里面它会包含很多信息,这个花括号里面其实就是属于当前函数的内容,对不对?一个函数内容,对吧?你看一个函数内容,当前函数内容里面我们只需要去观察的就是加载器就可以了,只要重点找加载器, 打加载器,打加载器,它是为一个方法打它,当然它为一个函数啊,可能为一个方法或一个函数,对吧?这个加载器你可以看一下它,在这个里面,你看它加载器,我们很明显可以看到它有很多特征,你看它里面是不是都是通过 f 点 n、 f 点 o, f 点 r、 f 点 c、 f 什么什么的,都是基于我们的 f 点来进行的, 那么当前的这个 f f 是 不是在这里?你看,那么我们就可以明确的知道,当前的这个 f 的 方法就是为我们当前的加载器内容,它是不是就是加载器?为什么要找加载器呢?因为加载器是为 ypark 的 启动入口, 呃,但是有些同学可能会有过疑问,呃,为什么当前它是为 f? 但是我们在浏览器里面去进执行时候,我们会发现它为 e, 你 要记住我刚一直在讲这个 e 是 什么?是为当前的外部的执行,因为你们会发现这两个方法,他们,他们两个都不在一个文件,他们两个都不在一个文件,看没有? 你要记住一个问题,就是在浏览器里面,不管在任何场景,任何地方,两个文件之间它都不可能。我在另外一个函数里面直接去使用另外一个函数,它里面的内容属性变量都不可能的, 对不对?这是作域规定式的东西,所以我们能够知道它肯定在网页端当中,它肯定也要把它作为一个全卷变量,然后才能进行使用, 所以它叫做外部方法,然后其次。那么再来到 windows 这个地方, windows 是 在这里,这是什么?因为一个在目前的网页端当中啊,一般啊,它可能会有很多存在于多个 ypark 文件,我们叫做多文件 ypark, 所以 它会通过向这种方式来引导来载入一些额外的 ypark 的 一些文件,你可以在页面当中去进行搜索,你看就可以找到的。 你看它有这种多文件 ipad 看没有,这种是属于多文件 ipad 的 引导,然后我们刚刚所看到的这种开头是属于单文件 ipad, 明白吗?一般像这种多文件 ipad, 它自己本身是不具备执行功能的,我给大家讲讲。它自己本身是不具备执行功能的,它里面只能进行一些添加或者载入等操作,它的执行功能都将由单文件 ipad 来作为主体的执行程序,然后由里面的加载器来进行执行 啊,它这么一个结构, ok, 记住,好,那么我们像在下面,我们正常去调它的话,我们一般在里面调,我们可以在里面调,里面调,我们是不是可以直接使用 f 来调它,那,那也就是它的最后面一个部分,一个自字形的括号里面,这个我写在下面这个括号里面,它会有两种格式,一般列表,也就是数值或对象, 对吧?那你们要记住,我们一般在通过加载器来对它进行执行的时候,如果说它为数组,那么我们一般是通过下标的方式,通过下标的方式来进行执行对应的模块,如果是对象,那么我们一般是通过 k 来执行对应的它的一个 value, 也就是对应的方法, 那他是这么一个格式。 ok, 那 么像在这里,同样在加载器里面是一个方法,在加载器的方法当中也会入个参数,这个参数是谁?就是为我们当前的正在需要啊,应该可以理解为就是我们正在需要去调用的模块,他就会传过来 啊,他会传过来啊。为什么要给大家讲这么讲这么细?因为我想告诉各位,因为我们在未来啊,我们会遇到 ipad 抠不完的情况下,很多人都是老是想着全抠,全抠,全抠对不对?但我告诉你,全抠是最蠢的方法,目前在做些生意,向底薪里面全抠,你除了像那种大厂,你没得办法了,一般其他的情况我们基本都不建议各位去全抠, 对吧?都不建议你去做全勾,因为你做全勾,你说实话,你跟你做动画有什么区别?对不对?有什么区别?所以我们像在这里我们需要详细去了解它,那么在这里你看我们现在可以调当前我们是调什么?你看一下我们当前模块,我们当前模块将要调一个叫做 f a d f 的 一个方法,那也是来声明我们的 a 方法对不对? 你看那么当前这个 e 我 们肯定调不了,我们可以在上面使用 win 的 来接收我们的 f, 然后把它作为一个全屏方法来引出, 是不是这样的?那么我们需要在下方的话,我们将使用 word 点 e e 来进行调用,然后在下方去补充里面的模块。首先当前的模块,你看它里面是有很多模块的啊,你看我们可以补一个模块,你看我们可以直接去选择它 来进入这个方法来进入,进入之后直接 ctrl f 搜索,但是它其实不用带引号了,你看这就是它这个方法,但是的话,朋友们这个方法我们这样补了是没有任何问题的啊,但是你看我们去执行它会报错, 呃,报错,你看会报一个点 com 的 一个错误,就是在我们的加载器里面为什么会报这个错误?这个地方这种报错是当前缺少了下一个模块文件, 所以我们当前啊,我们需要来找到它,也就是在我们当前的加载器里面这个报错的位置上一行来打印他当前的下一个要用的模块是谁,他的下一次连贯的模块就是为当中的这个曲子的部分 把它打印当前,你看他缺少了一个六 a 五四,缺少一个六 a 五四啊,你们可能看不到我拿过来一点,是吧?缺少了一个六 a 五四,是吧?六 a 五四,那么当前这个六 a 五四我们当前是没有的,我们就要补,补完之后后面又会缺很多很多,一直推推推推推又是一个很耗时的过程,说实话 没必要呵,没必要这样干。那么我们有没有什么更好的方法,我们能够快速的来把它导出来呢? 可以,实际上现在目前是有很多方法的啊。第一个你可以根据你们自己去编写一些代码段,呃,编写一些代码段就是用来专门进行处理 ypark, 或者你看你可以甚至用 ai 也可以,但你就可以把它格式改成我们的函数,或者你看我们其实可以用 ai, ai 其实会有相对应的一些教程,你看我们可以使用 ai, 然后可以使用 ai, 所以 我们使用 ai 的 话,我们可以在 ai 里面就是直接问他嘛,我可以让他来帮我们,就是。呃,我现在你看,我告诉他我现在在干什么?我现在在呃抠 ps 代码,但是遇到了 ipad, 现在是缺少了很多其他的一些模块文件,但是要怎么做?需要怎么做?可以直接快速把 当前模块调用需要使用到的其他模块都下载出来。 那么像在这里你看 ai 其实会给我们提供很多的一些办法,当然了你可以自己去处理,也可以也很简单的,无非就是说你看它的执行结构,无非就是从它从 a 走到 s, 我 们想知道它从 a 走到 s, 在 执行这个 f、 a、 d、 f 的 时候,它里面载入了什么?我们是可以用变量去接受它,其实也可以 我们接受,你看,首先当前,你看我进入这个一方法,在这个一方法里面,当前它会掉一个 a, 对 不对?那么当前你看它有个 d 取值,这个 d 的 取值是什么?当前的 d 的 取值,取 a 值, d 是 谁?这个 d 是 不是我们的最开始的?呃,你可以理解为这个 d 是 我当前的一个最开始的一个字典,一个对象看到没有?这个对象 是不是一个大对象?那么当前这个大对象它其实上当前这个大对象它里面接收了谁啊? 哎? d 怎么空了?哦? d 刚刚是有值的,但是刚刚我把它置空了,因为我刚刚把它置空了。这个 d 的 话,正常来讲它里面应该要来接受的是我们的,你看这个 e 里面是不是包含了我们很多内容? 是不是?那么我们像在这里我们可以做一个插装嘛,对不对?呃,怎么个插装法?我是不是要去保存 a 后续的所有内容?我可以重新去声明一个 变量,然后其次当前的 d 方法,我们把当前的 d 方法进行置空, 对不对?第一方法置空之后,然后我们在这里,你看我们右键添加一个条件断点,对吧?我们声明老和括号 a 来,呃,老和括号 a, 我 们其实这个地方用 e 可能会更好一点,然后等于 e 括号 a 一个赋值,然后为 force, force 是 不断点意思,然后我们让它走走走,走到下面来,我们试一下这种格式有没有问题?呃,当然可能有问题,因为我们正常哦,好像没什么问题。 呃。里面会有些未定义,我们正常来讲,这个地方我们应该是取一,而而不是取 a, 所以 我们这个条件写错了,我们这个条件语句当中啊,我们应该正常来取的是取一值,而不是取 a 值,因为取 a 值是单人床的那个,我应该是要才从他的这个总模块里面来点取值,对不对?是不是要从总模块里面来去取值? 然后这样的话我们就可以通过条件断点的方式,用这种条件匹配来把当中的这些内容全部给取出来,这这就是多文件看没有。当然 ai 它也给我们调整了一下,呃, ai 的 话,它也告诉我们它可以用一些特殊的导播的方式来给它进行导入,然后再进行使用,也可以 看到没有他会这种给我们进行加载,呃,也是 ok 的。 所以目前方式方法啊有很多种看,没有,有很多种。所以啊,各位同学们,如果你们感兴趣,你们也可以通过像呃,这种除了像我刚刚教的这种多文直接去获取方式吧,你们也可以去一个一个扣也没关系,还有种方法干嘛?就是直接全扣, 什么叫做直接全扣呢?各位请看。来找到端点位置,刷新界面,全扣的意思就是说当前进入这个方法,然后把当前里面的代码全部扣下来,这就是全扣法。 你看我们可以把这整个文件给它全抠,就是把里面所有的 yippo 文件给它全部抠下来,但是这没必要,因为它这个文件你整体抠下来有十几万,很多 整体抠下来有十几万。呃,一般的话我不建议各位这样去做。呃,一般我不建议各位这样去做。好吧,当其除了这种之外,其实目前在网上你们可以去找一下,搜索一下,百度一下 yippo 在 市场还有很多教程啊,有很多技巧, 就是 ypark 有 这种半扣法,然后半扣法也有全扣法,然后你想从其他的,比如说,呃,通过条件断点插桩这种方式来把它所缺少的模块,把它给匹配出来也是 ok 的, 它会有各。

大家好,今天讲 vlog 函数的错误诊断与解决。有时候我们使用 vlog 函数,明明感觉公式写的没有问题,但结果呢却出错, 我们今天这一期呢,就一起来探讨一下正解所在。我们使用 vlog 函数出错的常见的有这几种, 我们绝大多数情况呢,前面这几种都能够慢慢的去摸索,把它搞定,但是遇到后面这种呢,有的就束手无策。我们一个一个来看,如果你查找的值确实在原数据里面找不到,他也会返回 n a。 错误, 这种呢你可以用 if f 函数来屏蔽,但是更多的情况下,像我们这里,我们看着它明明都存在里面,但是返回值呢还是错误。 我们注意看原数据这边呢,它是文本型数据,但是你查询表中它是数值, 他的数据类型不一样呢,你肯定会出错的。解决方案就是我把数值变为文本,这里呢公式再用一个连接符加一对空的双引号, 这样就把它解决了,这是第一种。第二种呢,我们前面看着好像没问题,到后面公式往下拖就出问题了。这就是我们在使用公式的时候, 没有去把这个原数据查询,去把它绝对一用,因为你的公式要往下拖,你往下拖,你不去把它锁住的话,它就会发生相对的位宜,看到这里是 a 四和 b 八, 你这里一个一个往下的话,它是发生未移的,到后面肯定会出错的。所以我们在使用 vlook 盘数的时候,如果你的查询区域是固定的,一定要把它选中,按一下 f 四做绝对引音, 这个时候就正常了。我们再看下面一种 vlook 盘数,它只支持从左往右边查, 像这边呢,对于 vlog 盘数来说,它是属于逆向的,它不支持。那为了解决这种问题,就需要重构数据结构,等于用 if 一 零这种写法呢?一零, 它这个是什么意思呢? if 第一参数是数组的时候,它表示如果这个是非零,它就处执行一次, 这里是零,就执行一次 false, 那 么这里去,我要让他在左边,就是执行去的时候是在这一列,执行 false 的 时候是这一列,最终执行完了,他就把这个数据给重构了,重构之后再把它 作为查询区域, 我这里返回的是第二列, 这样就对了, n a 呢?还有一种错误,我们肉眼可见的是空格,那我要处理呢? substitute 把它的空格,把它去掉嘛? 那经过这一步处理呢?它变成文本值了,变成文本值,我直接在这边就可以去查询了。 vlookup 第二类, 我们接着看第二种,这一种叫做引用错误,我们如果列号大于原数据区域里面,就是查询区域里面的列数的时候,他会出错,看看这里明明只有两列,我列号写成三了, 返回引用错误。另外一种呢,我这边是原本正常的,我原数据这边呢,删掉之后他也会出现这种, 出现这种情况,我们就要看一下原数据有没有被删除。好。下一个错误。 value 错误, value 错误呢?它还是一个值的问题。我们微卢卡函数的列号啊,它必须是大于等于一的正数,你可以取一点一,一点二,它会自动把这个小数舍去取整的,但是呢,你不能小于一,像这里 零点五是吧?小于一它返回值肯定就是错误按钮错误,下面一种 name 错误名称。这种有两种可能,第一种呢,你的函数写错了,像这里看你明明这里是 vlog, 你 少了一个字母 p, 你 把它补上,把它补上就对了。 另外一种呢,我们有的时候在查找的,我们没有去引用,我们要查找的是文本呢,忘记添加双引号了。像这种我要查 a 呢, 没有去添加双引号,他就会系统啊,他会去搜索有没有存在你命名为这个 a 的 一些公式或者引用,如果找不到了,他就返回错误。 下面一种溢出错误,这个公式呢,也没有问题,溢出错误,他是在动态数值之后才出现的这个问题, 他的正解所在就是你的数据会溢出,但是你的下方或者是后后面他没有足够的空间,这个问题其实很好解决。我把它下面的数据选中,按一下点击键, 这里的话,刚才被一个不可见的制服给他占位了,他没法去把它给挤掉。最后一种无法计算。这种错误呢,我们有的时候看到会感觉到莫名其妙,我这个公式明明也没有问题啊,那他为什么会出现这种情况呢? 这个问题的解决方案呢?我们先呢选中这一列,我们会看见他这里数字,他的类型是文本,我要点一下这个数字格式, 把这里呢设置为常规。确定确定之后,我们再进入这个公司编辑栏里面来,会发现他前面多了一个空格,多一个空格也不行,要保证以等号开头, 然后再确定,这个时候你再往下填充就可以了。好,这是我们今天的内容。