数组入门

数组,函数进阶门槛,但是对于很多人是很难跨的一道坎。想写数组很久了,虽然自己已轻车熟路,但是让别人听懂却不是一件容易的事,今日路上偶有一感,或许能带大家一起入个门!
先抛开那些无聊的概念,我们直接通过一个大家经常看到的去重计数这个案例来一步一步带大家了解数组!
案例说明:统计有几个人?
这个案例相比大家经常看到,再眼熟不过,我们就从他来聊聊数组吧!
分析这个公式,可以带大家学习很多数组知识!
普通的COUNTIF函数
先不考虑SUM(1/)部分单独说COUNTIF部分
以下是统计王五出现几次的公式,大家肯定都能看懂!
这个和我们上面的COUNTIF有什么不同?第二参数!
第二参数由一个单元格变成了多个!对就是这点,这样很多人就看不懂了
所以下面我们来给大家拆分一下:
依次统计每个单元格中姓名出现的次数,这个大家肯定也能看懂!
然后我们看一下  COUNTIF(A2:A10,A2:A10)
发现了什么,COUNTIF(A2:A10,A2:A10)的结果和我们依次统计的结果一样!
其实 COUNTIF(A2:A10,A2:A10)相当于在内存中依次完成了我们9个普通公式的工作,只是他在内存中操作,我们看不到,所以大家才觉得难以理解!
我们把SUM加进来,完成这个案例的分析
公式:=1/COUNTIF(A2:A10,A2:A10)
王五出现了三次,那么就是变成三个1/3 ,如何我们把三个1/3相加或者求和
肯定是1,如此就实现了去重的功能!

其实数组并不难,问题是大家习惯了普通公式的思考模式,一时难以突破这种思维方式!
现在我们可以来说说相关的一些东西了!把大家之前的相关问题,一起来一套Q&A
下面的文字内容比较多,对数组特别感兴趣的同学可以看看!
写在前面,Excel属于实操技能,学习中追求理论的人并不多,且官方对很多目前大家常见的叫法并无定义和解释,所以,我们可以合适的基础上大胆“推测”,慢慢求证,“路漫漫其修远兮”~~
Q1:我刚学习Excel公式,经常听说“三键”录入,具体是什么,怎么用?

A:“三键”是Exceler们平时对数组公式录入方式的一种简洁的叫法。这三个键分别是Ctrl、ShiftEnter(回车),一般表示方式为Ctrl+Shift+Enter,很多时候也会进一步简写成:“CSE”,要能看懂!但是365中加入动态数组扩展,三键可能会成为历史!在结尾补充相关365数组问题!
具体怎么用? 比如我们上面的=SUM(1/COUNTIF(A2:A10,A2:A10)) 这个公式,我们先鼠标点击进去公式,然后左手按住Ctrl和Shift,右手按下Enter(回车),判断是否成功录入,主要看两遍是否有“{}”,“{}”为正确录入自动添加,非手动添加
很多新手初见数组公式,都以为“{}”是自己手工添加的,然后自己也做了,却始终得不到结果!
Q2:天天听说数组公式,但是到底什么才是数组公式?
A:什么是数组公式?10年前一群大佬有讨论过,不过并无定论。小编根据经验及目前相关资料说一下!
数组相关的称呼很多,有的界限都很模糊,比如我们日常说的“数组”和“数组公式”,可能都指的是同一个东西,但是他们是不同的!
数组公式:本质只是区别普通公式的一个称呼,其核心是多重计算,不可使用三键(cse)来判断一个公式是否是数组公式,按下三键只是告诉电脑,“老子要进行多重计算”,仅此而已!大家最熟悉的SUMPRODUCT是数组公式,但是无需三键!“{}”也只是数组公式的一种标识而已。
Q3:有时候还听到高手说什么"区域数组公式",“内存数组”,“常量数组”,“命名数组”等等,能简单说一下吗?
首先这个概念,目前官方是没有定义的,但是实际确实大家都这么叫,也很少有人去纠结定义,好像大家都心领神会,“对的,说的就是那个”,差不多实际就是这样!所以小编尝试这个给大家说一下,有什么欠缺的地方,欢迎交流和补充!
区域数组公式:选定区域,按下三键,区域中的多个单元格完全一致,也就是一个公式,所以有的时候说区域数组公式要比普通公式更快,一次计算完成,区域数组大部分时候利用的是交叉引用说得出结果!
内存数组:之前大家讨论过,更多的是“在内存中”-废话!能够作为一个整体直接参与下一步计算(这个是他最大的特征)
常量数组:使用比较多,我们前面教程也多次提到过。一般使用一对大括号+内容的方式,
比如:
{1,2,3} 表示一个水平数组,一行三列。
{1;2;3} 表示一个垂直数组,三行一列。
上面的都是一维的常量数组!
逗号表示水平 横向 列,分号表示垂直 纵向 行
以上这点对于数组的构建非常重要,尤其对于MMULT这类函数和进阶数组公式!
动画演示:F9得到计算结果!
常量数组除了一维的,常用的还是二维的,同时常量数组最多二维!
二维数组的写法是先行后列,如果你先分号后逗号,是会报错的!
下面是一个三行两列的二维数组,2个分号+1 就是3行,1个逗号+1 就是两列!
命名数组:一般听的不多,应该是部分人的叫法,只是把常量数组通过定义名称使用!
比如:
这里正好补充一下365中的扩展数组,图中第一季度能显示出来且也没有大括号,而且大家可以看到一个边框线,这个就是365中的数组扩展了,在一个单元格输入数组,他会根据数组的大小,自动已公式录入单元格为起点进行行列扩展!无需三键!
数组其实只是那层“窗户纸”,捅破了进来的人,感觉不过尔尔,但是问题在捅破需要花费点时间去理解和使用!
今天就到这里,希望能给大家学习带来一起启发!
(0)

