数组运算6(方向不同的一维数组的运算)

今天来说数组运算的最后一种运算方式,方向不同的一维数组间的运算,也就是横向一维数组与纵向一维数组的运算。

-01-

运算规则

如下图所示,是一维纵向数组与横向数组的连接运算。它们运算的结果是一个二维数组,二维数组的行数取一维纵向数组的行数,列数取一维横向数组的列数。二维数组的元素个数是2个一维数组元素个数的乘积。下面这个例子中二维数组有9个元素,是横向数组3个元素与纵向数组3个元素的乘积。

我们知道了它们的运算结果,那么它们的运算方式是怎么样的呢?简单来说可以看作是交叉运算的,也就是行列交叉。实际上是第一个数组的第1个元素分别与第二个数组的所有元素一一运算,然后第一个数组的第2个元素分别与第二个数组的所有元素一一运算,以此类推。

第一数组的第1个元素1,分别与第二个数组的所有元素4,5,6一一连接运算,形成14,15,15。然后2与4,5,6运算,形成24,25,26···。

运算过程其实就是这样的,就看你怎么理解了。下面再提供一种理解方式,也是我们之前提到过的方法。

我们已经知道了运算结果的尺寸大小,所以可以把纵向一维数组{1;2;3}扩展到和结果一样的尺寸,如下图红色1部分所示;同样地,横向一维数组{4,5,6}也扩展成和结果一样的尺寸,如下图红色2部分所示。然后就相当于对2个二维数组进行运算,这样就比较容易对应了。

-02-

具体应用

1.根据姓名和科目查询出对应的成绩。

下图左表是个成绩表,右表是查询表。姓名和科目那里我设置了数据验证,可以通过下拉三角对姓名和科目进行选择,这样可以动态查询出某人某科的成绩。而且左表设置了条件格式,可以和右表查询出的成绩进行对比。

当姓名选择小树,科目选择数学后,自动查询出成绩为81。而且左表也自动标记出小树的数学成绩为81。在G12单元格中输入公式=MAX((G10=A11:A15)*(G11=B10:D10)*B11:D15),按ctrl+shift+enter三键。

G10=A11:A15这部分是将A列中的姓名与G10单元格的姓名比较,相等的返回true,否则返回false,形成了一维纵向数组。

同样地,G11=B10:D10这部分是将所有的科目与G11单元格的科目比较,相等的返回true,否则返回false,形成了一维横向数组。

(G10=A11:A15)*(G11=B10:D10)这部分就是将比较后的一维纵向数组与横向数组进行相乘运算,形成了二维数组,结果如下图。这样就把我们需要查询的姓名和科目的位置找到了。

然后再用上面的二维数组乘以所有成绩,就得到了我们要找的成绩,也就是这部分(G10=A11:A15)*(G11=B10:D10)*B11:D15。这样不满足查询条件的显示为0,满足的显示出她的成绩。此时还是个二维数组,所以最后用max取最大值,或者也可以用sum求和。

最后说下左表中条件格式的公式=(MATCH($G$10,$A$11:$A$15,)=ROW(B11)-10)*(MATCH($G$11,$B$10:$D$10,)=COLUMN(B11)-1)

文件链接:

https://pan.baidu.com/s/1MLhgxnmwKA-Tj5KHgfus8A

提取码:r5al

如果对你有所帮助或启发,请打赏或分享一下,你的支持就是我最大的动力!

此公众号没有留言功能,如果有问题可以发到邮箱715704566@qq.com,有时间会回复的。

关注解锁更多函数的用法

(0)

相关推荐

  • 看图学NumPy:掌握n维数组基础知识点,看这一篇就够了

    NumPy是Python的最重要的扩展程序库之一,也是入门机器学习编程的必备工具.然而对初学者来说,NumPy的大量运算方法非常难记. 最近,国外有位程序员讲NumPy的基本运算以图解的方式写下来,让 ...

  • 学会就能效率翻倍的数组公式,到底怎么用?

    可乐的数据分析之路 1.什么是数组公式 在研究数组公式前,先要明确什么是数组? 数组嘛,可以理解为若干相同数据的组合 比如{1,2,3,4}是数值组合在一起,{"c";" ...

  • Excel教程:遇到excel数组公式就懵逼?别怕,今天就给你说明白了!

    回复[目录]学习113篇Excel教程 全套Excel视频教程,微信扫码观看 编按: 哈喽,大家好!今天要给大家介绍的内容,对于学习excel的小伙伴来说,绝对不陌生,没错,它就是数组.估计大家还从未 ...

  • 数组运算2(方向相同的一维数组的运算)

    今天来说方向相同的一维数组和一维数组的运算,也就是要么都是横向,要么都是纵向. -01- 运算规则 1.横向一维数组的运算 如下图所示,将A1:D1这个区域和A2:D2这个区域相加,结果输出到A4:D ...

  • 数组运算5(一维数组与二维数组的运算)

    之前我们说了一维数组与一维数组的运算,二维数组与二维数组的运算,今天来说一维数组与二维数组的运算. -01- 运算规则 1.行数或列数相同的一维数组与二维数组的运算 如下图所示,是一维区域与二维区域的 ...

  • 数组运算1(一维数组与单值的运算)

    昨天说了数组的基础知识,今天来说说数组的运算规则.像单值运算一样,数组也可以进行数学运算,比较运算和文本连接运算. -01- 运算规则 1.一维横向数组与单值的运算 如下图所示,在E1单元格中输入公式 ...

  • java学习——24.一维数组

    之前的基本数据类型变量一次只能存储一个不可分解的简单数据,比如int i:一次只能存储一个整数.但是在实际的应用当中,可能会需要一次存储很多个整数,比如之前有一个例题,Fibonicci数列,之前做时 ...

  • 【连载】(一维数组的简单应用)——乐创DIY C语言讲义——5.3节

    5.3 一维数组的简单应用 前面我们已经讲述了如何去定义一个一维数组,并且对所定义好的一维数组进行元素的读写和数组的遍历,本小节专门再来讲述一些数组的具体应用,使各位读者可以更好地去掌握一维数组. 首 ...

  • 【连载】(操作一维数组)——乐创DIY C语言讲义——5.2节

    5.2 一维数组的操作 一维数组在被定义好之后,就可以在程序中去使用它了,一般一个数组的使用有元素读取,元素赋值,元素遍历等操作.说到底无非就是数组定义及初始化,元素的读写,和数组的读写这几种方式.接 ...

  • 【连载】(初识一维数组)——乐创DIY C语言讲义——5.1节

    5.1初识一维数组 前面章节中,我们一起学习了一些简单的数据类型,它们包括浮点类型和整数类型两大类.通过使用关键词可以分别定义不同含义的单个变量.比如,小明这次考试的数学成绩是30分,那么我们可以定义 ...

  • Excel一维数组转二维数组的方法

    excel使用技巧大全在前面我们已经讲过,读取数组中的数据都是连续的.但有时,一些数据是不连续的.这时我们应该怎么办呢? 例如,许多格式相同的sheet要合并在一起.我们想看每一个sheet的数据.此 ...

  • 一维数组(八)

    一.概念 存储同一种数据类型的多个元素的容器 二.格式 1.数据类型[] 数据名;--int []a:定义一个int类型的数组a变量 2.数据类型 数据名[];--int a []:定义一个int类型 ...