excel制表基础:规范的制表理念和思路让效率提升 下篇

news2024/9/21 16:24:20

在日常工作中我们会构建很多的表格,其实这些表格无论多少,都可以归结为三大类,分别为“源数据表”、“关系信息表”和“统计分析表”。上次我们提到了一套表格“统计的核心”——“源数据表”,今天继续为大家分享“关系信息表”和“统计分析表”的创建过程。(本篇为该系列文章的下篇)

【前言】继续前篇内容,当我们有了一个规范的《源数据表》之后,接下来就是需要处理这些数据的过程了,总不能拿着一张明细表给老板交差吧?!下面就来看看在后续的表格制作中,我们还需要注意些什么。

二、“关系信息表”是一套表格“关联的纽带”

“关系信息表”的作用是对“源数据表”中某一个或多个字段内容的信息补充。其建表规则与“源数据表”基本相同。但是“源数据表”中的“关键字”可以多次重复出现,而“关系信息表”中的“关键字”必须是唯一的。用一个图例辅助说明一下:

因为“关系信息表”的作用是补充说明,所以它的一些信息内容,经常被我们索引到其他表中使用。如果你懂得VLOOKUP函数被搜索区域的首列内容必须是唯一存在的话,那么就应该明白这个表中的索引值必须保证是唯一存在的重要性了。

谨记良言:不要在建表之初,给自己在以后使用的时候挖坑!

除了这些信息性质的内容,还有一些辅助计算的说明性表格也属于此类“关系信息表”的范畴,构建表格的时候,需要我们单独的列出一个Sheet以供引用。

1. 等级评定

此类问题,如果在没有“关系信息表”辅助计算的情况下,我们需要使用常量数组的方式,用函数来解决。

B3单元格函数:=LOOKUP(A3,{0,50,100,200},{"D","C","B","A"})

不仅这样写函数比较麻烦,而且也增加了写函数的难度,起码只有会常量数组的同学能写出来,否则就要用一串IF函数嵌套解决。并且上面的这种方式有一个很大的弊端,如果评级条件发生改变,我们就又需要重新设定函数内容。

但是如果我们增加一个“关系信息表”,用表的形式来表述这段文字,那么上面的这些问题就都可以解决,如下:

B3单元格的函数:=VLOOKUP(A3,OFFSET($E$3,,,COUNT($E$3:$E$50),2),2,1)

本身我们直接用=VLOOKUP(A3,$E$3:$F$6,2,1)函数就可以得到结果,但是考虑到以后的评级标准可能会变动,所以我们加入了OFFSET函数(往期有教程,不做赘述)形成一个动态的引用,所以无论评级怎么改变、增加,统计表中的“等级”字段都会自动调整。

2. 规定时间范围内的有效值

这类问题,在日常工作中也很普遍,比如说单价的问题,无论是进货价格还是销售价格,都不可能是一成不变的,会根据市场原材料的价格时常做出上调、下调。如果我们依然使用固定值,就经常需要更改数据,那么很容易就会因漏改、错改造成数据错误。所以,我们还是需要“关系信息表”来做辅助性计算,以此方式也能最好的规避数据错误的风险。

