欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Office

Excel常用函数及使用技巧分享 掌握了你就成表哥了

程序员文章站 2022-06-26 13:03:27
前言 一、索引&索引函数——配置和计算的基础扩展 为什么觉得索引那么重要? 因为在配置和计算中,常常遇到如下问题: 1、在做...

前言

一、索引&索引函数——配置和计算的基础扩展

为什么觉得索引那么重要?

因为在配置和计算中,常常遇到如下问题:

1、在做某几个表格的计算或配置时,常常会用到另一个表格的内容,手动查找太费时了。

2、当需要调整某个数据时,往往牵一发而动全身,需要修改与其相关的很多配置或计算表格,如果是手动修改效率很低,且没办法保证准确性。

而若在数值计算或配置中用到索引函数,可以保证数值来源的一致性和可靠性,也可以提高配置的准确性,当然也带来了很大的便利(修改某个数值可使相关单元格随之而更新)。

索引表格的一般用法

1、数值计算

第一步:在excel里用一个单独的页签或区域作为“数据库”存放原始数据。即一些最原始、需要手填的数据表,如物品ID和物品名称的对应表、英雄偏向性、英雄ID和其他资料的对应表等等。

1)、格式注意:每个表格的首列/行一般是用唯一标识如ID或者名称,这些都是用于索引的关键词。

2)、当然某些策划因为需要常常看到“数据库”中的内容,选择把数据库放在计算表格旁边,这种做法也是可以的,最好加个颜色标注。

第二步:在其他页签中进行计算,在计算过程中凡是要用到原始数据的部分,都必须用索引函数从“数据库”中取出来,这也之后凡是有要改动的地方,只要改最原始的数据库就OK啦。

1)、如英雄属性的计算,如果要改动一个英雄的偏向性,或者游戏中总的属性上限,只需要改数据库中对应英雄的偏向性系数,其他的升级、进化属性的计算表和配置表会随之而变,可直接观察结果并复制配置。

2)、 如图中就是一个最简单的例子,计算区域的数值全部是由两个基础的表格来的,只需要填入关键词(即需要计算的是什么类型、几星、什么品质的英雄),即可索引出对应数据并计算。而且我只要修改上方数据源某个数据,下方计算区域也会随之而改变。

3)、该表格为粗糙的示例表格,正式使用时可变化方式。

2、配置方面

1)、配置方面运用到索引函数就更多了,而且比较繁杂,一般是从计算表中索引最终数值到对应配置位置,或批量更名等小配置的修改,不是很有统一的步骤,但是用熟了索引函数之后会发现那些都不是事儿。

2)、此处以批量更名为例:

首先图中用vlookup根据配置表中左侧原本的名称,在更名表中索引出更改后的名称。

然后用iferror处理更名表中没有的内容,即不更名的那部分英雄,名称=原本配置的名称。

最后将B列更名后的名称直接复制,以”选择性粘贴”中的数值粘贴到A列,再把B列的辅助列删除即可。当然为了影响最小,你可以选择把辅助列放到表格最后面那列。

常用的索引函数

叨叨了那么多,终于进入正题了,其实索引的方式有很多种,但是为了避免混乱,以下只介绍3种。

1、 vlookup/hlookup——最常见的索引函数

1)、用途:

根据首列(或行)的信息查找后面特定列(或行)中指定的内容。

2)、用法:

Vlookup(索引标志/条件,索引的数据库范围,返回列数,精确(fault)/模糊(ture)查找))

Hlookup(索引标志/条件,索引的数据库范围,返回行数,精确(fault)/模糊(ture)查找))

3)、 特殊用法:双重索引

在单元格中输入=vlookup(条件1&条件2, if({1,0}, 条件1所在列&条件2所在列, 返回内容所在列), 2, false)

输入完后记得要按ctrl+shift+enter组合键才会出来结果。

4)、优缺点

优点在于单一条件索引时简单直观,且可索引各种类型的内容。

缺点在于不方便做多条件索引,且限制了原始表格的表头只能都在列上或都在行上。

