我有两张工作簿.我想根据工作表2第二列中的值格式化工作表1第一列中的单元格背景颜色.
例如,如果sheet2,第6行,第2列的值为4,那么我希望第1页,第4行,第1列的背景颜色为绿色.如果第2页第2列中没有任何值引用第1页中的细分行,我想将其设置为无颜色.没有禁止在第2页的第2列中多次出现相同的值.如果您可以告诉我如果图2中指向表1中的行的最后一个值被删除,您可以告诉我如何取消设置颜色,这是值得称赞的.
我确信对于Excel向导来说这可能是微不足道的,但我很少有机会使用excel,当然没有时间成为它的黑带.任何人都可以提供建议,指示或快速公式来做到这一点?如果要实现一些复杂的VB代码,那就不值得了.
谢谢!
您也可以使用命名范围执行此操作,因此您不必将单元格从Sheet1复制到Sheet2:
定义一个命名范围,例如,Sheet1Vals对于具有您想要基于条件的值的列.您可以使用Insert\Name\Define...菜单项定义新的命名范围.输入您的名字,然后使用Refers to框中的单元格浏览器选择您想要的范围内的单元格.如果范围随时间变化(添加或删除行),您可以使用此公式而不是显式选择单元格:
=OFFSET('SheetName'!$COL$ROW,0,0,COUNTA('SheetName'!$COL:$COL)).
如果列具有标题行,则-1在最后一个之前添加a ).
定义命名范围,例如,Sheet2Vals对于具有要有条件格式化的值的列.
使用"条件格式"对话框创建条件.Formula Is在下拉列表中指定,然后将其放入公式:
=INDEX(Sheet1Vals, MATCH([FirstCellInRange],Sheet2Vals))=[Condition]
[FirstCellInRange]您要格式化的单元格的地址在哪里,是[Condition]您检查的值.
例如,如果我在Sheet1中的条件具有值1,2并且3我正在格式化的列B是Sheet2中的列,则我的条件格式将类似于:
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=1
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=2
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=3
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用格式画家将这些格式复制到其余单元格.
以下是我在 Excel 2003 中使用条件格式完成此操作的方法。
要将条件格式应用于Sheet1使用来自 的值Sheet2,您需要将这些值镜像到Sheet1。
Sheet1。在A1中输入以下公式:
=IF(ISBLANK(Sheet2!B1),"",Sheet2!B1)
A1右键单击它并选择“ ”进行复制Copy。A右键单击列标题并选择“ ”,将公式粘贴到列中Paste。Sheet1, 列现在应该完全反映, 列A中的值。Sheet2B
(注意:如果您不喜欢将其放在“column”中,将其放在“column”或其他任何地方A也同样有效。)Z
Sheet1。B通过左键单击列标题来选择列。Format > Conditional Formatting...更改Condition 1为“ Formula is”并输入以下公式:
=MATCH(B1,$A:$A,0)
单击Format...按钮并选择绿色背景。
您现在应该看到绿色背景应用于 中的匹配单元格Sheet1。
Sheet1。A并选择“ Hide”。Sheet1每当有任何更改时,它都会自动更新Sheet2。