2024-08
7

xlookup+超级表实现动态引用

By xrspook @ 11:38:23 归类于: 烂日记

谈Excel,索引肯定是离不开的话题。从经典的lookup到用得很多的vlookup,到index+match,再到vlookup的升级版xlookup,所有的这些都是为了让搜索更方便。xlookup相对vlookup来说的确已经进步了不少,但无论是这些搜索的函数也好,其它按条件汇总的函数也好,总是有一些支持选择列,有一些不支持。之所以有支持和不支持之分,其中一个很重要的原因是支持选择列对写公式的那个人来说很方便,但关键是选择列可能严重影响搜索的性能。感觉上明明很简单的东西却要加载很长一段时间才能出结果,那个加载时间,甚至让你觉得是不可接受的慢,所以在使用这些索引函数的时候,绝大多数的教程都会提醒你数据源得用绝对引用。引用一个确切的范围,即便你把那个范围搞得很宽也行,但是引用一些空白行,又会导致一些意想不到的事情发生,尤其是对某些经典函数来说就会出错。当然,出现这种问题可能是因为我道行不够,如果是高手操作,什么问题都不是问题。

为什么搜索出来的结果可以动态显示,可以显示多行,但是被搜索的内容必须得用绝对引用呢?为什么教程里除了整列选择就没有一些动态确定索引范围的方式呢?隐隐之中我觉得新出现的公式应该可以做到,因为新出的那些高级函数出来的结果都是很动态的。虽然实际上近几年我已经很少关注学习那些新出的东西了,但是我还是有那么一点印象的。

在超级表里面使用公式,引用的单元格不再是经典的单元格名字,而是超级表的列名,前提是你用的那种公式不涉及跨行,如果跨行了,我好像没发现超级表能有什么超级功能,但是如果用超级表的偏移定位函数,的确能实现到达上下行。

xlookup是个比较新的函数,所以它能不能把索引的范围定为超级表的某一列呢?我发现的确是可以这么干的。如果有两个超级表,我要用超级表A作为索引,超级表B的某些数据作为查询条件。那么我在写xlookup公式的时候,我就可以完全用超级表的快捷引用方式。暂时我只尝试过一些比较简单的数据,出来的效果非常好,比我整列引用速度快很多。虽然xlookup是支持整列引用的,但那样的话很慢,而之所以很慢,我估计一个很重要的因素是xlookup只在高级的Excel里面使用,而高级的Excel文件又比低级的Excel文件行数多很多。其实我一直搞不懂为什么同样是Excel的公式,有些函数可以整列引用,有些却不行。有些虽然可以整列引用,但实际上效率不高。用同样的公式,一个引用的是超级表,一个引用的是整列,同样是xlookup,出来的结果就很有差别。如果你在超级表B更新了数据要索引超级表A的内容。引用整列的那个在你把数据粘贴到超级表B的时候,就已经会把你卡得痛不欲生。也正是因为有这种痛不欲生,所以以前当我要引用很多数据的时候,我选择的是用Power Query做一个后台匹配。因为如果用前台做这种整列的索引,整个文件哪怕不是互相影响的那些表,也会变得奇慢无比。在这里我巧妙的地方是利用了超级表的动态性。以前,如果要动态应用可能会增减数据表格内容的时候,好像需要套用offset。

当我要指定某片数据区域的时候,Excel其实是能感知其连片区域范围的,但只是在用公式索引的时候没有给用户一个直截了当的方案而已。

2017-09
25

人算不如天算

By xrspook @ 14:31:49 归类于: 烂日记

能昨天晚上搞定的数据,我已经尽量昨天晚上搞了。但是今天早上需要耗费的时间还是很多。这是因为,那些东西的条数实在太多了,而且是分布在几个完全不能合并的项目里。如果49条记录都只是一个仓里的话,很快就搞定了,但是,如果这些都分布在十个仓里面,那么我就会相当被动。这就等于所有东西都不能被汇总,只能分类计算。幸好现在数据透视表的基本功能我已经有点掌握,有了那个东西,就可以用拖拉鼠标轻易地变动出统计数据。否则的话我会死得更惨。但其实现在回想起来,让我痛苦的并不是汇总数据的过程,是原始数据的收集。本来原始数据对我来说就只需要在一个地方导出,但是现在需要在两个地方导出,原来那个地方导出的数据,我可以非常信任,但新的那个地方导出的数据,到底可信程度如何,能不能尽信还很难说。因为原来的那种导出数据完全是程序操作,自动录入自动输出,但新的那个原始数据是人从一个原始数据里汇总得出一个数然后再手动输入的。这样就相当被动,而且非常容易出错。如果一天只有那么一条数据,出错的概率还相对较低,但是,如果一天有超过十条都是这样的,就很麻烦了。前两天就发生过这么一件事,给我报数的人,漏报了一个仓的数据。其它仓的数据都没有错,但是,他在报的时候,彻底的地掉了那一个仓。之所以会这样出现这种漏洞,大概是因为他给我报数的时候没有核对总数。如果他数一下汇总的条目,就不会出错,或者他把汇总的数量,累加一下,也会发现有问题。这也是为什么我一直都推荐他们用自动的汇总。至于那个报送的模式,没必要一个一个数字敲键盘写出来,你可以给我来个截图。如果我把截图的数板字过纸错了,是我的问题,但起码,你报出数据的时候不会有错漏。其实这些流程的问题在经过一两天以后应该就可以上手,可以优化,但问题是过去的一个月,所有人都疲于奔命地完成每一天的工作。对他们来说根本来不及思考怎么才会能得更好。作为一个旁观者,我觉得越是这样他们越容易犯错。我自己是那种非常容易会把两个数字倒过来写的人,结果五个数字可能都是正确的那些,但是其中的有些顺序变了。要把这个检查出来不容易,所以我的解决办法是把所有数据都拿来加一下,如果结果等于正确的那个,基本可以证明我没有抄写错误。因为抄错一个人数的概率很高,但是多个都同时抄错的概率很低,而且抄错的还刚好互补那更加是微乎其微的可能性。即便工作的数量越来越多,我觉得也应该让人感觉工作越来越轻松,因为人是有主观能动性的,我们会改变我们这策略,利用不同的方式优化流程。如果任何操作都没办法改变这个事实的话,估计大概就是要彻底重新改造整个流程的时候到了。

今天Secret Superstar的第四首歌估计就要放出。我觉得最早会在下午,也可能会在晚上。这首歌将在发布会上发布的,所以发布会什么时候开就决定了什么时候能拿到这个资源。再过四周这部电影就要上映了。我个人感觉之前放出的预告片也好,歌曲也好,暂时还没有那种让人欲罢不能非常想看的号召力。

月底了,我莫名地感到有鸭梨。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress