Excel中的INDEX MATCH公式

S.C*_*S.C 2 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$1:$P$315)*($F$1:$F$315="HM"),0),COLUMN()-COLUMN($T$2)+1)
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释这个公式试图做什么吗?什么是ST?输出与A列中的处理日期相同.虽然选项卡名称是BF,但没有BFTable.

谢谢,

SC

Ale*_*son 6

这些作品BFTableST很可能的命名范围.

公式的作用是查找BFTableMATCH(...)零件相关联的行和给定的列COLUMN()-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"
Run Code Online (Sandbox Code Playgroud)

如果它们全部返回TRUE,则将它们相乘得到1,但如果它们中的任何一个返回FALSE,则将它们相乘得到0,这将与1(MATCH函数的第一个参数)不匹配.

  • 好答案!请注意,"UPPER"函数在这里是多余的,因为与=的比较不区分大小写.`LEFT(ST,2)= $ E $ 1:$ E $ 315`会达到同样的效果 (3认同)