字典与数组第七讲:工作表数据计算时为什么要采用数组公式(一)

《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。

这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:字典与数组第七讲:工作表数据计算时为什么要采用数组公式(一)

a3389cebf83635df37093eb90b2d4d0e.jpeg

【分享成果,随喜正能量】无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事情,而不是让烦恼和焦虑,毁掉你本就不多的热情和定力。心可以碎,手不能停,该干什么干什么在崩溃中继续前行,这才是一个成年人的素养。。

第七讲 工作表数据计算时为什么要采用数组公式(一)

今日继续讲解VBA数组与字典解决方案第7讲,在前几讲的数组应用中我们深入地讲解了工作表数组和数组公式,以及数组维数扩展的意义。那么,有的朋友会问了:这么费事,为什么要引入数组公式呢?换句话说,引用数组公式有什么好处呢?在这一节中我要慢慢地给大家讲解.

首先我们回忆一下小时候上学时有过这么一道题:求1 到100 的和。当然也可以是1000、10000 甚至更多。怎么解决这类问题呢?

问题分析:求1 到100 的和,答案是5050,但如果采用Excel计算,你必须要告诉它如何计算,计算从1 到100 的和,实际上就是计算1+2+3+4+……+98+99+100,好了,答案出来了。

1最原始的处理方案

在编辑栏中输入“=sum(1+2+3+4+……+98+99+100)”。相信聪明的你一定对此答案不满意,虽然能得到正确的结果,但很明显不是最好的方法。不仅需要录入的时候小心应对,发费的时间也是不能我们忍受的。

那么有没有更好的办法呢?

2函数公式的利用

要想得到1 到100 的数列,最简单的方法就是使用Row()函数。熟悉Row()函数的朋友一定会恍然大悟:在A1 单元格中输入“=Row()”,使用填充柄填充至A100,看到什么结果?这时每一个单元格中值就是其对应的行数。也就是说Row()表示当前行。

我们先来学习一下ROW()函数;ROW函数:是函数中的一种,作用是返回一个引用的行号。

语法ROW(reference)

参数:Reference 为需要得到其行号的单元格或单元格区域。

特别注意:

1) 如果省略 reference,则假定是对函数 ROW 所在单元格的引用。

2)如果 reference 为一个单元格区域,并且函数 ROW 作为垂直数组输入,则函数 ROW 将 reference 的行号以垂直数组的形式返回。

3) Reference 不能引用多个区域。

13fe877a41a60e0e06aaf8ae0fd6df9b.jpeg

下面我们继续讲解刚才提到的问题,当填充完A1到A100后再求和,求得到了1 到100 的和。

这个方法是不是最好的方法呢?当然不是,我们再看下面方法三

3数组公式的利用

我们可以用Row(1:100)就表示一个数组,其值便是包含第一到第一百行的行号,即1、2、3、……、98、99、100 这些数值,现在我们就把这个数组应用到公式中。

在工作表的任意一个单元格中输入“=sum(Row(1:100))”,然后按Ctrl+Shift+Enter 组合键,你会惊喜的发现,我们要的结果出现了。

79db53bacdce36da31a7726f0665cdd5.jpeg

很容易得出结论:上述的三个方案中第三个是最好的方法。也就是说,引入了数组公式后问题的解决变得非常简单。

今日内容回向:

1 引入数组公式后有什么好处?

2 数组公式是如何使问题变得简单的?

3 你是否理解了row()的含义?

c8f342f4f4db38b9e14ea42a8d1fe305.jpeg

我多年的VBA实践经验,全部浓缩在以下教程中:


41d7022dd6b28ed9a5f5892f71be3a7e.jpeg

3734ed3338047ba3149d13db8b7f217b.jpeg

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

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

相关文章

谷歌地球引擎GEE账户注册的快速、百分百成功方法

