关于excel表格的一些问题,高手请进

各位XDJM,偶在制作excel表格中遇到难题,特在此发帖求助,难题如下:如下图所示,我们公司想对各个员工的每月绩效做一个统计,每个月的绩效评级只登记“优秀”的,未被评为... 各位XDJM,偶在制作excel表格中遇到难题,特在此发帖求助,难题如下:
如下图所示,我们公司想对各个员工的每月绩效做一个统计,每个月的绩效评级只登记“优秀”的,未被评为“优秀”的用空白表示。如何让excel表在连续五个优秀的第五个优秀表格自动显示红色背景,若不是连续五个优秀的,则在累计六个优秀的第六个优秀表格自动显示红色背景?
如图,陈XX,由于1月绩效到5月绩效联系评为优秀,所以其5月绩效的评级表格背景显示为红色,而他的6月绩效和7月绩效为优秀,8月绩效非优秀,所以从6月到12月累计了六个优秀绩效,所以12月绩效的评级表格背景亦为红色。

我的表达能力有限,表达的,不知道大家都看懂了吗?

再啰嗦一遍:每五个连续优秀绩效,第五个优秀绩效表格背景显示为红色;若不连续,则每六个累计优秀绩效,第六个优秀绩效表格背景显示为红色。

期待高手们来解答,非常感谢!
不好意思,图中有两处我忘记填充颜色了,李XX 12个月都是优,5月绩效的格子背景色应为红色,然后10月的格子背景色也应为红色,
展开
 我来答
xautwuyi
2010-03-09 · TA获得超过404个赞
知道小有建树答主
回答量:570
采纳率:0%
帮助的人:366万
展开全部
用vba实现。

代码如下:
Sub test()
Dim i As Integer
Dim j As Integer
Dim str As String
Dim c1 As Integer
Dim c2 As Integer
Dim p As Integer
str = "优"
For i = 2 To EndRow(2)
c1 = 0
c2 = 0
For j = 2 To 13
c1 = c1 + 1
If ActiveSheet.Cells(i, j) = str Then
c2 = c2 + 1
End If
If c2 = 5 And c2 = c1 Then
ActiveSheet.Cells(i, j).Interior.ColorIndex = 3
c2 = 0
c1 = 0
End If
If c2 = 6 And c1 > c2 Then
ActiveSheet.Cells(i, j).Interior.ColorIndex = 3
c2 = 0
c1 = 0
End If
Next j
Next i

End Sub

'取循环最后一行行数的方法,主方法中调用
Private Function EndRow(ByVal x As Integer) As Integer
For j = x To 65536
If ActiveSheet.Cells(j, 1) = "" Then
EndRow = j - 1
Exit For
End If
Next j
End Function
岳阳漂哥
2010-03-09 · TA获得超过4540个赞
知道大有可为答主
回答量:3141
采纳率:50%
帮助的人:857万
展开全部
一个疑问:李×× 连续12个月都是优,应该在哪里填充红色呢?你的图中不填充红色。

这个问题很复杂,依靠设置条件格式或函数公式是无法解决的。可能VBA有办法解决吧,期待VBA高手。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CrazymenLu
2010-03-08 · TA获得超过1352个赞
知道小有建树答主
回答量:982
采纳率:0%
帮助的人:612万
展开全部
F2设置单元格格式,公式,=AND(COUNTIF(B2:F2,"优")=5,A2<>"优"),填充红色
复制格式到其它单元格即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厚以松0Y
2010-03-11 · TA获得超过316个赞
知道小有建树答主
回答量:368
采纳率:0%
帮助的人:202万
展开全部
我帮你调试过了,可以用宏实现,邮箱向我索取
574450968@qq.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式