我有一个表使用以下公式从其他两个表中提取数据:
=IF(INDEX(InitASIPTable,MATCH([@[EFH JST]],InitInspJST,0),MATCH(HeaderRow,TailNumberRow,0))="INITIAL CW",INDEX(SortieTime[CW-13R],MATCH(HeaderRow,SortieTime[Tail],0)),INDEX(InitASIPTable,MATCH([@[EFH JST]],InitInspJST,0),MATCH(HeaderRow,TailNumberRow,0)))
基本上,它会查看第一个表以查看初始检查是否已完成。如果是,则进入第二个表以提取经常性检查剩余时间,如果没有则提供剩余时间直到初始检查。我遇到的问题是在Excel 2010中获取条件格式以突出显示表格中的单元格,以显示我看到的时间是从初始表格还是重复表格中提取的。我在这个表中有12行x 15列,我正在尝试将这种格式化。
我已尝试将此公式用于条件格式:
=ISNUMBER(INDEX(InitASIPTable,MATCH([@[EFH JST]],InitInspJST,0),MATCH(HeaderRow,TailNumberRow,0)))
但是,Excel拒绝该公式带有“您输入的名称无效”错误消息,即使我在表格中间删除该公式时它正确返回“TRUE”或“FALSE”。
我也尝试明确定义每个范围,而Excel接受规则时,它不应用条件格式。这是Excel接受的修改后的公式:
=ISNUMBER(INDEX('SHEET 1'!$G$5:$U$16,MATCH($A$2:$A$13,'SHEET 1'!$A$5:$A$16,0),MATCH($D$1:$R$1,'SHEET 1'!$G$2:$U$2,0)))
在此定义范围:
Sheet 1 G5:U16
是初始时间数据表
A2:A13
是要格式化的表中的[EFH JST]列(唯一键)
Sheet 1 A5:A16
是初始表的JST列
D1:R1
是要格式化的表的标题行
Sheet 1 G2:U2
是初始数据表的标题行
每当我将该公式放到表格中间时,它都会正确返回true或false,所以我知道这个公式在这里工作。我是否正在尝试处理比Excel更复杂的公式,或者我错过了其他的东西?
答案 0 :(得分:1)
您不能在条件格式化公式中使用表引用,即。 [@ [EFH JST]]
您可以尝试将公式保存到命名范围,然后使用
答案 1 :(得分:0)
在MSDN Technet论坛上提出同样的问题之后,最终解决问题的答案是将条件格式设置为=SUMPRODUCT((InitASIPTable=D2)*1)>0
。它不是一个可靠的解决方案,因为它依赖于两个表永远不会具有相同的值,但它确实有效。