Excel公式参照“左侧单元格”

105

我正在尝试进行条件格式设置,以便如果某个单元格的值与其左侧单元格的值不同,则单元格颜色会更改(每列是一个月份,在每行中都有特定对象的费用。我希望轻松监控价格在几个月内的变化)。

我可以对每个单元格进行操作并拖动格式,但我想要一个通用公式来应用于整个工作表。


3
如果有人需要,要将列移到右边:=INDIRECT("RC[1]",0) - prograhammer
这是一个非常好的问题。不幸的是,我不确定我是否正确理解了原帖作者想要实现的功能,即在不进行条件格式化并将格式刷粘贴到每个单元格的情况下更改单元格。假设我们在行中有月份,在列中有香蕉、苹果和橙子。矩阵中是价格。如果我们想要自动地使单元格在当前月份与上个月份之间的价格变化时自动变为红色,我们该如何做呢?如果价格下降,是否也有一种自动着色单元格变为绿色的方法,而价格上涨则变为红色呢? - Bryan
14个回答

0

我认为这是最简单的答案。

使用“名称”引用偏移量。

假设您想要对一列(列A)求和,直到但不包括保持总和的单元格(例如单元格A100); 做这个:

(我假设在创建名称时使用A1引用; R1C1随后可以切换到)

  1. 在工作表中任意位置单击,而不是顶部行 - 比如单元格D9
  2. 定义一个名为“OneCellAbove”的命名范围,但覆盖'RefersTo'框中的“= D8”(无引号)
  3. 现在,在单元格A100中,您可以使用以下公式
    =SUM(A1:OneCellAbove)

0

在创建用户定义函数时,我发现涉及到OFFSETINDIRECT函数的其他答案都无法应用。

相反,您必须使用Application.Caller来引用使用了用户定义函数(UDF)的单元格。然后,在第二步中,将列的索引转换为相应的列名称。
最后,您可以使用活动工作表的Range函数引用左侧单元格。

    Function my_user_defined_function(argument1, argument2)
        ' Way to convert a column number to its name copied from StackOverflow
        ' https://dev59.com/w2kw5IYBdhLWcg3wJXIh#10107264
        ' Answer by Siddarth Rout (http://stackoverflow.com/users/1140579/siddharth-rout)
        ' License (if applicable due to the small amount of code): CC BY-SA 3.0
        colName = Split(Cells(, (Application.Caller(1).Column - 1)).Address, "$")(1)
    
        rowNumber = Application.Caller(1).Row
        
        left_cell_value = ActiveSheet.Range(colName & rowNumber).Value

        ' Now do something with left_cell_value

0

您可以使用 VBA 脚本更改所选内容的条件格式(您可能需要相应地调整条件和格式):

For Each i In Selection
i.FormatConditions.Delete
i.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="=" & i.Offset(0, -1).Address
With i.FormatConditions(1).Font
    .Bold = True
End With
Next i

-1
请选中整个工作表,然后在“开始”选项卡中选择“样式”-“条件格式”-“新建规则...”,使用公式确定要设置格式的单元格并在此公式为真时设置格式的数值:中输入以下内容:
=A1<>XFD1

格式...,选择格式选项,确定确定


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接