【excel】万字长文,一些实用excel技巧,金融财务行业巨实用(最后有干货,配合chatgpt让你成为excel大佬)

 本文主要记录一些在工作中经常能用到的excel技巧,能够帮助我们提高工作效率。在文章的最后还会通过几个实战例子来加深大家的理解。建议把本文作为备查文,不需要在阅读本文的当下就将这些技巧掌握,只需了解,哪些东西通过excel是能够做到的,再实际工作中遇到问题的时候再来查阅。

【不要被vba吓到,配合chatgpt,每一个没有学过代码的人都能够搞定80%的vba编写宏的需求!】

目录

 ​编辑

1 高级功能篇

1.1 格式设置/格式刷

1.2 填充

1.3 数据透视表

1.4 画图(迷你图)

1.5 批注与数据验证

1.6 分列、去重

1.7 冻结窗口

1.8 从网页获取数据

Excel的从网页获取数据功能的应用场景

2 公式函数篇

2.1 查找函数

2.2 条件函数

2.3 字符串函数

2.4 日期与时间函数

2.5 逻辑函数

2.6 数组常量及运算

2.7 常用数组函数

3 vba篇

3.1 录制宏

3.2 利用chatgpt改造录制的宏

3.3 按钮/窗体

3.4 自定义函数


1 高级功能篇

1.1 格式设置/格式刷

 在excel中的格式设置主要包含数字的格式设置和单元格的格式设置。

在这里对格式刷功能进行重点介绍,因为这个在工作中可能会用得很多:

1、单击格式刷

选中已有格式的单元格,单击格式刷,再选中需要设置格式的单元格,就可以完成格式的复制了,这是最基础的用法。

2、双击格式刷

选中已有格式的单元格,双击格式刷,再分别单击需要复制格式的单元格,最后需要取消时,再次单击格式刷,即可结束格式刷被激活的状态。

3、单击+快捷键

选中已有格式的单元格,单击格式刷,然后按快捷键Ctrl+Shift+↓,瞬间完成批量格式刷。

隔行填充颜色用这个方法超好使,具体操作见文末视频

4、双击+查找

选中已有格式的单元格,双击格式刷,然后按Ctrl+F快捷键打开查找和替换窗口,查找内容为“肉”,点击查找全部,再按快捷键Ctrl+A全选包含“肉”的单元格,此时表中全部包含“肉”的单元格格式就设置好了。

4

5、双击+回车键

选中已有格式的单元格,双击格式刷,然后用鼠标单击空白区域,再按下Enter键,就把刚刚选中的格式和文字都复制过来了。

1.2 填充

1、Excel填充技巧:按住Ctrl键快速填充序列。

方法:

  • 在起始目标单元格中输入开始值。
  • 按住Ctrl键,移动光标至填充柄位置,待光标变成上下两个十字箭头时,拖动到目标单元格的最后一个单元格即可。

解读:

序列的其实值可以是任意值,不一定从1开始填充。

2、Excel填充技巧:快速填充指定范围内的序列。

方法:

  • 在第一个目标单元格中输入序列的起始值,如21,之后选中。
  • 单击【开始】菜单,【编辑】组中的【填充】-【序列】,打开【序列】对话框。
  • 选择【序列产生在】中的【列】,并在右下角【终止值】文本框中输入序列的最大值。
  • 单击【确定】。

解读:

  • 序列的其实值根据实际情况自定义。
  • 序列可以在【行】中产生,也可以在【列】中产生。
  • 也可以根据实际需要设置【步长值】,默认情况下【步长值】为1,如果下一个序列值比当前序列值大X,则【步长值】为X。

3、Excel填充技巧:按月份填充日期。

方法:

  • 在起始目标单元格中输入起始日期。
  • 拖动第一个目标单元格的填充柄值最后一个目标单元格。
  • 单击【自动填充选项】-【以月份填充】。

4、Excel填充技巧:按年份填充日期。

方法:

  • 在起始目标单元格中输入起始日期。
  • 拖动第一个目标单元格的填充柄值最后一个目标单元格。
  • 单击【自动填充选项】-【以年填充】。

5、Excel填充技巧:快速填充指定范围内的日期。

方法:

  • 在第一个目标单元格中输入序列的起始值,如“2022年3月22日”,之后选中。
  • 单击【开始】菜单,【编辑】组中的【填充】-【序列】,打开【序列】对话框。
  • 选择【序列产生在】中的【列】,并在右下角【终止值】文本框中输入序列的最大值,如“2022年3月31日”。
  • 单击【确定】。

6、Excel填充技巧:填充工作日。

方法:

  • 在起始目标单元格中输入起始日期。
  • 拖动第一个目标单元格的填充柄值最后一个目标单元格。
  • 单击【自动填充选项】-【填充工作日】。

7、Excel填充技巧:按字母填充。

方法:

  • 在目标单元格中输入公式:=SUBSTITUTE(ADDRESS(1,ROW(A1),4),1,)。
  • 拖动第一个目标单元格的填充柄,向下填充。

8、Excel填充技巧:不间断序列。

方法:

  • 在第一个目标单元格中输入公式:=ROW()-2或=MAX(H$2:H2)+1。
  • 拖动第一个目标单元格的填充柄,向下填充。

解读:

公式中的“-2”或“+1”均为修正值,在应用中必须根据实际情况进行调整。