本例中使用了LOOKUP(1,0/(条件)......结构,完成了多条件查询。

三、“统计分析表”是一套表格“效率的表现”

“统计分析表”是按照“源数据表”的内容,结合“关系信息表”的说明(或直接统计),根据具体统计分析的需求,使用Excel的技术手段形成自动化报表,作为最终数据展示的过程。

1、建模的基本原理

统计分析是用“表”的形式表现出来的,但在实际的Excel操作上,其实是一个运算的过程,可以通过“源数据表”直接得到我们需要的内容,也可以结合“关系信息表”一起分析,具体问题具体分析。例如下面的数据:

黄色的区域是函数部分。

C27单元格函数:

=SUMIFS($D$3:$D$6,$A$3:$A$6,">="&$A27,$A$3:$A$6,"<="&$B27,$C$3:$C$6,C$25)

函数解析:这是多条件求和函数的典型用法,在这里需要强调的是,关于日期范围的条件判断是对起始日期、截止日期两个条件的判断。在满足A3:A6区域大于等于起始日期的A27单元格,且A3:A6区域小于等于截止日期的B27单元格,且C3:C6区域中等于C25单元格的条件下,汇总D3:D6区域的销量。然后复制函数,复选中C27:C29、E27:E29、G27:G29,再选择性粘贴为公式填充,一定要注意相对引用和绝对引用的使用。

D27单元格函数:

=VLOOKUP(C27,OFFSET($A$9,MATCH($A27,$A$10:$A$21,0),3,COUNTIF($A$10:$A$21,$A27),2),2,1)

函数解析:这个函数看着有一点不好理解吧,如果嵌套函数不好理解的时候,我们可以拆分来看。OFFSET函数的返回值,被作为VLOOKUP函数的第二参数;而MATCH函数和COUNTIF函数被作为OFFSET函数的第二、四参数。

(1)通过MATCH函数,确定《关系信息表》中起始日期第一次出现的序号,作为行偏移的参数,再通过COUNTIF函数,确定《关系信息表》中本月中的等级条件有几行,作为行扩展的参数。

(2)OFFSET通过5个参数的运算,返回了当月等级评定标准的区域范围,并作为VLOOKUP的第二参数参与运算。

(3)最后通过VLOOKUP的模糊查询找到对应的等级。

然后复制函数,复选中D27:D29、F27:F29、H27:H29,再选择性粘贴为公式,进行填充。同样需要注意相对引用和绝对引用的使用。

篇幅有限,案例中的数据内容比较少,但是意图和思路还是可以表述清晰:销量是基于“源数据表”使用函数得到每个销售员每个月的销量合计;等级是按照返回的销量结合“关系信息表”的各月各类参数使用函数得到。上面的这个思路,就是我们俗称“建模”的基本原理!

2、“统计分析表”也可以是另一个表的新“数据源”

如果我们要直接用这个案例生成“统计分销表2”的话,在不使用VBA的情况下还是有点难度的。这里我们可以通过“统计分析表1”的内容进行一个过渡,把复杂问题简单化。上例的黄色区域是函数部分,都是SUMIF和VLOOKUP函数的基础用法,在这里就不列出来了,有兴趣的同学可以按照这个思路去试着做一下。

3、“多条件查询”式的“统计分析表”,让你的数据模型初具规模

看一下这个需求,作者相信每个Excel使用者都对这个需求充满了向往,那就一起来看看是如何创建的吧,先看一个效果图:

3-1 在源数据表的首列插入两个空列,作为辅助列使用

在B3单元格输入下面内容后,下拉填充:

=IF($D$11="",1,IF(C3>=$D$11,1,0))+IF($D$12="",1,IF(C3<=$D$12,1,0))+IF($D$13="",1,IF(D3=$D$13,1,0))+IF($D$14="",1,IF(E3=$D$14,1,0))+IF($D$15="",1,IF(F3=$D$15,1,0))

函数解析:因为我们的条件设置了5个内容,当条件为空(不填),或者满足条件的时候,计为1否则为0,目的在于如果这个函数返回值是5,那么说明5个条件均满足,是我们需要的记录条;如果不是5,那么说明不是我们需要统计分析的记录条。

在A3单元格输入下面内容后,下拉填充:

=IF(B3<>5,"",MAX($A$2:A2)+1)

函数解析:如果B列的值不等于5,则返回空值;否则返回此单元格在同列上方的区域中的最大值+1。目的是标记出我们需要使用的记录条,并且给予一个“关键字”的赋值。

这里使用了相对引用和绝对引用的知识,不是今天的重点,大家可以找找相关的内容补充一下。

3-2 制作导出新数据的展示区域

C18单元格函数输入后,复制此单元格,并选择性粘贴——公式到C18:G25区域:

=IFERROR(VLOOKUP(ROW(C1),$A$2:$G$6,MATCH(C$17,$A$2:$G$2,0),0),"")

函数解析:通过ROW函数,可以返回行号,下拉填充后,就可以得到一串1、2、3……的序号,这样就可以和辅助列2的“关键字”相对应;再使用MATCH函数,可以得到字段在“源数据表”中的列序,以此作为VLOOKUP函数的第三参数,通过VLOOKUP函数就可以找到满足条件的记录条;最后再以IFERROR函数,去掉VLOOKUP函数产生的#N/A值。这样一套完整的多条件查询系统就建立完毕了。

3-3 进一步完善“统计分析表”具有说明类的数据

案例中做的“销量合计”就属于说明类的数据,我们做出满足条件的明细后,总不能让别人再自己计算想要的数据吧!所以就需要我们将一些必要的数据在表头的位置中罗列出来,还可以做出百分比、同期数据对比等等数据分析类的数据,或者也可以将索引出来的明细作为数据源,做成图表辅以可视化展示。

【编后语】Excel数据建模过程的原理部分就给大家介绍完了,能记下多少,又有多少内容能够应用到实际工作中,就要看每个人的理解程度了。在这里还是要给大家一句箴言:任何技能都是练习出来的,多看多用多总结,是学习的必经之路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/138699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣(LeetCode)1802. 有界数组中指定下标处的最大值(C++)

贪心二分查找 贪心性质&#xff1a;对于数组中确定位置index的数&#xff0c;要使nums[index]最大&#xff0c;等于使得整个数组之和最小。 提示 &#xff1a;数组相邻元素之差的绝对值小于1&#xff0c;为了数组之和最小&#xff0c;从index往左&#xff0c;形成公差为1的递减…

python实现多张多格式图片转PDF并打包成exe

目录 主要思路 转PDF初始代码 转PDF最终代码 GUI界面设计代码 打包成可执行文件 完整代码 附录 主要思路 从文件夹中读取图片数据&#xff0c;然后将他们保存为PDF格式。 转PDF初始代码 不长&#xff0c;大概10行代码。 from PIL import Image from os import *def …

Stardust 案例:制作散景光斑

本文介绍使用 Ae 插件 Stardust 制作散景光斑的一般方法与步骤。效果视频1、新建合成。持续时间&#xff1a;10 秒。2、新建纯色图层&#xff0c;命名为“散景光斑”&#xff0c;然后添加 Stardust 效果。3、设置 Emitter&#xff08;发射器&#xff09; 。用一个长方形的发射器…

2023外贸人出国抢单攻略(附带2023年全球重要展会)

自11月底以来&#xff0c;全国陆续传来政府带团出国抢单的消息&#xff0c;让沉寂了3年之久的外贸行业热情高涨。这不仅预示着3年抗疫斗争的胜利&#xff0c;更意味着中国三驾马车之一的外贸行业开启了高速运转的车轮。“浙江带领万家企业去欧洲抢单&#xff01;”“福建省商务…

少儿Python每日一题(10):手机键盘

原题解答 本次的题目如下所示(原题出处:NOC) 一般的手机的键盘是这样的: 要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x。0 键按一下会出一个空格。 你的任务是读取若干句只包含英文小写字母和空格的句子,求出要…

装备制造业ERP软件如何帮助企业做好物料齐套管理?

在生产制造过程中&#xff0c;要想提高生产效率&#xff0c;齐套管理是很重要的一环&#xff0c;会直接影响库存、交付和效率。而装备制造行业原料种类特别多&#xff0c;通用件也非常多&#xff0c;齐套检查工作十分复杂&#xff0c;深受以下问题困扰&#xff1a;1.装备制造业…

springmvc源码之HandlerMapping处理器映射器

系列文章目录 springmvc源码之Web上下文初始化 springmvc源码之DispatcherServlet前端控制器 springmvc源码之HandlerMapping处理器映射器 文章目录系列文章目录HandlerMapping处理器映射器实现类配置mvc:annotation-driven配置的作用RequestMappingHandlerMapping源码创建访问…

JAVA SpringBlade 微服务开发平台框架,企业级的SaaS多租户微服务平台,基于Spring Boot 2.7

SpringBlade微服务开发平台 完整代码下载地址:JAVA SpringBlade 微服务开发平台框架,企业级的SaaS多租户微服务平台 采用前后端分离的模式&#xff0c;前端开源两个框架&#xff1a;Sword (基于 React、Ant Design)、Saber (基于 Vue、Element-UI)后端采用SpringCloud全家桶&…

【谷粒商城基础篇】前端开发基础知识

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念&#xff08;第一、二章&#xff09;基础环境搭建&#xff08;第三章&#xff09;整合SpringCloud整合SpringCloud、SpringCloud alibaba&#xff08;第四、五章&#xff09;前端知…

Unity-ROS2与URDF导入(三)

0. 简介 在我们上一章讲的对于Unity与ROS之间的通信&#xff0c;Toolbox等比较基础的指令。下面我们将结合代码来介绍一下如何导入URDF文件&#xff0c;并通过键盘完成Unity的控制。 1. URDF模型创建 首先先创建并编辑URDF文件&#xff0c;并命名为toio_style.urdf <?x…

Python(九)Tornado web 框架

一、简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像web.py 或者 Google 的 webapp&#xff0c;不过为了能有效利用非阻塞式服务器环境&#xff0c;这个 Web 框架还包含了一些相关有用工具及优化。 Tornado 和…

LeetCode:13. 罗马数字转整数

13. 罗马数字转整数1&#xff09;题目2&#xff09;思路3&#xff09;代码4&#xff09;结果1&#xff09;题目 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V …

【自学Java】Java switch语句

Java switch语句 Java switch语句教程 在 Java 语言 中如果遇到多选一的场景&#xff0c;可以使用 switch 将其简化&#xff0c;让程序更加简洁易懂。switch 语句可以被 if…else 代替。它里面包含 switch、case、default 和 break 关键字。 switch 中存放的是对应的被比较的…

题402.数位dp-acwing-1082. 数字游戏1083. Windy数1085. 不要62

文章目录题402.数位dp-acwing-1082. 数字游戏一、题目二、题解三、类似题目四、关于数位dp题402.数位dp-acwing-1082. 数字游戏 一、题目 二、题解 欲求区间[X,Y]中满足性质的数的个数&#xff0c;我们可以想着去求小于m的数中满足性质的个数f(m)&#xff0c;然后利用前缀和思…

WebDAV之葫芦儿·派盘+FX播放器

FX播放器 支持WebDAV方式连接葫芦儿派盘。 想要把手机、PC、NAS等设备上的视频在智能电视上大屏播放,支持超多格式的多合一视频播放器?快来试试FX播放器吧。 FX播放器除了存储在智能手机上的视频外,您网络上的视频也是实时无缝的࿰

关于TCP通信的学习和应用案例

记录学习TCP通信的过程&#xff0c;包括理论知识、在Qt中建立TCP服务端和客户端&#xff0c;并附上源代码。由于最近的项目中也使用到了海康VisionMaster软件&#xff0c;可以将其作为服务端&#xff0c;用Qt写的TCP客户端和其进行通信测试&#xff0c;方便调试。 目录1.关于TC…

MATLAB APP 设计实践(一)UART通信(上篇)

引言UART通信属于异步串行通信&#xff0c;通信速率比较低&#xff0c;在一些速度要求不高的场合常用来作为多设备之间的控制与被控制方式。例如以UART串口通信作为上位机侧与运行设备之间的通信形式&#xff0c;实现上位机对设备的操控以及检测设备运行状态等。那么谈到了上位…

PyTorch实战1

传送门&#xff1a;蓝桥云课实验 目录1. 实验环境2. 实验目的3. 相关原理4. 实验步骤4.1 数据预处理4.1.1 对于类型变量的处理4.1.2 对于数值类型变量进行标准化4.1.3 数据集分割4.2 创建模型手写用Tensor运算的人工神经网络4.3 训练模型4.3.1 数据的分批次处理4.4 测试模型1. …

逆向-还原代码之eth (Arm 64)

// 源程序 #include <stdio.h> #define HIETH_SYSREG_BASE (0x101e0000) #define REG_RESET 0x01C // 外设控制寄存器(IP软复位控制) #define RESET_SHIFT 12 static void hieth_set_regbit(unsigned long addr, int bit, int shift) { unsigned long …

Practise test day16

一.单选 1.在关系型是数据库中&#xff0c;有两个不同的事务同时操作数据库中同一表的同一行&#xff0c;不会引起冲突的是&#xff1a;&#xff08;F&#xff09; A. 其中一个DELETE操作&#xff0c;一个是SELECT操作 B. 其中两个都是UPDATE C. 其中一个是SELECT&#xff…