Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2170|回复: 8

[已解决]求这样的公式应该怎么写

[复制链接]
发表于 2015-8-11 23:13 | 显示全部楼层 |阅读模式
前几个月加起来大于C列的值,就在D列显示几个月(从首次由数值开始计算,例如第4行的数据),例如:前3个月加起来大于132,那D列

就是3个月,例如:2月+3月大于154,D列就显示2, 以此类推,请问D列的公式应该怎么写能满足这样的计算方法,求老师和大神指导下,谢谢。
最佳答案
2015-8-12 10:21
本帖最后由 爱疯 于 2015-8-12 10:25 编辑

QQ截图20150812102024.jpg
多少月.rar (9.21 KB, 下载次数: 3)

工作簿1.zip

7.06 KB, 下载次数: 1

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-8-11 23:34 | 显示全部楼层
本帖最后由 爱疯 于 2015-8-11 23:37 编辑

QQ截图20150811232445.jpg


1)D3如何求得?
2)为什么D5不是2?第5行前3个月>154,排除1个空,还剩 2
回复

使用道具 举报

 楼主| 发表于 2015-8-11 23:41 | 显示全部楼层
本帖最后由 chengzhiting 于 2015-8-11 23:43 编辑
爱疯 发表于 2015-8-11 23:34
1)D3如何求得?
2)为什么D5不是2?第5行前3个月>154,排除1个空,还剩 2


不好意思,D5应该是3,除非第一个月是空值就排除,当中月份空值要计算在内
回复

使用道具 举报

发表于 2015-8-11 23:43 | 显示全部楼层
chengzhiting 发表于 2015-8-11 23:41
不好意思,D5应该是3

如果D5是3,那么D4不是也应该是3了?
回复

使用道具 举报

 楼主| 发表于 2015-8-11 23:46 | 显示全部楼层
本帖最后由 chengzhiting 于 2015-8-11 23:49 编辑
爱疯 发表于 2015-8-11 23:43
如果D5是3,那么D4不是也应该是3了?


不好意思,D5应该是3,D4因为计算的第一个月是空值所以要排除,当中月份空值要计算在内

新上传了一个附件,麻烦老师看下,谢谢。

工作簿1.zip

7.05 KB, 下载次数: 7

回复

使用道具 举报

发表于 2015-8-12 10:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 爱疯 于 2015-8-12 10:25 编辑

QQ截图20150812102024.jpg
多少月.rar (9.21 KB, 下载次数: 3)
回复

使用道具 举报

 楼主| 发表于 2015-8-12 14:00 | 显示全部楼层
爱疯 发表于 2015-8-12 10:21
Function mth(x As Range)
    Dim r%, j%, k%, s%
    r = x.Row

老师我拿大量的数据测试过了,麻烦看下附件中的最后一行,出了点问题。

市场预测与分析.rar

760.21 KB, 下载次数: 1

回复

使用道具 举报

发表于 2015-8-12 16:08 | 显示全部楼层
Function mth(lookup_value As Range, range_lookup As Range)
    Dim A(), j%, k%, s, v

    v = lookup_value.Value
    A = range_lookup.Value
    If UBound(A) > 1 Then mth = "Error: Can only choose one line.": Exit Function
    If v <= 0 Then mth = 0: Exit Function

    '1)从左端开始,求连续空格的个数
    For j = 1 To UBound(A, 2)
        If A(1, j) = "" Then k = k + 1 Else Exit For
    Next j

    '2)从第一个非空位置开始,直到右端
    For j = 1 + k To UBound(A, 2)
        s = s + A(1, j)
        If s > v Then Exit For
    Next j

    '3)如果满足查找条件,那么函数值 = 计数位置(j)- 减去连续空格个数(k);否则返回0
    If s > v Then mth = j - k Else mth = 0

End Function

市场预测与分析2.rar (828.02 KB, 下载次数: 2)
回复

使用道具 举报

 楼主| 发表于 2015-8-12 16:43 | 显示全部楼层
爱疯 发表于 2015-8-12 16:08
Function mth(lookup_value As Range, range_lookup As Range)
    Dim A(), j%, k%, s, v

对的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 14:21 , Processed in 2.899574 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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