9、Excel填充技巧:筛选填充序列。

方法:

  • 在第一个目标单元格中输入公式:=SUBTOTAL(3,G$3:G3)。
  • 拖动第一个目标单元格的填充柄,向下填充。

1.3 数据透视表

这里有一份各个基金的费率、份额、类型、投资类型和管理公司的数据表,我想对数据进行汇总观察,比如我有以下几种需求:

  1. 统计各家基金管理公司的不同投资类型的基金有多少只;
  2. 统计各家基金管理公司不同投资类型的基金的管理费率的平均值、最大值、最小值;
  3. 统计各家基金管理公司不同投资类型的基金有多少只(附带筛选条件:基金托管人必须是国有四大行)。

这些有数据聚合统计相关的需求都可以用数据透视表来实现。

首先,我们先调出数据透视表

1、统计各家基金管理公司的不同投资类型的基金有多少只

2、统计各家基金管理公司不同投资类型的基金的管理费率的平均值、最大值、最小值

3、统计各家基金管理公司不同投资类型的基金有多少只(附带筛选条件:基金托管人必须是国有四大行)

1.4 画图(迷你图

上图最右侧就是迷你图,迷你图是创建在工作表单元格中的一个微型图表,没有坐标轴、标题、图例、数据标志、网格线等图表元素,主要用于反映一系列数据的变化趋势,或者突出显示数据中的最大值和最小值。

可以批量生成迷你图。

1.5 批注与数据验证

其实这两种功能有点像,个人理解数据验证如果加上提醒就是批注+验证。

1、批注

选中要添加批注的单元格,点击鼠标右键,打开右键菜单,选择插入批注,在小方框中输入要添加的注释即可。

批量设置批注:

在单元格内插入批注,复制该单元格,按Ctrl,选择好所有需要添加该批注的单元格,在需要添加的任意单元格,右键,选择性粘贴,点击批注即可。

PS:当然,如果你仅选中一个单元格,那也是可以一个一个复制的。

2数据验证

1.6 分列、去重

1、分列

第一步:选择适合数据的分列方式,一共有2种分列方式

1)分隔符号:如果分列的数据中特殊的符号,一般选择使用分隔符号,比如逗号,冒号等以及现在例子中都有的“省”字都是可以作为分隔符号

2)固定宽度:如果想要分列的数据有固定宽度( 比如从身份证提取身份证的省编码,出生年月),或者数据想要的数据部分是固定宽度,(比如例子中要省份,并且都是省都是2位的)选择使用固定宽度。

并不是我们分列方式只能选择一种,有时候数据满足这2种分列方式,我们选择最合适的即可。

第二步:根据第2步选择的分列方式,来到第二步来指定分列的规则。

如果选择的是分隔符号,第二步是需要选择合适的分隔符号,如果前面几个特殊的符号(Tab键、分号、逗号、空格)不满足,可以在其他里输入。

连续分隔符号视为单个处理:文本中有多个连在一起的分隔符号,就把它只当作一个使用。(避免了出现很多空列)

文本识别符号:在这个符号内引住的文本,不参加分列。

下方是有数据预览效果,可以看一下是否是自己想要的分列效果。

如果选择的是固定宽度,第二步是需要建立合适的分割线

(分割线的使用,大家看绿色框里即可)

第三步:是我们去设置各列的数据格式以及列是否导出和导出位置

1)各列的数据格式

下面数据预览点击那列,选择那列的数据格式,我们经常通过第三步,去进行数值型和文本型的数字转换(数字和文本的转换),不规则日期的格式转换为规则的日期格式。

2)列是否导出

下面数据预览点击那列,选择不导入此列跳过,这列就不会到导出

3)导出位置

目标区域:选择位置即可(如果不选择默认在原来的位置分列好的数据,但是需要注意的是,如果分列后需要导出多列,而后面列有数据,会将后面的数据替换掉,解决方法:需要提前插入空列)

但其实,分列功能并不是仅仅用来分列的,有的时候他是很好用的数字格式转换的工具,例如:

1)数值型和文本型数字的转换

数据是文本,是无法进行计算的,并且我们在筛选的时候也是不能按照数字筛选走

我们需要将文本转为数字,直接跳过分列前2步,直接来到最后一步,列数据格式选择常规

有时候我们也需要将数字转为文本,比如如果数字超过11位,就会以科学计数法记录,我们需要将其值展示出来,又比如身份证必须用文本,否则后面3位会丢失,变成0

2)不规范的日期变成规范的日期

在Excel正确的日期格式是2022/9/5,或者2022-9-5,其他的比如20220905、2022.9.5都是不规范的日期格式,不能进行日期计算。

直接跳过分列前2步,直接来到最后一步,列数据格式选中日期,YMD是说我们的数据是按照YMD格式记录的,也可以自己去选择。

2、去重

1.7 冻结窗口

冻结窗格有三种,冻结首行,冻结首列,当你想要自定义冻结的行数和列数是,就选中第一个不需要冻结的单元格,单后点击“冻结窗格”。

1.8 从网页获取数据

这是一个很多人都没有用过的但是其实非常实用的功能。

Excel的从网页获取数据功能是一种强大的工具,允许用户从网页上抓取数据并将其导入到Excel工作表中。这个功能的好处是可以自动化数据抓取过程,避免手动复制粘贴,从而节省时间和减少错误。

