分享

只要函数基础扎实,遇到难题也能轻易解决!

 EXCEL应用之家 2021-03-24



送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!



我们这一代人都玩过《三国志》这款游戏,也为每个人心目中最厉害的三国英雄而争论过。恰巧这里有一份三国主要武将的武力值,大家赶紧来看看到底是哪一位英雄吧!




01

MMULT函数

我们可以使用MMULT函数来解这道题目。



在单元格H3中输入公式“=MAX(MMULT(IF(ISTEXT(B2:F17),0,B2:F17),ROW($B$1:$B$5)^0))”,三键回车即可。

思路:

  • 利用IF函数配合ISTEXT函数将表中的文本转换为0,得到一个16行5列的矩阵

  • ROW($B$1:$B$5)^0部分,创造一个5行1列的矩阵{1;1;1;1;1}

  • 利用MMULT函数返回两个矩阵的乘绩和,结果为{0;396;0;230;0;279;0;247;0;268;0;148;0;289;0;106}

  • 最后利用MAX函数求得最大值

其实上述公式也可以简化为“=MAX(MMULT(IFERROR(B3:F17*1,),R3:R7+1))”。这里用IFERROR(B3:F17*1,)来代替上面公式中的IF()部分;R3:R7+1部分的作用相当于ROW($B$1:$B$5)^0,由于在单元格区域R3:R7没有数值,因此也就创建了一个5行1列的矩阵{1;1;1;1;1}。


02

SUBTOTAL函数配合OFFSET函数



我们在单元格I3中输入公式“=MAX(SUBTOTAL(9,OFFSET($B$3:$F$3,ROW(1:8)*2-2,0,1,5)))”,三键回车即可。

思路:

  • 利用OFFSET函数,以单元格区域$B$3:$F$3为起始点,分别向下移动0、2、4….、14行

  • 利用SUBTOTAL函数分别对8个维度的内存数组求和

  • 利用MAX函数求得最大值

注意,这里只能使用SUBTOTAL函数来配合OFFSET函数求和,而不能使用SUM函数。小伙伴们可以试一下,如果使用SUM函数会是什么结果。


03

MMULT函数配合TEXT函数



在单元格J3中输入公式“=MAX(MMULT(--TEXT(B2:F17,"0;;0;!0"),U1:U5+1))”,三键回车即可。

思路:

  • 利用TEXT函数,将单元格区域B2:F17中的数据强制按“正数,显示正数;负数,显示空;零值,显示0;文本数据,显示0值”这样一个规则转换数据

  • 利用减负运算将文本型数据转换为数值型数据

  • 接下来再用MMULT函数和MAX函数最终求出最大值

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

戳原文,更有料!免费模板文档!

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多