2、 Sumproduct——多少条件都不怕的数值索引函数

1) 用途:

将符合索引条件的单元格输出,若满足条件的对象大于等于2个,则会输出所有对象的加和结果,这是个双刃剑。

多重条件索引的利器,但无奈限制于只能输出数值类型的结果。

2)用法:

sumproduct((条件1=查找范围1行/列)*(条件2=查找范围2行/列)*(条件3=查找范围3行/列),查找范围(表、行、列都行))

如果想快速记忆的话,可以考虑用矩阵相乘的方法理解,以D16为例。

(1)$A16=$A$1:A$10这句是指在A1:A10范围内匹配出与”1星”相同的位置,匹配成功记为“1”,否则记为“0”,最终得出一个列矩阵。

(2)$A$1:D$10这句是指在A1:10范围内匹配出与”血量”相同的位置,匹配成功记为“1”,否则记为“0”,最终得出一个行矩阵。

(3) 用之前所得的列、行矩阵相乘,得出一个最终的矩阵图。

(4)用该矩阵图去匹配所选的区域范围A1:10,选出矩阵中为“1”的点的数值,若有多个,则将其加和后输出。

3) 优缺点:

优点在于可N重条件索引,凡是数值类型的索引都强烈推荐此函数。

缺点在于索引结果只能为数值。

3、Match、index函数共用——鸡胸肉一般的索引函数

1)、用途:

可同时对行、列进行索引,即对一般同时带有行、列的表头的表格进行双重索引。

可对最常见类型的表格进行行列的双重索引,弥补了前两个函数的一些不方便的地方。

2)、用法:

Index(查找区域,match(目标值1,对应行), match(目标值2,对应列), 0)

match(匹配值,匹配区域,查找模式):寻找特定值在某个表头中的相对位置,查找模式一般用 0(精确查找),另外1=小于、-1=大于。

index(行数,列数):根据特定行数、列数查找到制定位置的信息。

这个就直接上图好了,不明白的可以看看附件。

3)、优缺点

优点在于可索引所有类型的数值。

缺点在于只能用于指定格式的数据源,但是这种格式也是最常见的了

4)、使以上用索引函数时的一些注意点:

要注意使用绝对/相对引用

(1)写索引函数选择“数据源”区域后,记得用绝对引用。

(2)在写索引函数用于索引的条件时,也需要根据当前表格结构选择相对或绝对引用。

不要随便使用剪切功能

(1)宁愿使用复制和删除,剪切和移动会导致引用的公式出现错误。

(2)这其实是基本常识,即使不是索引函数,使用其他excel函数时也需要注意。

如何扩展“数据源”表格?——插入单元格

(1)经常会遇到数据源需要增加内容的情况,如物品价值表中又加入了几种道具啥的,此时需要做的是:将需要添加的新内容插入到倒数第一行/列的前面,这样原来引用该区域的单元格会自动扩展其引用区域。

P.S.可在扩展完数据库后再调整表格内容结构,同样注意使用复制和删除,而不是剪切!

每个表格的第一列/行,一般是用来做索引的关键词如ID、名称或属性标志,尽量避免根据第2行去索引第1行数据的情况。

二、一些好用的小函数

1、 Substitute(目标单元格,"要替代的字符",“替代成什么字符”)

1)、将目标单元格的部分字符串以新的字符串替代,和len函数组合也可以算出目标单元格中某字符的个数。

2)、如len(A1)-len(substitute(A1, “a”, “”)),可计算出A1单元格中包含”a”字符的数量。

3)、挺好用的一个函数,值得研究一下,附件中有示例。

2、LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))

1)、作用:提取指定单元格中的数字。

2)、注意:若该单元格字符串中有两段数字,也只能返回第1段数字,若需多次提取可与Substitute()结合使用先将第一个数字设为空值。

P.S.建议用到的时候直接复制并将其中的“A1”改为目标单元格即可!

3、offset(初始单元格,列偏移量,行偏移量,输出行数,输出列数)

1)、可用于相对应索引,或重复输出某个位置的数值,在附件中有示例。