使用Excel的从网页获取数据功能非常简单,基本步骤:

  1. 打开Excel并创建一个新工作表或打开一个现有的工作表。

  2. 转到“数据”选项卡,然后选择“从网页”选项。

  3. 在弹出的对话框中,输入您要抓取数据的网页地址(URL)。Excel会自动访问该网页并加载数据。

  4. 在加载网页后,您将看到一个网页浏览器窗口,其中包含网页的内容。通过点击不同的网页元素,您可以选择要抓取的数据。

  5. 选择完数据后,单击“导入”按钮,选择数据导入的位置(可以是新工作表或现有工作表),然后单击“确定”。

  6. Excel将从网页上抓取选定的数据,并将其导入到您选择的位置。您可以使用Excel的强大功能进一步处理和分析这些数据。

Excel的从网页获取数据功能的应用场景

  1. 股票和金融数据分析: 金融分析师可以使用这一功能来从不同的金融网站获取股票价格、汇率和其他金融数据,以便进行投资决策。

  2. 市场研究: 市场研究人员可以从各种在线新闻源和市场数据网站中获取信息,以了解市场趋势和竞争对手的表现。

  3. 天气预报: 想要实时了解天气情况的人可以使用这一功能从气象网站中获取最新的天气数据。

  4. 竞争情报: 公司可以使用这一功能来监测竞争对手的价格、产品信息和市场份额等数据,以制定竞争策略。

  5. 科研和数据分析: 科研人员可以从各种在线数据库和科学网站中抓取数据,以支持他们的研究项目。

2 公式函数篇

在提供的配套excel文件中以下大部分函数都有实例,比较实用的一些函数如下所示:

  1. vlookup
  2. index
  3. match
  4. if/sumif/countif/averageif/sumifs/countifs/averageifs
  5. left/mid/right
  6. text
  7. indirect
  8. find
  9. iferror
  10. count/counta
  11. 一些公式中的运算符
  12. today
  13. and/or
  14. 数组常量及运算
  15. OFFSET
  16. choose
  17. TRANSPOSE
  18. FREQUENCY
  19. SMALL/LARGE
  20. PERCENTILE.INC
  21. SORT
     

2.1 查找函数

实用频率比较高的有VLOOKUP、LOOKUP、MATCH+indirect。

  1. VLOOKUP函数(垂直查找):

    • VLOOKUP函数用于在垂直列中查找特定值,并返回该值所在行的相关数据。
    • 语法:=VLOOKUP(要查找的值, 查找范围, 返回列的索引, [是否精确匹配])
    • 示例:=VLOOKUP(A2, B2:E10, 3, FALSE)会在B2:E10范围内查找A2的值,并返回找到的值所在行的第三列的值。
  2. HLOOKUP函数(水平查找):

    • HLOOKUP函数与VLOOKUP类似,但是它在水平行中查找值。
    • 语法:=HLOOKUP(要查找的值, 查找范围, 返回行的索引, [是否精确匹配])
  3. LOOKUP函数:

    • LOOKUP函数用于查找某个值在一列或一行中的位置,并返回相应的值。
    • 语法:=LOOKUP(要查找的值, 查找范围或数组)
    • 示例:=LOOKUP(A2, B2:B10)会在B2:B10范围内查找A2的值,并返回相应的值。
  4. MATCH+indirect(一般要配合indirect函数使用,配合index更高级)函数:

    • MATCH函数用于查找特定值在范围中的位置,并返回其相对位置(行号或列号)。
    • 语法:=MATCH(要查找的值, 查找范围, [匹配类型])
    • 示例:=MATCH(A2, B2:B10, 0)会在B2:B10范围内查找A2的值,并返回其相对位置。
  5. INDEX函数:

    • INDEX函数结合MATCH函数可以根据相对位置从数组中检索数据。
    • 语法:=INDEX(数组, 行号, 列号)
    • 示例:=INDEX(B2:E10, MATCH(A2, B2:B10, 0), 3)会在B2:E10范围内查找A2的值的相对位置,然后返回相应行和列的数据。
  6. SEARCH函数:

    • SEARCH函数用于在文本中查找某个子串,并返回其第一个出现的位置。
    • 语法:=SEARCH(要查找的文本, 在文本中查找的文本, [起始位置])
  7. FIND函数:

    • FIND函数与SEARCH函数类似,但是它区分大小写。
    • 语法:=FIND(要查找的文本, 在文本中查找的文本, [起始位置])
  8. FILTER函数:

    • FILTER函数用于根据指定的条件筛选数据,并返回符合条件的结果。
    • 语法:=FILTER(数据范围, 条件范围)
    • 示例:=FILTER(A2:A10, B2:B10="条件")会返回在B2:B10列中条件满足的对应A列的值。

