使用 Excel 条件格式添加数据条时引用相邻单元格的“最大”值

使用 Excel 条件格式添加数据条时引用相邻单元格的“最大”值

使用 Excel 中的条件格式,我希望在设置maximum数据栏的值时引用一组单元格的相邻单元格。

例如,以下面这个简单的表格为例。我希望在单元格中显示一个数据条,即 30/100 B2, 200\200B3和 100\150 B4

    A        B
1 | To Pay | Paid |
3 |   £100 |  £30 |
4 |   £200 | £200 |
5 |   £150 | £100 |

但是,使用数据栏时,Excel 不允许相对引用,这意味着我只能将列中的每个单元格B与列中的其他单元格进行比较B,这在我的用例中完全没有意义。

我可以做的是为每行添加一条规则,将单个单元格引用为值maximum;例如,我可以向单元格添加 CF 规则,以使用公式B2引用。但是,这意味着我必须为列中的每一行添加一条规则(目前大约 350 条),这很容易出错并且需要大量维护。A2maximumB

有没有办法在 Excel 中使用单个 CF 规则实现这一点?


期望结果

在此处输入图片描述

答案1

恐怕没有 VBA 就不可能。
数据栏规则必须参考放置数据栏的单元格的内容。
要比较它们,您必须计算另一列中的比率并将数据栏放在那里。计算出的比率可以选择性地隐藏。
数据栏

使用 VBA 代码的解决方案:

Sub AddDataBars()
    Dim c As Range
    ' select the column range to be formatted
    For Each c In Selection
        c.FormatConditions.Delete
        With c.FormatConditions.AddDatabar
            .ShowValue = True
            .MinPoint.Modify newtype:=xlConditionValueAutomaticMin
            .MaxPoint.Modify newtype:=xlConditionValueFormula, _
                newvalue:="=" & c.Offset(, -1).Address
            .BarColor.Color = RGB(0, 176, 80) ' 5287936
            .BarFillType = xlDataBarFillSolid
        End With
    Next c
End Sub

相关内容