新年快乐!高分求助,解决Excel2003表格问题,答案满意另有50分奖励,谢谢

在Excel2003中怎样用公式(不用宏)把A列有大于1的数字隔开(不算0)的1的个数,显示在A列最后出现1的数字对应的B列位置(公式越简单越好),如下所示:
A B
2
0
1
0
0
1 2 有大于1的数字隔开的1有二个
0
0
4
0
0
5 大于1的数字
0
0
1
0
0
1
0
0
1 3 有大于1的数字隔开的1有三个
0
0
3 大于1的数字
0
4
0
8
0
0
9
0
0
1 1 有大于1的数字隔开的1有一个
0
0
0

谢谢

第1个回答  2012-12-31
我这个方法,需要增加C和D两个辅助列。
第一步,C列
C1=IF(A1=1,1,IF(A1=0,0,"A")) 在第一行设置初始值
C2=IF(A2=1,IF(C1="A",1,C1+1),IF(A2=0,C1,"A"))
将C2公式向下拉到C37。
第二步,D列
D37=IF(A37=1,1,"A") 从最后一行设置初始值
D36=IF(A36=1,IF(D37="A",1,D37+1),IF(A36=0,D37,"A"))
将D36公式向上拉到D1。
第三步,B列
B1=IF(AND(D1<>"A",D2="A"),C1,"")
将B1公式向下拉到B37。
第2个回答  2012-12-31
在B2输入:
=IF(AND(A2=1,COUNTIF(OFFSET(A2,,,MATCH(,0/((A3:A101>1)+(A3:A101="")),)),1)=1),COUNTIF(A$1:A2,1)-SUM(B$1:B1),"")

数组公式,按CTRL+SHIFT+ENTER三键结束
下拉填充追问

您好,输入公式后,结果是这样。

追答

我也发现问题了,公式已改过你用最后这个公式:
=IF(AND(A2=1,COUNTIF(OFFSET(A2,,,MATCH(,0/((A3:A101>1)+(A3:A101="")),)),1)=1),COUNTIF(A$1:A2,1)-SUM(B$1:B1),"")

追问

太好了,成功了。再麻烦您一下,如果把原图式反过来统计有1隔开的大于1的数字的个数,该怎样修改您这个公式?再次感谢

追答

反过来比较麻烦,太晚了,明天你再MMM我吧,513910613

追问

打扰您了,再见

追答

在B2输入:
=IF(AND(A2>1,COUNTIF(OFFSET(A2,,,MATCH(,0/((A3:A101=1)+(A3:A101="")),)),">1")=1),COUNTIF(A$1:A2,">1")-SUM(B$1:B1),"")
数组公式,按CTRL+SHIFT+ENTER三键结束
下拉填充

本回答被提问者采纳