如何基于另一工作表的日期条件返回目标工作表的计算机列表?
如何基于另一工作表的日期条件返回目标工作表的计算机列表?
嗨,你已经搞定了最核心的第一步——用FILTER筛选出指定日期对应的站点列表,接下来只需要把这个结果作为“桥梁”,关联到Computer List表就能拿到对应日期的计算机名单啦!
我推荐用LET函数来整理公式,让逻辑更清晰,避免重复计算。直接用下面这个公式就能实现你的需求:
=LET( SelectedDate, F2, TargetSites, FILTER(Schedule[Site Number], Schedule[Install Date]=SelectedDate), FILTER(ComputerList, ISNUMBER(XMATCH(ComputerList[Site Number], TargetSites))) )
公式拆解:
SelectedDate, F2:把你下拉选择的日期单元格F2定义成变量,方便后续统一引用TargetSites, FILTER(...):就是你已经写好的筛选指定日期站点的公式,结果是符合条件的站点号列表- 最后一个
FILTER:在Computer List表里,用XMATCH判断每一行的站点号是否在TargetSites列表中,ISNUMBER把匹配结果转成布尔值(匹配到就是TRUE,没匹配到是FALSE),这样就能筛选出所有对应站点的计算机记录
如果你只需要返回计算机名称列,而不是整行数据,只需要把最后一个FILTER的第一个参数改成ComputerList[Computer Name]就行:
=LET( SelectedDate, F2, TargetSites, FILTER(Schedule[Site Number], Schedule[Install Date]=SelectedDate), FILTER(ComputerList[Computer Name], ISNUMBER(XMATCH(ComputerList[Site Number], TargetSites))) )
兼容旧版Excel的替代方案:
如果你的Excel版本不支持XMATCH,可以用COUNTIF来替代判断逻辑:
=LET( SelectedDate, F2, TargetSites, FILTER(Schedule[Site Number], Schedule[Install Date]=SelectedDate), FILTER(ComputerList[Computer Name], COUNTIF(TargetSites, ComputerList[Site Number])>0) )
举个实际例子:当你在F2选中3/7/2024时,TargetSites会返回8002、8011、12这三个站点号,公式就会自动列出这三个站点对应的所有计算机,完全符合你想要的结果~
备注:内容来源于stack exchange,提问作者Harlan
相关产品推荐
相关产品推荐

