夜雨聆风学习资料网

ARTICLE · 1122151

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

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

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必“设为星标”哦!!!

点击任意文章上方的“☆星标”即可。

还在纠结要不要升级 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 中处于上述位置的值

转发、再看、在看也是爱!

相关学习资料