相关推荐

  • countif函数很有用,各种用法学起来!

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.今天来分享下countif函数的一些用法.countif函数是一个强大的统计函数,在工作中有着广泛的应用. 它主要用于统计满足某个条件的单元格数量 ...

  • VLOOKUP函数之另类用法,让领导对你刮目相看

    相信经常使用EXCEL的小伙伴们,对VLOOKUP函数并不陌生.这个函数是我们最常用的几个函数之一.相信,小伙伴们,也经常会用到这个函数.这里,咱们玩点其他的. 首先,给大家准备了源数据.如图: &l ...

  • Excel数组入门之计算规则

    问题:{1,2,3;4,5,6} 是几行几列? 如果这个问题,你能回答出来,那么说明你对水平和垂直数组有了清晰的认识.如果没有也没有关系,下面我们就带大家先认识一下,然后再谈计算规则! 常量数组写法 ...

  • 【原创教程】houdini17 Array数组入门_vop第2章

    --  微资讯 · 微课程  -- 利用零碎时间,走上超神之路! 教程编号 CGhunter_houdini_04_002_001_arrayintro(houdin vop卷第2章节) 教程导读 我 ...

  • VBA数组 | 从入门到精通(4)- 常用方法

    今天我们来聊一下 关于数组的常用方法,前面三篇见文末! 很多新手容易犯这样的错误,把一维数组写到一列中,发现并不行! 01 |  数组转置 知识点: 1.Array的结果对应的是工作表中的一行区域,如 ...

  • java极全入门基础笔记之数组篇

      数组的概念 在内存中开辟的一串连续的空间,用来存储相同数据类型的,比如:鞋柜只会放鞋子,衣 柜只会用来放衣服 数组的基本要素 1.标识符(数组名):数组的名称,用来区分不同的数组 2.数组元素:存 ...

  • Go 经典入门系列 11:数组和切片

    欢迎来到 Golang 系列教程的第 11 章.在本章教程中,我们将讨论 Go 语言中的数组和切片. 数组 数组是同一类型元素的集合.例如,整数集合 5,8,9,79,76 形成一个数组.Go 语言中 ...

  • VBA简单入门45:将单元格、数组放进字典,拆分工作表

    字典是一个对象,是一个空间,一个容器. 就如一个碗,可以装水.饭.汤等各种物品,什么东西都可以装,只要能装得下. 一.将整个数组放进字典item,用key来命名.读取 如下图,key为"小李 ...

  • Excel VBA入门(二)数组和字典

    数组和字典也是VBA的常用到数据类型之一.但是我翻了有四五本VBA教程相关的书,里面都没有介绍到字典,数组到是在介绍数据类型时有介绍,而并没有提到字典. 事实上,字典不是VBA内置的类型,它是Wind ...

  • 厨师长教:“8种翻锅基础手法”,厨师入门硬核翻锅教程,快收藏

    厨师长教:“8种翻锅基础手法”,厨师入门硬核翻锅教程,快收藏

  • C语言标准头的使用,C语言入门教程,你我的好帮手

    每个标准库函数都会被声明在一个或多个标准头(standard header)中.这些标准头也包括了 C 语言标准提供的所有宏和类型的定义. 每个标准头都包含一组相关的函数声明.宏和类型定义.例如,数学 ...