Excel 粗体顶部M列中最大的50%值
任务1:将M列中的数据从最大到最小排序(完成!) 任务2:粗体显示M列中最大50%的合计值 比如说,, 一组数据由M列中的1,2,3,4,5,6,7,8,9,10组成Excel 粗体顶部M列中最大的50%值,excel,vba,Excel,Vba,任务1:将M列中的数据从最大到最小排序(完成!) 任务2:粗体显示M列中最大50%的合计值 比如说,, 一组数据由M列中的1,2,3,4,5,6,7,8,9,10组成 让他们从大到小排序:10,9,8,7,6,5,4,3,2,1 =(总和($M$2:M3))计算最大到最小数字的累积总和 (0.5*求和(M:M))以计算求和值的一半=0.5*(10+9+8+7+6+5+4+3+2+1)=27.5 粗体从最大到最小的数据范围,其中这些数据范围的累计和大于或等于总和的一半(以3计算) 假设10+9+8
需要帮助。所有学分归Shrivalabha.redij所有
Sub Highlight_Top50()
Dim CheckRange As Range
With ActiveSheet
Set CheckRange = .Range("M2:M" & .Cells(.Rows.Count, "M").End(xlUp).Row)
End With
On Error Resume Next
Range("M1").Sort Key1:=Range("M2"), _
Order1:=xlDescending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
With CheckRange
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, formula1:="=(SUM($M$2:M3))>=(0.5*SUM(M:M))"
With .FormatConditions(1)
.Font.Bold = True
.StopIfTrue = False
End With
End With
End Sub
子高亮显示\u Top50\u和\u 500K()
变暗检查范围为范围
使用ActiveSheet
设置检查范围=.Range(“M2:M”和.Cells(.Rows.Count,“M”).End(xlUp.Row)
以
出错时继续下一步
范围(“M1”)。排序键1:=范围(“M2”)_
订单1:=xl降序,标题:=xlYes_
OrderCustom:=1,MatchCase:=False_
方向:=xlTopToBottom
带支票范围
.FormatConditions.Delete
.FormatConditions.Add类型:=xlCellValue,运算符:=xlGreaterEqual,公式1:=“500000”
带.FormatConditions(1)
.Font.Bold=True
.StopIfTrue=False
以
.FormatConditions.Add Type:=xlExpression,公式1:=“=(总和($M$2:M2)-0.99*M2)在这种特殊情况下需要的方法是
=(总和($M2:M2)-0.99*M2)这是你今天第四次问这个问题吗?是的,先生,我离我想要的结果越来越近了。为了结案,我再澄清一次。对造成的任何干扰表示歉意。只需颠倒条件并检查公式1:=“(总和($M2:M2))@shrivallabha.redij谢谢!它起作用了!然而,又出现了1个问题,包含7的单元格未加粗,与公式不一致此条件=(总和($M$2:M2)-0.99*M2)
Sub Highlight_Top50_AND_500K()
Dim CheckRange As Range
With ActiveSheet
Set CheckRange = .Range("M2:M" & .Cells(.Rows.Count, "M").End(xlUp).Row)
End With
On Error Resume Next
Range("M1").Sort Key1:=Range("M2"), _
Order1:=xlDescending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
With CheckRange
.FormatConditions.Delete
.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, formula1:="500000"
With .FormatConditions(1)
.Font.Bold = True
.StopIfTrue = False
End With
.FormatConditions.Add Type:=xlExpression, formula1:="=(SUM($M$2:M2)-0.99*M2)<=0.5*SUM(M:M)"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1)
.Font.Bold = True
.StopIfTrue = False
End With
End With
End Sub