2.2 条件函数

  1. IF函数(条件函数的基础):

    • IF函数是Excel中最基本的条件函数,它根据指定的条件返回不同的值。
    • 语法:=IF(条件, 如果条件为真返回的值, 如果条件为假返回的值)
    • 示例:=IF(A1>10, "大于10", "不大于10")会根据A1单元格的值返回不同的结果。
  2. SUMIF和SUMIFS函数:

    • SUMIF函数用于根据条件对一列或多列进行求和。
    • 语法:=SUMIF(范围, 条件, [求和范围])
    • SUMIFS函数是SUMIF的多条件版本,可以根据多个条件对范围进行求和。
    • 语法:=SUMIFS(求和范围, 条件范围1, 条件1, 条件范围2, 条件2, ...)
  3. COUNTIF和COUNTIFS函数:

    • COUNTIF函数用于根据条件计算一列或多列中符合条件的单元格数量。
    • 语法:=COUNTIF(范围, 条件)
    • COUNTIFS函数是COUNTIF的多条件版本,可以根据多个条件计算符合条件的单元格数量。
    • 语法:=COUNTIFS(条件范围1, 条件1, 条件范围2, 条件2, ...)
  4. AVERAGEIF和AVERAGEIFS函数:

    • AVERAGEIF函数用于根据条件计算一列或多列中符合条件的单元格的平均值。
    • 语法:=AVERAGEIF(范围, 条件, [求平均范围])
    • AVERAGEIFS函数是AVERAGEIF的多条件版本,可以根据多个条件计算符合条件的单元格的平均值。
    • 语法:=AVERAGEIFS(求平均范围, 条件范围1, 条件1, 条件范围2, 条件2, ...)
  5. MINIFS和MAXIFS函数:

    • MINIFS函数用于根据多个条件返回一列或多列中符合条件的最小值。
    • 语法:=MINIFS(范围, 条件范围1, 条件1, 条件范围2, 条件2, ...)
    • MAXIFS函数是MINIFS的类似函数,用于返回符合条件的最大值。
  6. IFERROR函数:

    • IFERROR函数用于检查某个公式是否返回错误,并根据结果返回指定值。
    • 语法:=IFERROR(要检查的公式, 如果错误返回的值)
    • 示例:=IFERROR(A1/B1, "除数不能为零")会在A1/B1产生错误时返回指定的错误消息。

2.3 字符串函数

  1. CONCATENATE函数(合并文本):

    • CONCATENATE函数用于将多个文本字符串合并成一个字符串。
    • 语法:=CONCATENATE(文本1, 文本2, ...)
    • 示例:=CONCATENATE("Hello", " ", "World")将合并成"Hello World"。
  2. LEN函数(计算字符串长度):

    • LEN函数用于计算字符串中字符的数量,包括空格。
    • 语法:=LEN(文本)
    • 示例:=LEN("Excel")将返回值5,因为字符串"Excel"包含5个字符。
  3. LEFT函数和RIGHT函数(提取左边和右边的字符):

    • LEFT函数用于从文本字符串的左边提取指定数量的字符。
    • RIGHT函数用于从文本字符串的右边提取指定数量的字符。
    • 语法:=LEFT(文本, 字符数)=RIGHT(文本, 字符数)
    • 示例:=LEFT("Excel Functions", 5)将返回"Excel",=RIGHT("Excel Functions", 8)将返回"Functions"。
  4. MID函数(提取中间的字符):

    • MID函数用于从文本字符串的中间位置提取指定数量的字符。
    • 语法:=MID(文本, 开始位置, 字符数)
    • 示例:=MID("Excel Functions", 7, 9)将返回"Functions"。
  5. FIND和SEARCH函数(查找文本位置):

    • FIND函数和SEARCH函数用于查找一个文本字符串在另一个文本字符串中的位置。
    • FIND函数区分大小写,而SEARCH函数不区分大小写。
    • 语法:=FIND(要查找的文本, 在文本中查找的文本, [起始位置])=SEARCH(要查找的文本, 在文本中查找的文本, [起始位置])
    • 示例:=FIND("l", "Hello", 3)将返回值3,因为第三个位置的字符是"l"。
  6. SUBSTITUTE函数(替换文本):

    • SUBSTITUTE函数用于在文本字符串中替换指定的文本。
    • 语法:=SUBSTITUTE(原文本, 要替换的文本, 替换为的文本, [替换次数])
    • 示例:=SUBSTITUTE("Excel is great", "Excel", "Spreadsheets")将替换"Excel"为"Spreadsheets",返回"Spreadsheets is great"。
  7. LOWER、UPPER和PROPER函数(文本大小写转换):

    • LOWER函数将文本字符串中的所有字符转换为小写。
    • UPPER函数将文本字符串中的所有字符转换为大写。
    • PROPER函数将文本字符串中的每个单词的首字母转换为大写,其余字母转换为小写。
    • 语法:=LOWER(文本)=UPPER(文本)=PROPER(文本)
    • 示例:=UPPER("excel")将返回"EXCEL"。
  8. TRIM函数(删除文本中的多余空格):

    • TRIM函数用于删除文本字符串中多余的空格,只保留单词之间的一个空格。
    • 语法:=TRIM(文本)
    • 示例:=TRIM(" Excel Functions ")将返回"Excel Functions"。

