ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2126|回复: 4

[已解决] 怎样用VBA划线更接近(公式结合VBA解决)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-6-18 19:29 | 显示全部楼层 |阅读模式
有一组成绩,需要使用VBA划出总人数90%的分数线.
划出来的分数线计算出人数与比划出来的分数线高一些的分数计算人数,那个更接近总人数的90%就取哪个分数.如果一样就取低一些的分数.详见附件
我用公式模拟了一个结果.
比如:总人数有563人,计算出它的90%就是506人.
划定分数线为16.8,有513人,高一些的分数线17.1有505人,这时就取17.1这个分数
如果划定分数线为16.8,有517人,高一些的分数线17.1有476人,这时就取16.8这个分数.

划定线后,取比划定线大的最小数,与划定人数比相差数,那个更接近就取那个数.

[ 本帖最后由 aroffice 于 2010-11-18 17:00 编辑 ]

更接近划线.rar

6.72 KB, 下载次数: 37

TA的精华主题

TA的得分主题

发表于 2010-6-18 20:29 | 显示全部楼层
用函数简单一点:
C3=IF(ABS(COUNTIF(A3:A1001,">="&LARGE(A3:A1001,INT(COUNT(A3:A1001)*0.9)))-INT(COUNT(A3:A1001)*0.9))>ABS(COUNTIF(A3:A1001,">="&LARGE(A3:A1001,INT(COUNT(A3:A1001)*0.9)-1))-INT(COUNT(A3:A1001)*0.9)),LARGE(A3:A1001,INT(COUNT(A3:A1001)*0.9)-1),LARGE(A3:A1001,INT(COUNT(A3:A1001)*0.9)))
如一定要用VBA :
Sub Macro1()
    Dim X, Y, Z
    Range("C3") = _
        "=LARGE(RC[-2]:R[998]C[-2],INT(COUNT(RC[-2]:R[998]C[-2])*0.9))"
    Range("C4") = "=COUNTIF(R[-1]C[-2]:R[997]C[-2],"">=""&R[-1]C)"
    X = Range("C4")
    Range("C3") = _
        "=LARGE(RC[-2]:R[998]C[-2],INT(COUNT(RC[-2]:R[998]C[-2])*0.9)-1)"
    Y = Range("C4")
    Range("C3") = "=INT(COUNT(RC[-2]:R[998]C[-2])*0.9)"
    Z = Range("C3")
    If Z - Y > X - Z Then
        Range("C3") = _
           "=LARGE(RC[-2]:R[998]C[-2],INT(COUNT(RC[-2]:R[998]C[-2])*0.9))"
    Else
        Range("C3") = _
           "=LARGE(RC[-2]:R[998]C[-2],INT(COUNT(RC[-2]:R[998]C[-2])*0.9))"
    End If
    Range("C3:C4").Value = Range("C3:C4").Value
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-18 22:03 | 显示全部楼层
有没有VBA 函数可以计算一个数组中大于 某一个数的个数有多少?
是不是一定要用for 循环也逐一比较呢?

[ 本帖最后由 aroffice 于 2010-6-18 22:04 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-19 08:50 | 显示全部楼层
这只是我模拟的数据,实际是有很多科的,而且需要划定90% ,30%,10%三个分数线的,都需要采用这种方法!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-19 12:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
项起来,帮我再看一看!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-12 21:44 , Processed in 0.039230 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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