Excel:基于多个条件匹配\索引特定列

时间:2013-10-23 13:00:34

标签: excel indexing range match vlookup

我有两个表,表1列A是滚动日期列。表2由四列不同的“触发日期”组成。表2,第1列包含年度触发,即每年发生一次。表2第2列包含双年度触发器,每年发生两次。表2第3列包含每月触发器,“12个日期”和表2第4列包含每周触发器,“52个日期”。

好的,所以我要找的是一个会返回日期触发器的公式,其中表1第1列匹配在单元格中选择的条件(每年,每两年,每月,每周)“我们将比如F1,超出可能创建的任何范围。

示例:如果表1第2栏=“01/02/2013”​​并且我在F1中选择“每周”,公式将在表2中的每周列中查看“01” / 02/2013“存在。

我已为表2中的每一列分配了命名范围 我已经为F1中的条件分配了一个命名范围,这是一个下拉列表

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您可以尝试:

=IFERROR(VLOOKUP(B2,INDIRECT(CHAR(72+MATCH(F$1,$I$1:$L$1,0))&":"&CHAR(72+MATCH(F$1,$I$1:$L$1,0))),1,0),"")  

SO19542409 example

答案 1 :(得分:0)

好的,假设你的范围名称在F1,你找到匹配的公式如下:

=If(IsError(Match(LookupVal,Indirect(F1),0)),"No Match", "Match")

......沿着这些方向的东西

希望这有助于指明你正确的方向。

答案 2 :(得分:0)

INDIRECTVLOOKUP将是您的朋友。

我按照您的描述构建了Table2,其中包含表中列的年度,年度,月度,每周标签 - 这样可以避免让命名范围保持最新状态,因为它直接看着公式中的表

对于该功能,我然后使用VLOOKUP在F1引用的列中查找日期 列参考:INDIRECT("Table2["&$F$1&"]")
查找值:VLOOKUP([@Col2],INDIRECT("Table2["&$F$1&"]"),1,FALSE)(查看返回值中的第1列,因为我并不关心返回的值。
如果找到则返回日期,否则返回错误。然后我可以将结果包装在IF(ISERROR(中,这样如果找到日期,我可以返回是或否。

这产生了

的整个公式
=IF(ISERROR(VLOOKUP([@Col2],INDIRECT("Table2["&$F$1&"]"),1,FALSE)),"No","Yes")

表1中的下一列,这样当我更改F1中的值时,它将在Table2中查找该列名,并告诉我是否找到它。