设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] [求助]数字字段,求解一阀值。

[复制链接]
跳转到指定楼层
1#
发表于 2006-12-16 21:04:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
表中一数字字段,给出一个值,求一阀值。我想不出好办法。

字段a

1

4

8

12

6

给出的一个数值A,如:25

规则是:小于阀值的取字段值,大于阀值的取阀值,合计等于A(即25)。

例:取后是

1

4

7

7

6

合计是25,阀值是7。

再举一例子:要求的合计值是29,求得的阀值是10。

取后是:

1

4

8

10

6

[此贴子已经被作者于2006-12-16 17:08:14编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-12-17 00:11:00 | 只看该作者
不明白你的意图
3#
发表于 2006-12-17 01:11:00 | 只看该作者
try:

Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim E As Integer

For I = 1 To 25
  A = 1
  B = 4
  C = 8
  D = 12
  E = 6


If A > I Then
      A = I
      
   End If
   
   If B > I Then
      B = I
      
   End If

  If C > I Then
      C = I
     
   End If

If D > I Then
      D = I
     
   End If

If E > I Then
      E = I
   End If

If (A + B + C + D + E) = 25 Then

   Debug.Print I
   
   Exit Sub
   
End If


Next
4#
 楼主| 发表于 2006-12-17 04:38:00 | 只看该作者
不对吧。全部等于1。

我只是举个例子,不一定就是5条记录,就算是固定的记录数是5个好了,求解。

还有合计值不一定正好是a+b+c+d+e,阀值取近似整数就行。

我的想法是25除以记录数5,得5,从5开始测试记录值,+1一直得到阀值。(注:给出的合计的值25不能超过字段合计值)这样如果数字大,可能有点慢。



[此贴子已经被作者于2006-12-16 20:50:17编辑过]

5#
发表于 2006-12-17 05:44:00 | 只看该作者
不是1是,是变量也就是你说的阀值,开始数应是总数除以记录数加1,结束数是合计值,最好上传具体例子

6#
 楼主| 发表于 2006-12-17 05:59:00 | 只看该作者
  C = 8


  If C > I Then
      C = I
     
   End If

I=1时,进入If,C=1。那C就永远是1了。

还有一个情况,阀值一般在1000以内,我的改进想法是,以100为单位测试,得到的合计值超过25(给出的值)后,再以10为单位退回,小于25再以1为单位增加。这样快点。
7#
发表于 2006-12-17 06:24:00 | 只看该作者
以下是引用tz-chf在2006-12-16 21:59:00的发言:
  C = 8


  If C > I Then
      C = I
     
   End If


I=1时,进入If,C=1。那C就永远是1了。

        不会的,赋值是在FOR ...NEXT 之内  ,你可以把上面代码拷贝测试一下,结果是7



8#
 楼主| 发表于 2006-12-17 07:19:00 | 只看该作者
高!是我没看清。

再深入一步。我想想怎么说法好。
9#
 楼主| 发表于 2006-12-17 19:03:00 | 只看该作者
重新说一下题目,和上面的不太一样。

字段A,用阀值处理后的结果(设阀值为n,if >n 取n,<=阀值,保留原值),会另外给出一个值Y(现在给出的例子为Y=260,求n)。

字段A

5

10

8

要求的公式为:n*40<=(处理结果的合计值+Y),求n的最大值(整数)。

如果Y太大,超过字段A的最大值*40,就不必做下去了。

[此贴子已经被作者于2006-12-17 12:43:10编辑过]

10#
发表于 2006-12-17 19:39:00 | 只看该作者
Y是已知数,还是未知数

按你的例子直接用公式:INT(260/40) ,N最大值为6
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-11 03:02 , Processed in 0.090832 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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