Excel 2010 条件格式将不使用 INDEX/MATCH 公式
Excel 2010 Conditional Formatting will not use an INDEX/MATCH formula
我有一个 table,它使用以下公式从另外两个 table 中提取数据:
=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)))
基本上,它会查看第一个 table 以查看是否已完成初始检查。如果是,则转到第二个 table 以提取重复检查剩余时间,如果否,则提供直到初始检查的剩余时间。我遇到的问题是在 Excel 2010 中获取条件格式以突出显示 table 中的单元格,以显示我看到的时间是否是从初始 table 中提取的或重复出现的 table。我在这个 table 中有 12 行 x 15 列,我正在尝试对其进行格式化。
我试过使用这个公式进行条件格式设置:
=ISNUMBER(INDEX(InitASIPTable,MATCH([@[EFH JST]],InitInspJST,0),MATCH(HeaderRow,TailNumberRow,0)))
但是,Excel 拒绝带有 "The name that you entered is not valid" 错误消息的公式,即使当我将该公式放在 table 中间时它正确 returns "TRUE" 或"FALSE."
我也试过明确定义每个范围,虽然 Excel 接受规则,但它不应用条件格式。这是 Excel 接受的修改后的公式:
=ISNUMBER(INDEX('SHEET 1'!$G:$U,MATCH($A:$A,'SHEET 1'!$A:$A,0),MATCH($D:$R,'SHEET 1'!$G:$U,0)))
在此处定义范围:
Sheet 1 G5:U16
为初始时间数据table
A2:A13
是 table 中要格式化的 [EFH JST] 列(唯一键)
Sheet 1 A5:A16
是初始 table 的 JST 列
D1:R1
是要格式化的 table 的 header 行
Sheet 1 G2:U2
是初始数据 table
的 header 行
每当我将该公式放到 table 的中间时,它都会正确 returns 正确或错误,所以我知道该公式在这里有效。我是在尝试处理比 Excel 在这里可以处理的更复杂的公式,还是我遗漏了其他东西?
您不能在条件格式公式中使用 table 引用,即。 [@[EFH JST]]
您可以尝试将公式保存到命名范围,然后使用它
在 MSDN Technet 论坛上提出同样的问题后,最终解决问题的答案是将条件格式设置为 =SUMPRODUCT((InitASIPTable=D2)*1)>0
。这不是一个可靠的修复,因为它依赖于两个表从不具有相同的值,但它确实有效。
我有一个 table,它使用以下公式从另外两个 table 中提取数据:
=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)))
基本上,它会查看第一个 table 以查看是否已完成初始检查。如果是,则转到第二个 table 以提取重复检查剩余时间,如果否,则提供直到初始检查的剩余时间。我遇到的问题是在 Excel 2010 中获取条件格式以突出显示 table 中的单元格,以显示我看到的时间是否是从初始 table 中提取的或重复出现的 table。我在这个 table 中有 12 行 x 15 列,我正在尝试对其进行格式化。
我试过使用这个公式进行条件格式设置:
=ISNUMBER(INDEX(InitASIPTable,MATCH([@[EFH JST]],InitInspJST,0),MATCH(HeaderRow,TailNumberRow,0)))
但是,Excel 拒绝带有 "The name that you entered is not valid" 错误消息的公式,即使当我将该公式放在 table 中间时它正确 returns "TRUE" 或"FALSE."
我也试过明确定义每个范围,虽然 Excel 接受规则,但它不应用条件格式。这是 Excel 接受的修改后的公式:
=ISNUMBER(INDEX('SHEET 1'!$G:$U,MATCH($A:$A,'SHEET 1'!$A:$A,0),MATCH($D:$R,'SHEET 1'!$G:$U,0)))
在此处定义范围:
Sheet 1 G5:U16
为初始时间数据table
A2:A13
是 table 中要格式化的 [EFH JST] 列(唯一键)
Sheet 1 A5:A16
是初始 table 的 JST 列
D1:R1
是要格式化的 table 的 header 行
Sheet 1 G2:U2
是初始数据 table
每当我将该公式放到 table 的中间时,它都会正确 returns 正确或错误,所以我知道该公式在这里有效。我是在尝试处理比 Excel 在这里可以处理的更复杂的公式,还是我遗漏了其他东西?
您不能在条件格式公式中使用 table 引用,即。 [@[EFH JST]]
您可以尝试将公式保存到命名范围,然后使用它
在 MSDN Technet 论坛上提出同样的问题后,最终解决问题的答案是将条件格式设置为 =SUMPRODUCT((InitASIPTable=D2)*1)>0
。这不是一个可靠的修复,因为它依赖于两个表从不具有相同的值,但它确实有效。