如果没有Excel365函数,遇到这个需求得有多慌张

Excel学习世界 2024-11-26 22:36:48

还在纠结要不要升级 365 版本的同学可以通过今天的案例来衡量,如果没有 365 函数,可以做到但显然麻烦得多。

案例:

从下图 1 中左侧数据表的“实际完成”列中查找出小于 15 的最大值,效果如下图 2 所示。

解决方案 1:

在 E2 单元格内输入以下公式:

=MAXIFS(C2:C13,C2:C13,"<"&15)

公式释义:

maxifs 函数的作用是按条件返回最大值;

语法为 MAXIFS(取值区域, 条件区域1, 条件1, [条件区域2, 条件2], ...);

MAXIFS(C2:C13,C2:C13,"<"&15):在 C2:C13 中找出符合以下条件的最大值:C2:C13 区域中 <15 的所有单元格

解决方案 2:

公式如下:

=INDEX(C2:C13,XMATCH(15,C2:C13,-1))

公式释义:

index+match 的组合形式我们并不陌生,index 用于“在哪里找”,match 规定“找出第几个位置”;

在上述组合中,match 函数通常会精确查找;而本案例需要用到近似查找,如果要实现,就必须让数据升序或降序排列,否则会返回错误值,正因为如此,我在公式中将 match 换成了 xmatch;

XMATCH 函数的作用是返回项目在数组或单元格区域中的相对位置;

语法为 XMATCH(要查找的值, 查找的区域, [匹配模式], [搜索模式]);

匹配模式:

0 - 完全匹配(默认值)

-1 - 完全匹配或小于等于查找值的最大值

1 - 完全匹配或大于等于查找值的最小值

2 - 通配符匹配,其中 *, ? 和 ~ 有特殊含义

搜索模式:

1 - 搜索从第一到最后一个(默认值)

-1 - 搜索从最后到第一个(反向搜索)

2 - 执行依赖于 lookup_array 按升序排序的二进制搜索。如果未排序,将返回无效结果。

-2 - 执行依赖于 lookup_array 按降序排序的二进制搜索。如果未排序,将返回无效结果。

XMATCH(15,C2:C13,-1):在区域 C2:C13 中查找 15 或小于 15 的最大值,返回其在序列内的位置;

INDEX(C2:C13,...):返回区域 C2:C13 中处于上述位置的值

1 阅读:2

Excel学习世界

简介:Excel 学习交流