2.4 日期与时间函数

  1. TODAY函数(当前日期):

    • TODAY函数用于返回当前日期。
    • 语法:=TODAY()
    • 示例:=TODAY()将返回当前日期,如"2023-09-10"。
  2. NOW函数(当前日期和时间):

    • NOW函数用于返回当前日期和时间。
    • 语法:=NOW()
    • 示例:=NOW()将返回当前日期和时间,如"2023-09-10 14:30:00"。
  3. DATE函数(创建日期):

    • DATE函数用于根据给定的年、月和日创建日期。
    • 语法:=DATE(年, 月, 日)
    • 示例:=DATE(2023, 9, 10)将返回日期"2023-09-10"。
  4. TIME函数(创建时间):

    • TIME函数用于根据给定的小时、分钟和秒创建时间。
    • 语法:=TIME(小时, 分钟, 秒)
    • 示例:=TIME(14, 30, 0)将返回时间"14:30:00"。
  5. DATEDIF函数(计算日期差异):

    • DATEDIF函数用于计算两个日期之间的差异,可以计算年、月、日等。
    • 语法:=DATEDIF(开始日期, 结束日期, 单位)
    • 示例:=DATEDIF(A1, A2, "y")将计算A1和A2之间的年份差异。
  6. YEAR、MONTH和DAY函数(提取日期的各个部分):

    • YEAR函数用于提取日期的年份部分。
    • MONTH函数用于提取日期的月份部分。
    • DAY函数用于提取日期的日部分。
    • 语法:=YEAR(日期), =MONTH(日期), =DAY(日期)
    • 示例:=YEAR(A1), =MONTH(A1), =DAY(A1)将分别提取A1单元格中日期的年、月和日。
  7. HOUR、MINUTE和SECOND函数(提取时间的各个部分):

    • HOUR函数用于提取时间的小时部分。
    • MINUTE函数用于提取时间的分钟部分。
    • SECOND函数用于提取时间的秒部分。
    • 语法:=HOUR(时间), =MINUTE(时间), =SECOND(时间)
    • 示例:=HOUR(B1), =MINUTE(B1), =SECOND(B1)将分别提取B1单元格中时间的小时、分钟和秒。
  8. TEXT函数(格式化日期和时间):

    • TEXT函数用于将日期和时间以自定义格式显示。
    • 语法:=TEXT(日期或时间, "自定义格式")
    • 示例:=TEXT(A1, "yyyy年mm月dd日")将以"2023年09月10日"的格式显示A1中的日期

