我有两个表,表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中的条件分配了一个命名范围,这是一个下拉列表
有什么建议吗?
答案 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),"")
答案 1 :(得分:0)
好的,假设你的范围名称在F1
,你找到匹配的公式如下:
=If(IsError(Match(LookupVal,Indirect(F1),0)),"No Match", "Match")
......沿着这些方向的东西
希望这有助于指明你正确的方向。
答案 2 :(得分:0)
INDIRECT
和VLOOKUP
将是您的朋友。
我按照您的描述构建了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中查找该列名,并告诉我是否找到它。