excel表格中有一列数,其中有1、3、5这三个数若干,排列随机且乱序(可能是1243815386

excel表格中有一列数,其中有1、3、5这三个数若干,排列随机且乱序(可能是12438153865……这样的)现在想在某一单元格内输出这一列中的1、3、5的行间距(比如刚才所举的例子就应该输出:3,2,1,1,3),求高人给个算法!

注意是 数组公式,需要同时按ctrl+shift+enter输入

 

 

 

"第一列:1,3,5;第二列:2,3,4;第三列:5,6,7;第四列:2,5,0;第五列:1,3,5;第六列:1,3,6;第七列:9,3,2;第八列:1,5,5;第九列:1,3,4;第十列:6,3,7;第十一列:1,3,5。现在要输出"1,3,4"和"1,3,5"和"1,3,6"这三个数组之间的行距,那么结果应该是:4,1,3,2。"

 

算法:

 

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-18

=IF(SUM(COUNTIF($A$1:$A$11,{1,3,5}))<ROW(A1)+1,"",INDEX(FREQUENCY(IF(MMULT(N($A$1:$A$11<>{1,3,5}),ROW($1:$3)^0)-2,ROW($A$1:$A$11)),IF(MMULT(N($A$1:$A$11={1,3,5}),ROW($1:$3)^0),ROW($A$1:$A$11)))+1,ROW(A2)))

追问

数组问题求解

追答

数组的。qq1614945346 的也行。

追问

貌似看不到他给的公式……

追答

他的公式很好的思路,我给他减点字符。

他的公式:
=IF(ROW(A1)<SUM(--($A$1:$A$999={1,3,5})),SUM(SMALL(IF(($A$1:$A$999=1)+($A$1:$A$999=3)+($A$1:$A$999=5),ROW($A$1:$A$999)),ROW(A1:A2))*{-1;1}),"")
减点字符:
=IF(ROW(A1)<SUM(--($A$1:$A$999={1,3,5})),SUM(SMALL(IF(MMULT(N($A$1:$A$999={1,3,5}),ROW($1:$3)^0),ROW($1:$999)),ROW(1:2))*{-1;1}),"")

追问

额,我说的是对二楼的追问:如果要是1换成一个数组"1,3,4",3换成"1,3,5",5换成"1,3,6"应该怎么改?其他数字也换成了数组……求教!晚上回去必给加分!

追答

有点没搞懂题意。你可以再描述一下。比如举个例子。上个图最好

追问

网络差,上不了图……第一列:1,3,5;第二列:2,3,4;第三列:5,6,7;第四列:2,5,0;第五列:1,3,5;第六列:1,3,6;第七列:9,3,2;第八列:1,5,5;第九列:1,3,4;第十列:6,3,7;第十一列:1,3,5。现在要输出"1,3,4"和"1,3,5"和"1,3,6"这三个数组之间的行距,那么结果应该是:4,1,3,2。求算法……

我原本以为,原来单个数字的算法稍微变动一下,就可以套用,后来我发现我太年轻了……

都在一列,多行,打错了应该是"第几行"

好吧,不纠结了,我想到了个笨法子,讲"1,3,4"替换成"134",然后就没有然后了

本回答被提问者采纳
第2个回答  2014-07-18

A2输入公式:

=IF(OR(A2={1,3,5}),ROW()-MAX(IF((A$1:A1=1)+(A$1:A1=3)+(A$1:A1=5),ROW(A$1:A1))),"")

按CTRL+SHIFT+ENTER键结束,下拉填充

 

后面的自已搞定

 

追问

大神级人物出现了

如果要是1换成一个数组"1,3,4",3换成"1,3,5",5换成"1,3,6"应该怎么改?其他数字也换成了数组……求教!晚上回去必给加分!

追答

是多列还是多行? 数据全在一列当中吗?

第3个回答  2014-07-18
没看明白。。。。不知道是不是我的理解能力有限。。。追问

相似回答