网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月14日漏签0天
excel吧 关注:281,475贴子:1,551,847
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 6回复贴,共1页
<<返回excel吧
>0< 加载中...

求助,vba宏指定求和取随机数,没有思路了,大佬指导下吧

  • 只看楼主
  • 收藏

  • 回复
  • -军职-
  • E见钟情
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

各位大佬,遇到了一个难题没有思路了,求指导,如图所示,文件通过白夜班区分了大块,每块行数不确定,有29行-32行不等,需求是在总和处输入数据,行数均分成5小组,每小组的和是一样的,就是=总和/5,要求在每小组的单元格内取0.2-0.6的随机数,使得各小组随机数求和相等,行数均分5份的比如30行就是66666的区分,31行就是76666区分,29行就是66665区分。大佬有什么设计思路吗?求教
i列和j列式解释说明用的,我实际实用价值


  • 可爱的豆豆
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
公式无法解决,需要我帮你定制宏吗


2025-08-14 10:06:12
广告
不感兴趣
开通SVIP免广告
  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

'
Option Explicit
'
Sub abc()
 Dim a, i, j, m, n, t, pos, sum, scope
 a = Range("a3:a" & [a3].End(xlDown).Row).Value
 sum = [i3].Value
 ReDim pos(1 To 5, 1 To 4)
 For i = 1 To 5
  pos(i, 4) = UBound(a) \ 5
 Next
 For i = 1 To UBound(a) Mod 5
  pos(i, 4) = pos(i, 4) + 1
 Next
 pos(1, 1) = 1: pos(1, 2) = pos(1, 4): pos(1, 3) = sum / 5
 For i = 2 To 5
  pos(i, 1) = pos(i - 1, 2) + 1
  pos(i, 2) = pos(i, 1) + pos(i, 4) - 1
  pos(i, 3) = sum / 5
 Next
 scope = Split([l3].Value, "-")
 ReDim b(1 To UBound(a), 1 To 2)
 For i = 1 To 5
  t = pos(i, 3)
  For j = pos(i, 1) To pos(i, 2) - 1
   n = Round(Rnd * (scope(1) - scope(0)) + scope(0), 2)
   b(j, 1) = n
   t = t - n
  Next
  If t >= Val(scope(0)) And t <= Val(scope(1)) Then
   b(j, 1) = t: b(pos(i, 1), 2) = pos(i, 3)
  Else
   i = i - 1
  End If
  DoEvents
 Next
 [m3].Resize(UBound(b), 2) = b
End Sub


  • 🎶虚空蛋黄酱
  • E夫当关
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
整个嗯活
=DROP(REDUCE(0,MMULT(COLUMN(A:CU)^0,N(COUNTA(A2:A99)>=SEQUENCE(99,5))),LAMBDA(x,y,LET(z,DROP(REDUCE(0,ROW(1:99),LAMBDA(s,n,HSTACK(s,FREQUENCY(RANDARRAY(B2*20,,1,y,1),SEQUENCE(y-1))))),,1),VSTACK(x,INDEX(FILTER(z,BYCOL(z,LAMBDA(u,AND(MAX(u)<60,MIN(u)>20)))),,1))))),1)/100
旁边分组情况的公式(不是上面公式的辅助列):=TOCOL(IF(COUNTA(A2:A99)>=SEQUENCE(99,5),COLUMN(A:E),坤),2,1)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示