宝哥软件园

如何在excel图表中查找指定数据

编辑:宝哥软件园 来源:互联网 时间:2021-09-22

如何在excel图表中查找指定数据?用一个例子来说明,如下图1所示,它是一个记录员工值班日期的表。安排日常值班时,要核对员工最后一次值班日期,避免值班时间隔过近。比如最近可以发现张无忌在2019年9月9日值班,所以第二天的值班不会安排张无忌。现在,在询问张无极之后,我得到了他最近的值班日期,2019年9月9日,其他员工也是如此。

图1

接下来,我们用公式和VBA来解决这个问题。

请使用indexsumproducmaxrow函数。

公式如下:

=INDEX(B $ 2: B $ 10,SUMPRODUCT(MAX)(ROW(A $ 2: A $ 10)*(D $ 2=$ A $ 2: A $ 10))-1))

该公式首先将单元格D2中的值与单元格区域A2:A10中的值进行比较,相同则返回TRUE,不同则返回FALSE,从而得到由TRUE和FALSE组成的数组,然后将其与A2:A10所在的行号组成的数组相乘,得到由行号和0组成的数组,MAX函数得到该数组的最大值。也就是说,在A2:A10的单元格D2中具有相同值的数据的最后位置,减1是因为从第二行开始搜索b23360b10中的值,并且获得b23360b10中要搜索的值的位置,然后INDEX函数获得相应的值。之所以使用SUMPRODUCT函数,是因为它可以处理数组公式,而无需在输入公式后按Ctrl Shift Enter。

结果如下图2所示。

图2。

使用LOOKUP函数。

公式如下:

=LOOKUP(2,1/($A$2:$A$10=$D$2)、$B$2:$B$10)

在公式中,比较A2:A10和D2中的值,相等则返回TRUE,不相等则返回FALSE,从而得到一个由TRUE和FALSE组成的数组,然后将这个数组除以1得到1和错误值#DIV/0!由于在该数组中找不到2,LOOKUP函数搜索该数组,直到最后一个最大值小于2,即数组中的最后一个1,并返回B2:B10中的对应值,即列表中要搜索的数据的最后一个值。

结果如下图3所示。

图3。

使用VBA定制功能。

在VBE中输入以下代码:

函数LookupLastItem(LookupValue as string,_

查找范围范围,

列数为整数)

模糊如龙

带LookupRange

对于i=。列(1)。单元格。计数到1步骤1

如果LookupValue=。单元格(I,1)然后

LookupLastItem=。细胞(I,ColNum)

退出功能

如果…就会结束

接下来我

以…结尾

结束功能

然后,在工作表中,像Excel内置函数一样,使用公式:

=LookupLastItem(D $ 2,A $ 2: B $ 10,2)

结果如下图4所示。

图4

无论使用哪种方法,最终结果如下图5所示。

图5

更多资讯
游戏推荐
更多+