经常碰到需要将excel中两列数据相互交叉组合,就是A列的每一个数据去和B列每一个组合
解决方法:
把函数写到c列:=INDEX(A:A,MOD(ROW(A4),4)+1)&INDEX(B:B,INT(ROW(A4)/4))
现在把函数写下来很方便向下填充,里面的数字4就是代表A列有多少行
函数说明:
可以从图片中看出c列是由2字符组成,前半边顺序是不间断的读取A1到A4的值,后半边是1重复a到d的个数次,例如这里就是重复4次
左边函数:
1.先看左边的函数从里往外看row(A4)这个很简单得到一个数字4,row函数是返回元素的行号,
2.再看外面那个mod(row(A4),4)这个就是比较经典的地方了mod是取余数
因为公式向下填充的时候row(a4)的数字是逐步增加一的,再除以一个4那么余数就是从1变化到4再回到1循环下去,这就是为什么c行的左边从来都是a循环到e的原因,不断的顺序读取a1到a5的值
右边函数:
1.右边的是把每行的数重复A列的行数
2.先用一个row(a4)获得一个逐步增加的自然数,然后再除以4再用个int就变成了重复4次才变化一次的函数
最后总结下2个组合函数的用法
1.获得一个A列的的N个元素不断循环的函数: =INDEX(A:A,MOD(ROW(AN),N)+1)
2.获得一个重复N次再读取下一个数字的函数: =INDEX(B:B,INT(ROW(AN)/N))
友情提示:
excel快速下拉函数到指定的位置:
1.在名称框(编辑栏最左边的框)里输入要填充公式的区域B1:B20000,然后回车
2.输入公式 =A1*2 按CTRL+ENTER
转自:http://blog.52yuding.com/question/473.html