2.5 逻辑函数

  1. IF函数(条件函数的基础):

    • IF函数用于根据指定条件返回不同的值。
    • 语法:=IF(条件, 如果条件为真返回的值, 如果条件为假返回的值)
    • 示例:=IF(A1>10, "大于10", "不大于10")会根据A1的值返回不同的结果。
  2. AND函数(逻辑与):

    • AND函数用于判断多个条件是否同时成立,只有当所有条件都为真时才返回真。
    • 语法:=AND(条件1, 条件2, ...)
    • 示例:=AND(A1>5, B1<10)只有当A1大于5且B1小于10时才返回真。
  3. OR函数(逻辑或):

    • OR函数用于判断多个条件是否至少有一个成立,只要有一个条件为真就返回真。
    • 语法:=OR(条件1, 条件2, ...)
    • 示例:=OR(A1>5, B1>10)只要A1大于5或B1大于10,就会返回真。
  4. NOT函数(逻辑非):

    • NOT函数用于取反一个逻辑值,将真变为假,将假变为真。
    • 语法:=NOT(逻辑值)
    • 示例:=NOT(A1>5)将取反A1是否大于5的判断。
  5. IFERROR函数(处理错误):

    • IFERROR函数用于检查某个公式是否返回错误,并根据结果返回指定值。
    • 语法:=IFERROR(要检查的公式, 如果错误返回的值)
    • 示例:=IFERROR(A1/B1, "除数不能为零")会在A1/B1产生错误时返回指定的错误消息。
  6. IFNA函数(处理#N/A错误):

    • IFNA函数用于检查某个公式是否返回#N/A错误,并根据结果返回指定值。
    • 语法:=IFNA(要检查的公式, 如果#N/A返回的值)
    • 示例:=IFNA(VLOOKUP(A1, B1:C10, 2, FALSE), "未找到")会在VLOOKUP返回#N/A错误时返回指定的消息。
  7. XOR函数(逻辑异或):

    • XOR函数用于判断多个条件是否仅有一个条件成立,只有一个条件为真时才返回真。
    • 语法:=XOR(条件1, 条件2, ...)
    • 示例:=XOR(A1>5, B1>10)只有A1大于5或B1大于10中仅有一个条件成立时才返回真。
  8. 逻辑测试函数(ISEMPTY、ISNUMBER、ISTEXT等):

    • Excel提供了一系列逻辑测试函数,用于测试单元格是否为空、是否包含数字、是否包含文本等。
    • 例如,=ISNUMBER(A1)用于测试A1单元格是否包含数字。

2.6 数组常量及运算

在Excel中,数组常量和数组运算是用于处理多个数值或数据集的重要功能。它们允许您执行复杂的计算和分析,而无需使用单个单元格引用。以下是有关Excel中数组常量和数组运算的介绍:

数组常量:

数组常量是一组数值、文本或逻辑值,按照特定的结构排列在一起。它们可以直接输入到公式中,而不必引用单个单元格。在Excel中,数组常量通常使用大括号 {} 括起来,每个元素之间用分号 ; 或逗号 , 分隔。

例如,以下是包含数组常量的示例:

数组运算:

在Excel中,您可以使用数组运算来执行一系列对整个数组或数组范围的操作。数组运算可以同时处理多个值,而不需要使用循环或多个单元格引用。以下是一些常见的数组运算:

  1. 数组求和:

    • 使用SUM函数可以对数组中的所有值进行求和。
    • 示例:=SUM({1, 2, 3, 4, 5})将返回15。
  2. 数组平均值:

    • 使用AVERAGE函数可以计算数组中的所有值的平均值。
    • 示例:=AVERAGE({1, 2, 3, 4, 5})将返回3。
  3. 数组最大值和最小值:

    • 使用MAXMIN函数可以分别找出数组中的最大值和最小值。
    • 示例:=MAX({1, 2, 3, 4, 5})将返回5,=MIN({1, 2, 3, 4, 5})将返回1。
  4. 数组排序:

    • 使用SORT函数可以对数组中的值进行升序或降序排序。
    • 示例:=SORT({5, 1, 4, 2, 3}, 1, TRUE)将返回升序排序后的数组。
  5. 数组过滤:

    • 使用FILTER函数可以根据条件筛选数组中的值。
    • 示例:=FILTER({1, 2, 3, 4, 5}, {TRUE, FALSE, TRUE, TRUE, FALSE})将返回{1, 3, 4},因为对应条件为TRUE的值被筛选出来。
  6. 矩阵运算:

    • Excel支持矩阵运算,包括矩阵乘法、矩阵加法等。
    • 示例:=MMULT({{1, 2}, {3, 4}}, {{5, 6}, {7, 8}})将进行矩阵乘法运算。

2.7 常用数组函数

  1. OFFSET函数:

    • OFFSET函数用于根据指定的起始单元格引用来偏移指定的行数和列数,然后返回目标单元格的引用。
    • 语法:=OFFSET(起始单元格, 行偏移, 列偏移, [行数], [列数])
    • 例子:=OFFSET(A1, 2, 1)将返回A1下方2行、右侧1列的单元格引用。
  2. CHOOSE函数:

    • CHOOSE函数用于从多个选项中选择一个值,根据指定的索引号。
    • 语法:=CHOOSE(索引号, 选项1, 选项2, ...)
    • 例子:=CHOOSE(3, "苹果", "香蕉", "橙子", "葡萄")将返回"橙子",因为它对应于索引号3。
  3. TRANSPOSE函数:

    • TRANSPOSE函数用于将行转换为列,或将列转换为行,重新排列数据。
    • 语法:=TRANSPOSE(范围)
    • 例子:=TRANSPOSE(A1:D1)将A1到D1的行数据转换为列。
  4. FREQUENCY函数:

    • FREQUENCY函数用于计算数据集中各数值出现的频率分布。
    • 语法:=FREQUENCY(数据范围, 分组范围)
    • 例子:=FREQUENCY(A1:A10, B1:B5)将计算A1:A10中的数值在B1:B5分组范围内的频率。
  5. SMALL和LARGE函数:

    • SMALL函数用于返回数据集中的第k个最小值。
    • LARGE函数用于返回数据集中的第k个最大值。
    • 语法:=SMALL(数据范围, k)=LARGE(数据范围, k)
    • 例子:=SMALL(C1:C10, 3)将返回C1:C10中的第三个最小值。
  6. PERCENTILE.INC函数:

    • PERCENTILE.INC函数用于计算数据集中的指定百分位数。
    • 语法:=PERCENTILE.INC(数据范围, 百分位数)
    • 例子:=PERCENTILE.INC(D1:D20, 0.75)将返回D1:D20中的第75%百分位数。
  7. SORT函数:

    • SORT函数用于按指定顺序对数据范围进行排序。
    • 语法:=SORT(数据范围, [排序方式], [按列], [按顺序], [自定义列表])
    • 例子:=SORT(E1:E10, 1, 1)将按升序对E1:E10进行排序。

3 vba篇

3.1 录制宏

宏录制

3.2 利用chatgpt改造录制的宏

将刚刚录制成功的宏已经生成了代码,复制代码到chatgpt,让他帮我们改造一下这个代码,如下所示。

指令是【帮我把这个代码改造一下,让其能够循环格式刷后面的行

检查一下chatgpt生成的代码,确实能够满足需求,循环刷后面的行。

生成的代码复制回刚刚的excel的代码编辑器中覆盖原代码。

这样这个宏已经能够使用了。

3.3 按钮/窗体

 想为刚刚的宏添加一个按钮:

  1. 打开 Excel 并确保 "开发者" 选项卡可见。如果您不看到 "开发者" 选项卡,请执行以下步骤以启用它:

    a. 在 Excel 中,点击 "文件"。 b. 选择 "选项"。 c. 在 "Excel 选项" 对话框中,点击 "自定义功能区"。 d. 在右侧的 "主选项卡" 区域,勾选 "开发者"。 e. 点击 "确定"。

  2. 在 "开发者" 选项卡中,找到 "插入" 控件组。

  3. 在 "插入" 控件组中,选择 "按钮(ActiveX 控件)"。您会看到一个十字形的光标。

  4. 在工作表上单击并拖动以创建按钮的大小和位置。

  5. 在创建按钮后,会弹出 "按钮向导" 对话框。在 "选择现有宏" 选项中,选择您要与按钮关联的宏。如果要创建新的宏,请选择 "新建" 并按照向导的指示进行操作。

  6. 点击 "完成"。

现在,已经在工作表上创建了一个按钮,并将其与所选的宏相关联。每当您单击该按钮,相关的宏将执行。如果您需要调整按钮的外观或其他属性,可以右键单击按钮并选择 "属性" 以进行进一步设置。

我们来试一试刚刚这一套组合拳下来实现了什么功能。

宏演示

3.4 自定义函数

使用 VBA(Visual Basic for Applications)自定义函数是在 Microsoft Excel 中添加自定义功能的一种强大方法。自定义函数允许您执行各种计算、数据处理和自动化任务,并将这些功能嵌入到 Excel 工作表中,以便稍后使用。下面是创建和使用 VBA 自定义函数的基本步骤:

1. 打开 Excel 和 VBA 编辑器: 打开您的 Excel 工作簿,然后按 ALT + F11 键,以打开 VBA 编辑器。

2. 在 VBA 编辑器中插入一个新的模块: 在 VBA 编辑器的左侧 "项目资源管理器" 窗格中,展开您的工作簿项目,然后右键单击 "Microsoft Excel 对象",选择 "插入" > "模块"。这将创建一个新的模块,您可以在其中编写自定义函数。

3. 编写自定义函数: 在模块中,您可以编写您的自定义函数。自定义函数的基本结构如下:

Function 函数名称(参数1 As 数据类型, 参数2 As 数据类型, ...) As 返回值数据类型' 函数的主体代码' 使用参数执行计算' 将结果赋给函数名称并使用 "Return" 语句返回
End Function

下面是一个示例自定义函数,它将两个数相加并返回结果:

Function AddNumbers(Number1 As Double, Number2 As Double) As DoubleAddNumbers = Number1 + Number2
End Function

4. 使用自定义函数: 现在您已经创建了自定义函数,可以在 Excel 工作表中使用它。在任何单元格中,可以输入函数名称,并传递所需的参数。例如:

  • 在单元格 A1 中输入 =AddNumbers(5, 7),然后按 Enter。单元格 A1 将显示 12,这是自定义函数的结果。

5. 调试和修改自定义函数(可选): 如果您的自定义函数不如预期工作,您可以返回 VBA 编辑器并对其进行调试和修改。您可以使用 VBA 编辑器的调试工具来跟踪代码执行并检查问题。

6. 保存工作簿: 请确保保存包含自定义函数的 Excel 工作簿,以便在将来打开时可以继续使用自定义函数。

自己尝试一下,编写一个宏,实现统计不同的值出现的频率:

代码:

Function 统计不同值个数(ByVal 数据区域 As Range) As VariantDim 数据集 As ObjectSet 数据集 = CreateObject("Scripting.Dictionary")Dim 单元格 As RangeDim 值 As Variant' 遍历数据区域并将值添加到字典For Each 单元格 In 数据区域值 = 单元格.ValueIf Not 数据集.Exists(值) Then数据集.Add 值, 1Else数据集(值) = 数据集(值) + 1End IfNext 单元格' 创建一个数组来保存结果Dim 结果数组() As VariantReDim 结果数组(1 To 数据集.Count, 1 To 2)Dim 行号 As Integer行号 = 1For Each 值 In 数据集.Keys结果数组(行号, 1) = 值结果数组(行号, 2) = 数据集(值)行号 = 行号 + 1Next 值统计不同值个数 = 结果数组
End Function

功能演示:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ComfyUI 安装

背景&#xff1a; stable diffussion XL最先适配&#xff0c;专业性强的SD操作界面 安装步骤&#xff1a; git clone GitHub - comfyanonymous/ComfyUI: A powerful and modular stable diffusion GUI with a graph/nodes interface. 1、pip install torch torchvision torc…

【CUDA OUT OF MEMORY】【Pytorch】计算图与CUDA OOM

计算图与CUDA OOM 在实践过程中多次碰到了CUDA OOM的问题&#xff0c;有时候这个问题是很好解决的&#xff0c;有时候DEBUG一整天还是头皮发麻。 最近实践对由于计算图积累导致CUDA OOM有一点新的看法&#xff0c;写下来记录一下。包括对计算图的一些看法和一个由于计算图引发…

【小沐学NLP】Python使用NLTK库的入门教程

文章目录 1、简介2、安装2.1 安装nltk库2.2 安装nltk语料库 3、测试3.1 分句分词3.2 停用词过滤3.3 词干提取3.4 词形/词干还原3.5 同义词与反义词3.6 语义相关性3.7 词性标注3.8 命名实体识别3.9 Text对象3.10 文本分类3.11 其他分类器3.12 数据清洗 结语 1、简介 NLTK - 自然…

python的包管理

要在 mypackage 包外使用 mypackage 包里的 speak.py 文件以及 newpackage 包里的 jump.py 文件&#xff0c;你需要确保以下几个步骤&#xff1a; 确保目录结构正确&#xff0c;如下所示&#xff1a; mypackage/__init__.pyspeak.pynewpackage/__init__.pyjump.py在 speak.py…

介绍OpenCV

OpenCV是一个开源计算机视觉库&#xff0c;可用于各种任务&#xff0c;如物体识别、人脸识别、运动跟踪、图像处理和视频处理等。它最初由英特尔公司开发&#xff0c;目前由跨学科开发人员社区维护和支持。OpenCV可以在多个平台上运行&#xff0c;包括Windows、Linux、Android和…

leetcode 43.字符串相乘

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;字符串相乘 思路&#xff1a; 代码&#xff1a; class Solution { public:string multiply(string num1, string num2) {if (num1 "0" || num2 "0") {return "0";}/*0 1 2 下标1 2…

Python中的Numpy向量计算(R与Python系列第三篇)

目录 一、什么是Numpy? 二、如何导入NumPy? 三、生成NumPy数组 3.1利用序列生成 3.2使用特定函数生成NumPy数组 &#xff08;1&#xff09;使用np.arange() &#xff08;2&#xff09;使用np.linspace() 四、NumPy数组的其他常用函数 &#xff08;1&#xff09;np.z…

C++斩题录|递归专题 | leetcode50. Pow(x, n)

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

机器学习---决策树分类代码

1. 计算数据集的香农熵 from numpy import * import numpy as np import pandas as pd from math import log import operator #计算数据集的香农熵 def calcShannonEnt(dataSet): numEntrieslen(dataSet) labelCounts{} #给所有可能分类创建字典 for featVec …

初识Java 7-1 多态

目录 向上转型 难点 方法调用绑定 产生正确的行为 可扩展性 陷阱&#xff1a;“重写”private方法 陷阱&#xff1a;字段与静态方法 构造器和多态 构造器的调用顺序 继承和清理 构造器内部的多态方法行为 协变返回类型 使用继承的设计 替换和扩展 向下转型和反射…

Unity中Shader的变体shader_feature

文章目录 前言一、变体的类型1、multi_compile —— 无论如何都会被编译的变体2、shader_feature —— 通过材质的使用情况来决定是否编译的变体 二、使用 shader_feature 来控制 shader 效果的变化1、首先在属性面板暴露一个开关属性&#xff0c;用于配合shader_feature来控制…

Java(四)数组与类和对象

Java&#xff08;四&#xff09;数组与类和对象 六、数组&#xff08;非常重要&#xff09;1.定义2.遍历2.1遍历方法2.2Arrays方法 3.二维数组数组小总结 七、类和对象1. 定义&#xff08;重要&#xff09;1.1 类1.2 对象 2. this关键字&#xff08;重要&#xff09;2.1 特点 3…

lv4 嵌入式开发-4 标准IO的读写(二进制方式)

目录 1 标准I/O – 按对象读写 2 标准I/O – 小结 3 标准I/O – 思考和练习 文本文件和二进制的区别&#xff1a; 存储的格式不同&#xff1a;文本文件只能存储文本。除了文本都是二进制文件。 补充计算机内码概念&#xff1a;文本符号在计算机内部的编码&#xff08;计算…

肖sir__设计测试用例方法之正交表08_(黑盒测试)

设计测试用例方法之正交 一、正交表定义 正交试验设计法&#xff0c;是从大量的试验点中挑选出适量的、有代表性的点&#xff0c;应用依据迦罗瓦理论导出的“正交表”&#xff0c;合理的安排试验的一种科学的试验设计方法。 二、 正交常用的术语 指标&#xff1a;通常把判断试验…

OpenCV 12(图像直方图)

一、图像直方图 直方图可以让你了解总体的图像像素强度分布&#xff0c;其X轴为像素值&#xff08;一般范围为0~255&#xff09;&#xff0c;在Y轴上为图像中具有该像素值像素数。 - 横坐标: 图像中各个像素点的灰度级. - 纵坐标: 具有该灰度级的像素个数. 画出上图的直方图: …

【实践篇】Redis最强Java客户端(三)之Redisson 7种分布式锁使用指南

文章目录 0. 前言1. Redisson 7种分布式锁使用指南1.1 简单锁&#xff1a;1.2 公平锁&#xff1a;1.3 可重入锁&#xff1a;1.4 红锁&#xff1a;1.5 读写锁&#xff1a;1.6 信号量&#xff1a;1.7 闭锁&#xff1a; 2. Spring boot 集成Redisson 验证分布式锁3. 参考资料4. 源…

IntelliJ IDEA远程调试:使用IDEA Remote Debug进行高效调试的指南

引言 在开发分布式系统时&#xff0c;调试是一个重要但复杂的环节。开发者通常需要跨越多个服务、模块和线程来追踪和解决问题。在没有远程调试的情况下&#xff0c;许多开发者会在代码中添加各种日志语句&#xff0c;然后重新部署和上线来调试。这种方法不仅费时&#xff0c;…

Hive_Hive统计指令analyze table和 describe table

之前在公司内部经常会看到表的元信息的一些统计信息&#xff0c;当时非常好奇是如何做实现的。 现在发现这些信息主要是基于 analyze table 去做统计的&#xff0c;分享给大家 实现的效果某一个表中每个列的空值数量&#xff0c;重复值数量等&#xff0c;平均长度 具体的指令…

华为数据管理——《华为数据之道》

数据分析与开发 元数据是描述数据的数据&#xff0c;用于打破业务和IT之间的语言障碍&#xff0c;帮助业务更好地理解数据。 元数据是数据中台的重要的基础设施&#xff0c;元数据治理贯彻数据产生、加工、消费的全过程&#xff0c;沉淀了数据资产&#xff0c;搭建了技术和业务…

【C++模拟实现】手撕AVL树

【C模拟实现】手撕AVL树 目录 【C模拟实现】手撕AVL树AVL树的介绍&#xff08;百度百科&#xff09;AVL树insert函数的实现代码验证是否为AVL树AVL树模拟实现的要点易忘点AVL树的旋转思路 作者&#xff1a;爱写代码的刚子 时间&#xff1a;2023.9.10 前言&#xff1a;本篇博客将…