excel公式不理解,希望高手能帮忙解答 数组运算公式
发布网友
发布时间:2023-04-01 07:58
我来回答
共2个回答
热心网友
时间:2023-11-18 07:45
逐步来:
1)(MATCH(A$1:A$12&$C$1:$C$12,A$1:A$12&$C$1:$C$12,)
数组公式,会产生12次数据,轮流把每行的A&C的值在(A1&C1):(A12&C12)中进行比较,得到本行的综合数据在这两列中第一次出现的位置(注意如第九行,因为是第二次出现,得到的不是8,是7)
2)IF(MATCH(A$1:A$12&$C$1:$C$12,A$1:A$12&$C$1:$C$12,)=ROW(A$1:A$12),ROW(A$1:A$12),4^8)
加上IF,就是两种可能,判断条件就是
a)如果在序列首次出现的位置,和轮流的次数相同,说明就是本次是第一次,返回由小到大轮流的次数;
b)否则说明前面已经出现过,返回一个很大的数字4^8(9^6什么的都是一个意思)这个数字将在后面的Small中排除本行的数据
3)SMALL(IF(MATCH(A$1:A$12&$C$1:$C$12,A$1:A$12&$C$1:$C$12,)=ROW(A$1:A$12),ROW(A$1:A$12),4^8),ROW(A2))
前面的IF产生一串数字,那么,每行究竟取哪个数字呢?small的这个参数的意思是第几大的数字。对,就是取和本行行号相同的的那个(这样就跳开了标题行的1)也就是在第二行取得到的数字中第二大的,带三行去第三大的、、第九行取第九大的(注意,第九次的搜索数被IF转成了4^8)所以取数中没有九只有8,4^8,10,,,所以第九大的数是10!
4)INDEX(A:A,SMALL(IF(MATCH(A$1:A$12&$C$1:$C$12,A$1:A$12&$C$1:$C$12,)=ROW(A$1:A$12),ROW(A$1:A$12),4^8),ROW(A2)))
当然就是在A:A里取出第2行、第3行、、第8行、第10行的A列的数据了
5)回到那些个重复的地方了,被转置的数值4^8是什么?65536!index(A:A,65536)就是 A65536,这个格子的值,一般来说是0,所以0和“”用&来操作一下,就是空白了哦
不知道我的理解对不对,还希望有大神能指点一下
热心网友
时间:2023-11-18 07:45
http://zhidao.baidu.com/question/394060614.html
参考哈。