EXCEL自定义函数求助:如何快速检索至少连续四期的等差数?有若干组数,每组都有六个数,按顺序从每组里各取一个数,连续四组,往往有形成等差关系的.如何快速 按位置 检索出所有等差数并用

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 17:20:45
EXCEL自定义函数求助:如何快速检索至少连续四期的等差数?有若干组数,每组都有六个数,按顺序从每组里各取一个数,连续四组,往往有形成等差关系的.如何快速 按位置 检索出所有等差数并用

EXCEL自定义函数求助:如何快速检索至少连续四期的等差数?有若干组数,每组都有六个数,按顺序从每组里各取一个数,连续四组,往往有形成等差关系的.如何快速 按位置 检索出所有等差数并用
EXCEL自定义函数求助:如何快速检索至少连续四期的等差数?
有若干组数,每组都有六个数,按顺序从每组里各取一个数,连续四组,往往有形成等差关系的.如何快速 按位置 检索出所有等差数并用一定方式标记?
例一:表中第一组的号1(1)、第二组的号1(8)、第三组的号4(15)、第四组的号4(22)、第五组的号6(29)成等差关系,步长值是正数7,8-1=7,15-8=7,22-15=7,29-22=7,连续五期有等差数.
例二:表中第五组的号6(29)、第六组的号4(25)、第七组的号3(21)、第八组的号4(17)成等差关系,步长值是负数 -4,59-29=-4、21-25=-4,17-21=-4,连续四期有等差数.
例三:从第六组到第十组,每组都有一个5,五个5也是等差关系,步长值是0.
希望的标记方式:
一、按位置标记.形成等差关系的一组数(至少四个,三个的不标记),按第一个数出现的位置进行标记,如例一,第一个是1,出现在号1位置(A2单元格),标记也在号1位置(G2单元格).
二、用小括号括起来,如果是正数,就在绝对值前面加个“+”号,步长值后面是连续的期数,步长值和连续的期数用逗号“,”隔开.例一用   (+7),5   标记,例二用   (-4),4    标记,例三用   (+0),5    标记.
三、从某一个数开始往往形成两组以上的等差数,不同组之间用分号“;”隔开.
  另外:步长值最大为10,最小为为 -10.号1的最小值为1,最大值为28.号6的最小值为6,最大值为33.

EXCEL自定义函数求助:如何快速检索至少连续四期的等差数?有若干组数,每组都有六个数,按顺序从每组里各取一个数,连续四组,往往有形成等差关系的.如何快速 按位置 检索出所有等差数并用
我是这样做的,在A1里用了一个COUNT函数(表示表中的总期数),从A2以后写期数,从B-G填写每一期从小到大的6个号,然后是6个号开始的位置.
然后做了一个宏cl.每次填写新后号,把H后的6列手工清除,运行宏CL就统计出来了.
cl宏的内容如下:
Sub cl()
Dim i,j,k,l,m As Integer
Dim x,y As Integer
Dim t,t1 As Boolean
Range("A1").Select
For i = 1 To Range("A1").Value - 3
For j = 1 To 6
x = ActiveCell.Offset(i,j)
t = False
For k = -9 To 9
y = 0
For l = i + 1 To Range("A1").Value
t1 = False
For m = 1 To 6
If ActiveCell.Offset(l,m) = x + (l - i) * k Then
y = y + 1
m = 7
t1 = True
End If
Next m
If y = 0 Or t1 = False Then
l = Range("A1").Value + 1
End If
Next l
If y >= 3 Then
If t = False Then
t = True
ActiveCell.Offset(i,j + 6).Value = "(" & k & ")" & y + 1
Else
ActiveCell.Offset(i,j + 6).Value = ActiveCell.Offset(i,j + 6).Value & ",(" & k & ")" & y + 1
End If
End If
Next k
Next j
Next i
End Sub
是不是可以敲你一顿大餐了?我用了整整6个小时才调出来