Excel高手请进(重谢)一列数据(都是0和1),先判断后依次统计次数

如图,从A21开始,先判断A21是数字0还是数字1,如果A21是0,(如图表格)那么从A20开始统计数字1的次数,保证从A21开始数字1的次数要比数字0的次数多一次,如图表格,A20=0,A19=1,A18=1,数字1的次数比0的次数多一次,在B18输出1(这样就结束一轮)然后重新从A17开始,判断A17是数字0还是1,如图A17=1,那么从A16开始统计数字0的次数,保证从A16开始数字0的次数要比数字1的次数多一次,如图,A16=0,那么0的次数比1的次数多一次,在B16输出0(这样就结束另一轮),然后就从A15重新开始判断,A15=1,从A14开始统计0的次数。如图,A14=1,A13,A12,A11,A10,A9都等于1,那么0的次数(0次)就比1的次数(6次)少了,,由于不能再少于6次了,所以要在B9输出-6,然后结束这一轮,重新从A8开始判断。这只是21个数,我还有180多个数字要这样判断,所以希望高手们能找出这其中的公式,要用到辅助模块都行,凡是能方便判断找出的方法都行,考验你们的时候到了嘻嘻!


公式法只能从上往下作比较,所以加了两个辅助列(所有公式都是基于数值从第一行开始设计的,如果不是,所有公式皆无效),把A列的数据从下往上倒过来排在C列。

C1输入:=INDEX(A:A,COUNT(A:A)+1-ROW(A1)),下拉

D2输入(是从D2,不是D1,D1不管):

=IF(ROW(A2)-IFERROR(MATCH(4^8,$D$1:D1,1),0)>6,1+COUNTIF(OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),,ROW(A2)-IFERROR(MATCH(4^8,$D$1:D1,1),0)),1-OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),))-COUNTIF(OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),,ROW(A2)-IFERROR(MATCH(4^8,$D$1:D1,1),0)),OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),)),IF(COUNTIF(OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),,ROW(A2)-IFERROR(MATCH(4^8,$D$1:D1,1),0)),OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),))=COUNTIF(OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),,ROW(A2)-IFERROR(MATCH(4^8,$D$1:D1,1),0)),1-OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),)),1-OFFSET($C$1,IFERROR(MATCH(4^8,$D$1:D1,1),0),),"")),下拉

B1输入:=IF(A2="","",INDEX(D:D,COUNT(A:A)-ROW(A1)+1)),下拉

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-27
没看完题目,真尼玛狠!
第2个回答  2015-01-27
我操,真狠...
第3个回答  2015-01-27
晕了,没有看懂啊,什么意思