Excel如果单元格在VLOOKUP上突出显示

我在Excel中有两张表,一张是订单,另一张是基于订单的生产表。

我正在使用VLOOKUP来查询定购给定项目的数量的订单。

然而,有时这个数量在订单上突出显示,表明所讨论的项目实际上产生了2额外的数额(免费样品)。

所以,例如,在我的生产forms中:

ITEM|QUANTITY TO PRODUCE

在订单中我有:

ITEM|QUANTITY TO ORDER

我使用VLOOKUP来获得匹配,这是有效的,但是如果QUANTITY TO ORDER的单元格高亮显示为黄色,那么我需要将VLOOKUP值加2。

我怎样才能做到这一点? 有没有办法自动做到这一点,没有macros? 我的客户不想手动激活,他们只是希望工作表。

谢谢。

VLOOKUP无法做到这一点。 你需要做的是将一个单元格的背景色当作数据来处理,而一个单元格的背景色不是数据

但是… 这个链接解释了如何做到这一点,以及其含义。

创build一个名为BackColor的工作簿范围名称( Ctrl + F3 ),引用=GET.CELL(63,OFFSET(INDIRECT("RC",FALSE),0,-1)) ,然后立即向右侧添加一列用户突出显示单元格的列,并使该列具有一个公式,例如=BackColor<>0以便在其左侧列中任何突出显示的单元格中包含TRUE

将额外的2个单元硬编码到公式中不会对维护有帮助,因此请在某个单元格中input2 ,并ExtraUnits定义名为ExtraUnits的名称。

然后修改你的公式

 =[the original VLOOKUP]+IF([lookup the BackColor Boolean], ExtraUnits, 0) 

这会将ExtraUnits添加到查找的单位,对于所有突出显示的单元格。

唯一的缺点是,正如我上面所说的,单元格的背景颜色不像Excel那样是数据,所以你的用户必须触发一个重新计算 – 只是改变单元格的背景颜色不会这样做,但是按F9会。

下面的代码在http://www.mrexcel.com/forum/excel-questions/215415-formula-check-if-cell-highlighted.html

 Function CellColorIndex(InRange As Range, Optional _ OfText As Boolean = False) As Integer ' ' This function returns the ColorIndex value of a the Interior ' (background) of a cell, or, if OfText is true, of the Font in the cell. ' Application.Volatile True If OfText = True Then CellColorIndex = InRange(1,1).Font.ColorIndex Else CellColorIndex = InRange(1,1).Interior.ColorIndex End If End Function 

要使用该function:

 =IF(CELLCORINDEX(A1,FALSE)>0,1,0) 

这使您可以检查单元格的颜色或文本。 但是您需要使用http://www.mrexcel.com/forum/excel-questions/447723-vlookup-returns-cell-address.html中的索引匹配代码来匹配它&#x3002;

此外,像上面的答案状态一样,突出显示单元格不会被视为数据更改,因此,即使您可以在不使用macros的情况下获取此信息,如果有人更新了单元格的突出显示状态,也不会使用此公式更新单元格,除非自动。

听起来像你可能需要重新考虑突出显示是+2样本的触发器。 我与上面的答案,build议添加一个列可能是真/假或是/否检查,看看他们是否得到样品。

我做的是这样的:

我创build了一个用户定义的函数:

 Function getRGB3(rcell As Range, Optional opt As Integer) As Long Dim C As Long Dim R As Long Dim G As Long Dim B As Long C = rcell.Interior.Color R = C Mod 256 G = C \ 256 Mod 256 B = C \ 65536 Mod 256 If opt = 1 Then getRGB3 = R ElseIf opt = 2 Then getRGB3 = G ElseIf opt = 3 Then If B <> 0 Then B = -2 End If getRGB3 = B + 2 Else getRGB3 = C End If End Function 

这使得所有高亮显示的单元格(黄色)在被引用时都得到了2的值,所以在订单上它就像ITEM|QUANTITY TO ORDER|CUSTOM FUNCTION VALUE| 第三列(自定义函数)为每个对应的黄色单元格旁边的2,如果不是,它只是零。

然后,我做第二个VLOOKUP将CUSTOM FUNCTION VALUE添加到原来的,然后我添加了两个。 🙂