好吓人的一行公式,花了一小时才写出来

私信回复关键词【2020】,获取100 套高颜值图表模板!


临近下班,小E突然转过身来,求助~~


(小E是谁?Office 全能,以优秀和单身著称于各大秋叶学习班学员群的男子?。?


能被万能的晓阳老师问问题,今天一天的心情都美美哒~


好吓人的一行公式,花了一小时才写出来



小E:我碰到一个棘手的 Excel 问题......


小秋:哦?我瞧瞧~
好吓人的一行公式,花了一小时才写出来

小E:她说 , 要 %¥#$%^......


小秋 OS:(竟然还有这种需求?)


01
问题需求


把多名员工的评价表汇总到一个表中 。


这一句话,看起来很简单很轻松很 easy 对吧?


但实际情况是 , 每个员工一个这样的表(实际表格更更更复杂)——


好吓人的一行公式,花了一小时才写出来



光评价指标就有近 200 个!还分自检和检查!


而这样的表有几十上百个!


然后要汇总到一个表中,横向排布——

好吓人的一行公式,花了一小时才写出来



看到这里,你有什么想法吗?
好吓人的一行公式,花了一小时才写出来

02
问题分析


这个问题虽然复杂 , 不过让我松一口气的是:


全是公司统一的表格,所以结构是完全一样的 。


它,实际上就是要获取不同工作表中、相同位置处的单元格内容 。


不管怎样,学员的提问肯定是要帮解决的,所以我耗费了半个小时用一个公式解决了这个问题 。


解决方案 1 ◆


以下是公式:

=INDIRECT(E$4&"!"&CHAR(MOD(COLUMN()-5,3) IF(IFERROR(FIND("自检",E$3),0),100,103))&(ROW()-1))
▲左右滑动查看完整公式


能看懂吗?


我来解释一下~


INDIRECT 函数:


返回由文本字符串指定的引用 。此函数立即对引用进行计算,并显示其内容 。


说人话就是,INDIRECT 函数的参数,是指定某个单元格的引用,用这个函数可以获取到该单元格的内容 。


讲到这里,得先搞清楚单元格的引用样式 。


Excel 中单元格引用方式包括 2 种:A1 引用样式 和 R1C1 引用样式 。

默认情况下,我们用的都是 A1 引用样式 , 由一组(列标 行号)来表示引用的单元格 。


A1:表示第 1 列第 1 行的单元格 。


当我们去引用其它工作表的单元格的时候,引用单元格的前面会加上该工作表的名称 , 并以「!」连接:


汇总!A1:表示「汇总」工作表的第 1 列第 1 行的单元格


而我写的那个公式后面一长串都是为了动态引用到我们想要的单元格,几个部分用「&」连接符连接起来 。


E$4:为了获取到工作表名称 , 直接以混合引用方式引用第 4 行的单元格;


"!":表示「的」,引用了其它工作表「的」单元格;


CHAR(*):这整个部分都是为了求得想要的列号,并把列号的数字用 CHAR 函数转为字母(*是代替括号内的所有字符);

ROW()-1:为了求得想要的行号 。


将这四部分连在一起 , 就能引用指定单元格,然后用 INDIRECT 函数来获取到改单元格的内容了~~~


以上就是对这个公式写的思路的一个拆解,不知道你看懂几多呢?


好吓人的一行公式,花了一小时才写出来



不过这位同学的问题虽然解决了,可是!我是非常不建议这样来汇总表的 。


这种汇总表一般是为了查看数据方便 。


可这个表真的好看吗?


横向浏览不是我们正常的阅读习惯,对吧?


所以我的建议是换个思路 。


解决方案 2 ◆


使用下拉列表选择工作人员 , 数据自动更新,这样不是更能聚焦某一个人的数据吗?

好吓人的一行公式,花了一小时才写出来



而且!


不把表格设计复杂 , 写的公式也没那么复杂了~


=INDIRECT(E$4&"!"&CHAR(COLUMN() 95)&(ROW()-1))


这个公式是不是简洁了很多?


公式的思路都是一样的,不信 , 你拆拆看~


这 2 个解决方案,你 Pick 哪一个?


【好吓人的一行公式,花了一小时才写出来】私信回复关键词【2020】,获取100 套高颜值图表模板!

相关经验推荐