ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: puresway

[已解决] 【完美解决】超多条件判断(特别感谢zhaogang1960、excelflower两位大师)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-1 22:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主,这个貌似不是纯技术问题了
实现你设计的某个功能,言简意赅些或许有人有时间帮你

TA的精华主题

TA的得分主题

发表于 2011-3-1 22:22 | 显示全部楼层
原帖由 puresway 于 2011-3-1 22:09 发表
原谅小弟再顶一下,希望各位老师帮忙,急啊,数据量大的可拍,手工折腾了很久了,嘿嘿,谢谢各位老师

收到短消息。这个可以解!明天行不?呵呵
没有降级的情况吗?

TA的精华主题

TA的得分主题

发表于 2011-3-1 22:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 puresway 于 2011-3-1 22:45 发表

有降级的情况,降级也是最多降两级,主要依靠维持指标考察,小弟也是刚接触这些考核的,还望前辈多多指点,谢谢前辈!太感谢您了!嘿嘿

不客气,就是条件判断多了点,能解。明天中午前给你吧。晚安。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-1 22:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 excelflower 于 2011-3-1 22:22 发表

收到短消息。这个可以解!明天行不?呵呵
没有降级的情况吗?

有降级的情况,降级也是最多降两级,主要依靠维持指标考察,小弟也是刚接触这些考核的,还望前辈多多指点,谢谢前辈!太感谢您了!嘿嘿

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-1 23:00 | 显示全部楼层
谢谢前辈,真是太感谢您了!嘿嘿!晚安!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-2 10:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
真是麻烦前辈了,条件太多了,多的很不好意思,嘿嘿

TA的精华主题

TA的得分主题

发表于 2011-3-2 11:29 | 显示全部楼层
短信收到,我阅读困难,只看懂一点点,先从6列中的最后一列(备注)开始吧:
Sub Macro1()
    Dim d As Object, arr, brr, crr(), i&, r&
    Set d = CreateObject("scripting.dictionary")
    arr = Sheets("考核标准").Range("A1").CurrentRegion
    For i = 3 To UBound(arr)
        d(arr(i, 1)) = i
    Next
    brr = Range("C3:E" & Range("C65536").End(xlUp).Row)
    ReDim crr(1 To UBound(brr), 1 To 6)
    For i = 1 To UBound(brr)
        If d.Exists(brr(i, 1)) Then
            r = d(brr(i, 1))
            If brr(i, 2) >= arr(r, 2) Then
                If brr(i, 2) >= Val(arr(r - 2, 3)) And brr(i, 3) >= Val(arr(r - 2, 4)) Then
                    If r >= 6 Then
                        crr(i, 6) = "晋升两级"
                    Else
                        crr(i, 6) = "维持"
                    End If
                ElseIf brr(i, 2) >= Val(arr(r - 1, 3)) And brr(i, 3) >= Val(arr(r - 1, 4)) Then
                    If r >= 5 Then
                        crr(i, 6) = "晋升一级"
                    Else
                        crr(i, 6) = "维持"
                    End If
                Else
                    crr(i, 6) = "维持待晋"
                End If
            Else
                crr(i, 6) = "待维持"
            End If
        End If
    Next
    Range("f3").Resize(i - 1, 6) = crr
End Sub

TA的精华主题

TA的得分主题

发表于 2011-3-2 11:31 | 显示全部楼层
附件
求助.rar (16.01 KB, 下载次数: 51)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-2 13:09 | 显示全部楼层
谢谢赵老师,前面的几列就是要写入他的达成指标与他职级对应最近的考核标准的差额,如果总指标没有达到维持,就在维持差额列写入距离维持的差额,达到了维持,就看他是否满足晋升一级所需的两个指标,如果不满足,就算出与晋升指标的两个差额写入晋升一级差额列。如果又满足了,则判断他职级上一级的对应的晋升指标,不满足就在晋升两级差额列写入他与晋升两级的两个指标差额(可能一正一负,可能全负),满足了就说明他可以晋升两级。直接在备注栏写入晋升两级。前面的差额列不用写入了。另外,赵老师,您帮忙做的表中,晋升一级的备注好像不对啊,比如17行的,晋升一级但不够晋升两级,但后面写的是维持待晋。能不能改一下啊,谢谢您!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-2 13:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不知道excelflower前辈在不 嘿嘿
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-12 10:04 , Processed in 0.044498 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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