Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 天务

猴子分桃,用函数还是VBA完成?

  [复制链接]
发表于 2011-6-2 16:41 | 显示全部楼层
学习了,那个函数还是没很明吧
回复

使用道具 举报

发表于 2011-6-2 16:43 | 显示全部楼层
看来我只能写这种没有技术含量的东西了  =MIN(IF(MOD((((((ROW(A:A)-3)*0.8-3)*0.8-3)*0.8-3)*0.8-3)*0.2,1)=0,ROW(A:A),10000000)){:021:}
回复

使用道具 举报

发表于 2011-6-2 17:56 | 显示全部楼层
徐淑颖 发表于 2011-6-2 16:43
看来我只能写这种没有技术含量的东西了  =MIN(IF(MOD((((((ROW(A:A)-3)*0.8-3)*0.8-3)*0.8-3)*0.8-3)*0.2,1 ...

当mod(数据,1)=0,表示此时对应的row(A:A)的数是整数,而外面再套用min时,说明取第一个出现的整数,也就是((row(A:A)-3)*0.8-3)*0.*.......,第一次出现0时所对应的行值,而match函数偏偏就是取第一个符合条件值的位置,按正规写法是index(row(A:A),我的公式),而row(A:A)返回的值就是从1开始的。所以最外面的index可以省略

评分

参与人数 1 +9 收起 理由
徐淑颖 + 9

查看全部评分

回复

使用道具 举报

发表于 2011-6-3 09:02 | 显示全部楼层
回复 蝶·舞 的帖子

谢谢,蝶舞姑娘,我自己再消化消化!{:101:}
回复

使用道具 举报

发表于 2011-6-3 11:19 | 显示全部楼层
用EXCEL公式和VBA结合是能算出来的,但是只用公式好象不太好做

回复

使用道具 举报

发表于 2011-6-3 12:05 | 显示全部楼层
   Sub 猴子分桃()
For y = 1 To 10000
    i = y                            'i的初始值为第五只猴子拿走桃子后留下的桃子数,因为求的是最小数所以我们可以把它设得很大
    For x = 1 To 5
        j = 3 + i / 4               'j为猴子分的桃子数
        k = i + j
        i = k
    Next
    If Int(k) = k Then
       MsgBox "这堆桃子的最小值为:" & i
        Exit For
    End If
Next
            
End Sub
回复

使用道具 举报

发表于 2011-6-3 12:44 | 显示全部楼层
先在SHEET1中设置如下公式:
开始时数量        顺序        剩余
=B11+C11        =3+C11/4       
=B12+C12        =3+C12/4        =A11
=B13+C13        =3+C13/4        =A12
=B14+C14        =3+C14/4        =A13
=B15+C15        =3+C15/4        =A14
然后再用VBA代码
Sub 分桃()
Dim i As Integer
Dim j As Integer
For i = 1 To 10000
    Cells(11, 3).Value = i
    j = Cells(15, 1).Value
        If Int(j) = j Then
            Exit For
        End If
Next i
End Sub
两者结合是不是更方便,请高手指正,这样也可以是6只,7只猴子也分了
回复

使用道具 举报

发表于 2011-6-6 09:24 | 显示全部楼层
我想知道用什么方法
回复

使用道具 举报

发表于 2016-2-18 13:25 | 显示全部楼层
dfdsd
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 05:23 , Processed in 0.488221 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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