Excel中的索引匹配公式

Excel中的索引匹配公式,excel,excel-formula,Excel,Excel Formula,我最近从一个离开公司的人那里接手了这个电子表格。T列中的公式: =INDEX(BFTable, MATCH(1, (UPPER(LEFT(ST, 2))=$E$1:$E$315)* (ProcessingDate>=$A$1:$A$315)*(ProcessingDate<=$B$1:$B$315)* (EffectiveDate>=$C$1:$C$315)*(EffectiveDate<=$D$1:$D$315)* ($AI3=$P$

我最近从一个离开公司的人那里接手了这个电子表格。T列中的公式:

=INDEX(BFTable, MATCH(1, (UPPER(LEFT(ST, 2))=$E$1:$E$315)*
      (ProcessingDate>=$A$1:$A$315)*(ProcessingDate<=$B$1:$B$315)*
      (EffectiveDate>=$C$1:$C$315)*(EffectiveDate<=$D$1:$D$315)*
      ($AI3=$P$1:$P$315)*($F$1:$F$315="HM"),0),COLUMN()-COLUMN($T$2)+1)
=索引(BFTable,匹配(1)(上(左)(ST,2))=$E$1:$E$315)*

(ProcessingDate>=$A$1:$A$315)*(ProcessingDate=$C$1:$C$315)*(生效日期工件
BFTable
ST
可能是命名范围

公式所做的是在范围
BFTable
中查找与
匹配(…)
部分关联的行和
列()-column($T$2)+1
给出的列

MATCH
部分是一个长条件。它搜索以下所有条件均为真的第一种情况,并返回该行的索引:

UPPER(LEFT(ST, 2))=$E$1:$E$315
ProcessingDate>=$A$1:$A$315
ProcessingDate<=$B$1:$B$315
EffectiveDate>=$C$1:$C$315
EffectiveDate<=$D$1:$D$315
$AI3=$P$1:$P$315
$F$1:$F$315="HM"
UPPER(左(ST,2))=$E$1:$E$315
ProcessingDate>=$A$1:$A$315
ProcessingDate=$C$1:$C$315

EffectiveDateBFTable听起来像一个命名范围。ST听起来也像一个命名范围,但可能只有一个单元格,其中包含字符串值。您可以查看它们是否已在公式-名称管理器中分配。解释匹配()回答得不错!请注意,
UPPER
函数在这里是多余的,因为与=的比较不区分大小写。
LEFT(ST,2)=$E$1:$E$315
将实现同样的效果