4、 iferror(目标单元格,错误后的输出值)

5、 sumif(Range,Criteria,Sum_Range) 

1)、Range代表条件判断的单元格区域;Criteria为指定条件表达式;Sum_Range代表需要计算的数值所在的单元格区域。

2)、如=SUMIF(C2:C63,“女”,D2:63),即可求出“女”生的语文成绩和。

6、 countif(区域,条件)

1)、作用:统计符合特定条件的单元格个数。

大于50=COUNTIF(数据区,">50")。

大于或等于E5单元格的值=COUNTIF(数据区,">="&$E$5)

>=10并且<15 =SUM(COUNTIF(数据区,">="&{10,15})*{1,-1})

7、 left(目标单元格,截取字符数)、right(目标单元格,截取字符数)、mid(目标单元格,从第几个字符开始截取,截取长度)

1)、针对某个单元格中的内容,从左边、右边或中间截取某段信息。

8、EVALUATE:可引用某个单元格中填写的内容作为公式,计算出结果,但注意这不是可直接写在单元格中的公式!

1)、具体例子可见附件,要用到一点点VBA,当然定义名称也可用,但是那样非常的不灵活,所以我还是选择分析VBA的方式,放心这是基础分享不会涉及太多的。

2)、具体步骤:

1. 打开一个excel

2. 打开开发工具→查看代码

P.S.若没有查看代码的页签,也可按Alt+F8→创建宏,名称任意。

3. 在对应表格插入模块

4.在新的模块中填写如下代码(先删除原来的所有内容)

Function fun(func As Variant)

a = func

fun = Evaluate(a)

End Function

5. 然后你就可以在单元格中用=fun(公式所在单元格),进行计算了,甚至还可配合其他的函数。

3)、顺便再介绍一下,把这个函数变成所有表格都可使用的函数

1. 将刚才写了模块的excel另存为”加载宏”类型的文件。

2. 然后关闭该文件。

3. 打开其他任意一个普通excel文件。

4. 点击左上角【文件】(或office图标)→选项→加载项→转到→浏览→选择刚才另存为加载宏的文件→勾选该文件→确定。

5. 以后再使用其他任意excel时,都可用到这次写的fun()函数啦。

三、一些方便的小技巧

1、 快捷键类型

1)、 F4:重复上一操作、绝对/相对引用

对单元格点击可重复上一个操作,比如删除单元格、改变填充颜色等。

在函数中的单元格名称旁点击可对其绝对/相对引用,多次点击为切换引用模式(何必一个个的打$呢)。如A4:A6旁点击可变为$A$4:$A$6。

2)、F9:公式部分运算

主要用于查错。

选择对单元格公式中的某段公式使用,可立即得出该段公式计算结果。

3)、ctrl+shift+方向键:朝着指定方向选定所有已填充的单元格。

很好用的,尝试一下就知道,特别是在上百行数据时更能体现便捷性。

4)、连接几个单元格中的内容

如想将A1、A2、A3的内容连接起来,只要在其他任意单元个中写=A1&A2&A3。

e) PHONETIC(A1:B10):连接多个单元格内容,虽然属于函数但是觉得和&挨在一起讲比较容易理解。

不可用于数值类型,若要用于数值类型需将对应单元格格式转化为文本。

5)、ctrl+g

选定区域后按,可定位选中空置、可见、或某些特殊条件的单元格。

2、 简单操作类

1)、双击单元格右下角:自动填充

计算后公式不用手动拉,双击一下单元格右下角即可。

在上百行数据需要填充时可体现其便捷性。

2)、批量修改:选择一堆单元格--打字填充某个单元格--按快捷键ctrl+enter可全部填充。

3)、选择性粘贴

批量计算。在某个单元格打一个数字→复制→选定目标区域→选择性粘贴选加减乘除,可一次性改变所有选中区域的结果。

转置。

粘贴链接,建立表格之间的联动性。

转换格式,转换成数值。

4)、查找替换

批量修改或去除包含指定内容的单元格。

批量选中已填充颜色或有统一特殊格式的的单元格,配合ctrl+enter。