本文介绍免费注册谷歌地球引擎(Google Earth Engine,GEE)账户的方便、快捷的最新方法;基于这一方法,只要我们创建一个谷歌Cloud Project,就可以直接访问GEE。 GEE在原本(大概前几年的时候&#…

Redis-缓存穿透,缓存击穿,缓存雪崩

缓存穿透,缓存击穿,缓存雪崩 缓存穿透处理方案解决方案1 缓存空数据解决方案2 布隆过滤器 缓存击穿处理方案解决方案 1 互斥锁解决方案2 逻辑过期 缓存雪崩处理方案解决方案 1 给不同的key的过期时间设置添加一个随机值,降低同一个时段大量ke…

处理机调度的概念,层次联系以及七状态模型

1.基本概念 当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。 这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。 2. 三个层次 1.高级调度(作业调度) 高级调度(作业…

【10】c++设计模式——>依赖倒转原则

关于依赖倒转原则,对应的是两条非常抽象的描述: 1.高层模块不应该依赖低层模块,两个都应该依赖抽象。 2.抽象不应该依赖细节,细节应该依赖抽象。 先用人话解释一下这两句话中的一些抽象概念: 1.高层模块:可…

ROS(5)PX4仿真安装及运行

1、配置,提升下载速度 启动 $ cd clash-for-linux$ sudo bash start.sh$ source /etc/profile.d/clash.sh$ proxy_on 关闭 $ cd clash-for-linux$ sudo bash shutdown.sh$ proxy_off 2、安装PX4开源无人机 git clone https://github.com/PX4/PX4-Autopilot.git…

【软考】系统集成项目管理工程师(六)项目整体管理【6分】

一、 前言 1、项目管理三从四得 2、ITO共性总结 1、上一个过程的输出大部分是下-个过程的输入 2、计划和文件是不一样的 (每个输入都有计划和文件) 3、被批准的变更请求约等于计划 4、在执行和监控过程产生新的变更请求(变更请求包括变什么和怎么变,这是变更请求和…

Spring三大核心组件

Spring架构图 Spring三大核心组件分别为:Core、Beans和Context 1. Core(核心): 思想:Core组件的核心思想是控制反转(IoC)和依赖注入(DI)。它将对象的创建、组装和管理的…

Junit的常用操作

注:本篇文章讲解的是junit5 目录 Juint是什么 Juint需要导入的依赖 Juint常用注解 Junit执行顺序 参数化 断言 测试套件 Juint是什么 Juint 是 Java 的一个单元测试框架. 也是回归测试框架. 使用 Junit 能让我们快速的完成单元测试。 注意:Junit 测试也是程序…

调用gethostbyname实现域名解析(附源码)

VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…

SystemUI导航栏

SystemUI导航栏 1、系统中参数项1.1 相关开关属性2.2 属性设置代码 2、设置中设置“三按钮”导航更新流程2.1 属性资源覆盖叠加2.2 SystemUI导航栏接收改变广播2.3 SystemUI导航栏布局更新2.4 时序图 android13-release 1、系统中参数项 1.1 相关开关属性 设置->系统->…

测试用例的编写(面试常问)

作者:爱塔居 专栏:软件测试 作者简介:不断总结,才能变得更好~踩过的坑,不能再踩~ 文章简介:常见的几个测试用例。 一、淘宝购物车 二、登录页面 三、三角形测试用例 abc结果346普通三角形333等边三角形334…

安装matplotlib_

安装pip 安装matplotlib 安装完毕 导入出现bug......

【LeetCode热题100】--35.搜索插入位置

35.搜索插入位置 使用二分查找&#xff1a; class Solution {public int searchInsert(int[] nums, int target) {int low 0,high nums.length -1;while(low < high){//注意每次循环完都要计算midint mid (low high)/2;if(nums[mid] target){return mid;}if(nums[mid]…

SpringCloudGateway网关中各个过滤器的作用与介绍

文章目录 RemoveCachedBodyFilterAdaptCachedBodyGlobalFilterNettyWriteResponseFilterForwardPathFilterRouteToRequestUrlFilterWebSocketRoutingFilterNettyRoutingFilterForwardRoutingFilterDispatcherHandler 是什么&#xff1f;⭐如何确定最后的路由路径&#xff1f;下…

聊天记录一句一句出现的视频制作,制作抖音聊天记录视频教程

聊天记录情感中视频制作工具是一款专注于将聊天记录转化为抖音视频的工具。它可以将平淡的聊天截图转化为生动有趣的视频&#xff0c;让你的回忆变得更加具有观赏性和情感共鸣。 首先&#xff0c;聊天记录一句一句出现的视频制作功能是该工具的一大特点。通过这个功能&#xf…

LLVM IR 文档 专门解释 LLVM IR

https://llvm.org/docs/LangRef.html#phi-instruction

[C++随想录] 优先级队列的模拟实现

优先级队列的模拟实现 底层结构初始化向下调整 && 向上调整push && poptop && empty && size源码 底层结构 namespace muyu {template <class T, class Continer std::vector<T>, class Compare less<T> >class priority_…

机器学习(监督学习)笔记

目录 总览笔记内容线性回归梯度下降特征缩放多输出线性回归 逻辑回归二分类与逻辑回归分类任务的性能指标&#xff08;召回率&#xff0c;精度&#xff0c;F1分数等&#xff09;支持向量机SVMK近邻朴素贝叶斯分类器朴素贝叶斯分类器进阶多分类逻辑回归二分类神经网络多分类神经…

代码随想录 Day10 栈与队列 LeetCode T239 滑动窗口的最大值 T347 前K个高频元素

简要介绍一下单调队列和优先级队列的不同 元素顺序的处理&#xff1a;单调队列中&#xff0c;元素的顺序是单调的&#xff0c;也就是说&#xff0c;队列中的元素按照特定的单调性&#xff08;递增或递减&#xff09;排列。这种特性使得单调队列在处理一些问题时非常高效&#…

LVGL_基础控件label

LVGL_基础控件label 1、创建一个基础对象 /* 创建一个基础对象 label */ lv_obj_t * label lv_label_create(lv_scr_act()); // 创建一个label部件(对象),他的父对象是活动屏幕对象2、设置显示内容 char * text "www.100ask.net"; // 要显示的文字 /* 展示文…