有a列和b列两个数组,其中只有c24是不同的,请问通过什么函数或vba得到这样的结果?
subaa()
dimi,k
fori1torange(a65536).end(xlup).row
xlen(cells(i,a))
fork1toxstep4
y(range(b1:bamprange(a65536).end(xlup).row),*ampmid(cells(i,a),k,3)amp*)
ify0then
cells(i,c)mid(cells(i,a),k,3)
endif
next
next
endsub
只适合你这样的数据结构。
运行这个程序。
答:二维数组赋值有两种方法,
第一种方法是单元格区域装入二维数组,如:
arrrange(
1.
我们先说一下数组的输入的规则,当前数组2有三个元素,如果输入的话是用逗号进行隔开的。
2.
数组三如果输入的话是要用分号进行隔开的,因为它有三列。
3.
我们输入一个数组五,首先计算出它是由八位元素组成,我们就框选八个单元格。
4.
然后直接输入等号,先输入大括号。
5.
然后上一行的四个数用逗号隔开。
6.
到下一列就用一个分号,后面还是行的话就用逗号。
7.
然后按快捷键controlshift加回车键,就得到我们需要的数组了。
什么是数组公式呢?
数组就是一个具有维度的集合。比如:一维数组、二维数组、多维数组。
excel的数组,就相当于我们数学中的矩阵,一个矩阵内包装有多个元素,元素与元素的不同组合就构成了不同维数的矩阵,表现在excle表格上就n行*m列的一个区域,n和m不同时0就可以了,如下图就是一维,二维,三维数组的不同组合,分别是单行或单列一维数组,多行多列二维,三维数组。
数组输入方法:
使用数组公式,在编辑栏输入完公式以后一定要按下“ctrlshiftenter”组合键,使编辑栏的公式处在“{}”之中。
数组的数据类型
文本、数字、逻辑值、错误值
案例说明:
1.求1到100的和
只用一个函数解决1到100的和,当然也可以是1000、10000甚至更多。讨论具体的数值没有太大意义,此处只是希望通过此例让大家更进一步的了解数组公式的用法。解答:{sum(row(1:100))}问题分析:求1到100的和,答案是5050,但excel必须是你告诉了它正确的方法,它才能知道。计算从1到100的和,实际上就是计算1234……9899100,好了,答案出来了,在编辑栏中输入“=sum(1234……9899100)”。相信聪明的一定对此答案不满意,虽然能得到正确的结果,但很明显是“错误”的方法。要得到1到100的正确数列,最简单的方法就是使用row()或是column()函数,由于个人习惯,我比较习惯于row(),所以这里以row()函数为例。熟悉row()函数:在a1单元格中输入“=row()”,使用填充柄填充至a5,看到什么结果?是不是每一个单元格中值就是其对应的行数。
下面是一个典型的应用
案例2:求出各科成绩大于90分的人数
先用数组计算条件(b19:b22gt90),结果是{falsefalsefalsetrue},大于90,就为true,否则false.
然后用“--”符号把逻辑值转换可计算值:--(b19:b22gt90),结果为:{0001},再用sum计算和。
以上,就是数组的一些介绍,希望对你有所帮助。