设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6594|回复: 16
打印 上一主题 下一主题

数字间隔问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-28 07:29:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
7
9
12
19
22
43
6
5
8
15
16
33
44
47
1
3
5
7
15
23
24
32
8
8
12
14
15
17
31
38
19
4
6
13
18
22
44
45
1
8
1
12
16
24
32
49
46
8
7
11
19
28
46
48
38
9
1
22
39
42
43
47
28
2
3
11
13
16
24
31
6
0
又要麻烦2位大大了。。
这是个列为8,行无限的数组。
我要从最低的那一行开始算起数字的间隔。比如说24的间隔是: 0 2 2
19的间隔是: 2 2 2.  数字7的间隔是: 2 3 1.
我应该怎么做呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-1-28 14:00:15 | 只看该作者
回复 leslie0705 的帖子

说实话,我不是很清楚你想要返回什么样的值。我这里写了一段代码供参考,效果如下图所示:

先贴上代码:
  1. Sub test()
  2. For Each one In Range("A1:H10")
  3.     If one.Value = Range("B14").Value Then
  4.      i = i + 1
  5.      Cells(i, "i").Value = "第" & i & "次位置"
  6.      '返回行标到J列
  7.     Cells(i, "j").Value = "第" & one.Row & "行"
  8.     '返回列标到K列
  9.     Cells(i, "k").Value = "第" & one.Column & "列"
  10.     '计算行标*列数和列标的和,并返回值到L列
  11.     Tem = (one.Row - 1) * 8 + one.Column
  12.     Cells(i, "l").Value = Tem
  13.     End If
  14.     Next one
  15. End Sub
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

3#
发表于 2011-1-28 14:28:59 | 只看该作者
EXCEL版发贴提问请附上工作簿
http://www.office-cn.net/forum-v ... -fromuid-77755.html
4#
 楼主| 发表于 2011-1-29 02:30:35 | 只看该作者
本帖最后由 leslie0705 于 2011-1-29 02:32 编辑

谢谢小妖姐的提醒!下次我会注意的。。
还有我想知道的是,我能不用VBA而是直接用公式求出来吗?
ROY大大的程序很好,但我只要知道行数(就是ROY大的J列)的间隔就够了。
我想求出最后一行的所有数字(3,11,13。。)的每个数字的间隔。打个比方吧,
最后一行(第9行)的24的跟自己的最近的行的间隔(第6行)为2(9-6-1),然后
第六行的24和第三行的24间隔为2(6-3-1)。因为行是无限的,所以我不懂怎么计算。
像ROY大一样另外开一列来专门列出数字24(以及其他最后一行的数字)的间隔,然后通过下拉把各个间隔算出,就是我想做的。
可以只用公式不用VBA吗?谢谢。。。
5#
 楼主| 发表于 2011-1-29 02:46:34 | 只看该作者
还有我能不能知道连续2行(或更多)都出现的相同数字呢?
比如说,就如ROY大大的表格,在第2,3,4行都有数字15,那我要知道最后的那一行:第4行,还有连续3次的频率。
如果只用公式能做到吗?谢谢。。。

点击这里给我发消息

6#
发表于 2011-1-29 13:37:43 | 只看该作者
你把附件传上来,我试试看能不能写个公式。
7#
 楼主| 发表于 2011-1-29 22:23:46 | 只看该作者
本帖最后由 leslie0705 于 2011-1-29 22:31 编辑

,

现在差不多有1000行,我只是用前32行举例。。
好像数字37,我用红色显示,总共有4个(第2,4,10,28行),所以间隔为1,5,17(第2行到第4行,第4行到第10行,第10行到第28行),数字48和49我也这么做了,我需要把数字1到49都这么做,在表sheet2.
然后在sheet3我需要计算出各个数字连续出现的次数。如果不是连续出现,就是X,如果连续2次出现,是XX,如此类推。
所以37没有连续出现,但出现了4次,就在X列写4。49在第14,17行单独出现,所以在X列写2,在第5,6行连续出现,所以在XX列写1,。然后在22,23,24连续出现,所以在XXX列写1。数字48有3次单独出现(第14,17,20行),有一次连续2次出现(第31,32行),所以X列为3,XX列为1。。
我需要把差不多1000行的数据写入sheet2,和sheet3中,并且数据是每周更新,sheet2,和sheet3的表会根据sheet1的更新而自动更新。。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

8#
发表于 2011-1-30 13:59:47 | 只看该作者
sheet2的B2
  1. =SMALL(IF(B$1=Sheet1!$A$1:$G$938,ROW($1:$938)),ROW(A2))-SMALL(IF(B$1=Sheet1!$A$1:$G$938,ROW($1:$938)),ROW(A1))-1
复制代码
CTRL+SHIFT+ENTER 结束后下拉右拉
PS,你的手工计算有误

点击这里给我发消息

9#
发表于 2011-1-30 14:12:38 | 只看该作者
SHEET3的B2
  1. =COUNTA(Sheet2!B:B)-SUM(C2:F2)
复制代码
下拉
C2
  1. =SUM(N(FREQUENCY(IF(N(OFFSET(INDIRECT("Sheet2!r1c"&ROW(A2),),ROW,))=0,ROW),IF(N(OFFSET(INDIRECT("Sheet2!r1c"&ROW(A2),),ROW,)),ROW,))=COLUMN(A1)))
复制代码
CTRL+SHIFT+ENTER结束后右拉下拉
其中ROW=
  1. =ROW(INDIRECT("1:"&(COUNTA(INDIRECT("Sheet2!c"&ROW(Sheet3!A2)&":c"&ROW(Sheet3!A2),))-1)))
复制代码
激活C2时输入的自定义名称

点击这里给我发消息

10#
发表于 2011-1-30 15:29:52 | 只看该作者
上面几个公式都在这个附件里了。
PS,这么玩公式,真是太考验电脑了……

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 07:38 , Processed in 0.108425 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表