如何从Excel工作表提取本周数据?VLOOKUP或其他公式选型咨询
嘿,关于这个Excel提取记录的问题,我给你梳理清楚哈~
别用VLOOKUP!这两个公式更适合你的需求
首先得明确:VLOOKUP主打单个值的精确/模糊匹配,最多只能返回一条符合条件的结果,但你需要提取日期在指定范围内的所有对应PRF Control #记录,所以它并不是最优选择。推荐你用下面两种方案:
方案1:FILTER函数(优先选,适合Excel 365/2021及以上版本)
FILTER是Excel专门用来筛选多条符合条件记录的函数,用法简单直接。假设:
- 存放原始数据的工作表叫
数据工作表 - 日期列是该表的A列,PRF Control #列是B列
- 你计算出的本周首日存在
Sheet1!A1,末日在Sheet1!B1
直接用这个公式:
=FILTER(数据工作表!B:B, (数据工作表!A:A>=Sheet1!A1)*(数据工作表!A:A<=Sheet1!B1), "无符合条件的记录")
- 公式里的
(数据工作表!A:A>=Sheet1!A1)*(数据工作表!A:A<=Sheet1!B1)是用来判断日期是否在本周范围内的条件,*在这里相当于逻辑AND - 第一个参数
数据工作表!B:B指定了要提取的PRF Control #列 - 第三个参数是当没有符合条件记录时显示的提示内容,你可以根据需要修改
方案2:INDEX+SMALL+IF组合(兼容旧版Excel,需数组输入)
如果你的Excel版本不支持FILTER(比如2019及更早版本),就用这个数组公式组合。同样基于上面的假设,公式如下:
=IFERROR(INDEX(数据工作表!B:B, SMALL(IF((数据工作表!A:A>=Sheet1!A1)*(数据工作表!A:A<=Sheet1!B1), ROW(数据工作表!A:A)), ROW(A1))), "")
⚠️ 操作注意:输入完公式后,别直接按回车,要按Ctrl+Shift+Enter触发数组计算,然后下拉公式,直到出现空白单元格,就能列出所有符合条件的PRF Control #了。
IF(...)部分会找出所有符合日期条件的行号SMALL(...)会依次提取第1、第2……个符合条件的行号INDEX(...)根据行号提取对应的PRF Control #IFERROR(...)用来避免没有更多记录时出现错误值
为啥不推荐VLOOKUP?
VLOOKUP哪怕开启模糊匹配(把最后一个参数设为TRUE),也只能返回第一个落在指定区间的结果,没办法一次性提取所有符合条件的多条记录,完全满足不了你的需求哦。
内容的提问来源于stack exchange,提问作者Raven Supilanas
相关产品推荐
相关产品推荐

