分享

简历上写着“精通EXCEL”的你,这些问题能搞定吗?

 yg760 2022-01-19


图片


小伙伴们啊,前两天在和群友互动时看到了这样一个题目,是和合并单元格相关的。题目如下。


图片

首先看到合并单元格后,我们要在脑海中第一个反映出来的函数就是LOOKUP函数。其次,解决这个题目,还需要另一个神秘函数的帮助--MMULT函数!


01

我们可以这样写下面的公式。


图片

在单元格E3中输入公式“=INDEX(A:A,RIGHT(TEXT(MAX(MMULT(N(A3:A20=TRANSPOSE(LOOKUP(ROW(3:20),ROW(3:20)/(A3:A20<>''),A3:A20))),B3:B20)+ROW(3:20)%),'0.00'),2))”,三键回车。

思路:

  • LOOKUP(ROW(3:20),ROW(3:20)/(A3:A20<>''),A3:A20)部分,利用LOOKUP函数的经典用法将合并单元格填充满。其结果是

    {'电视';'电视';'电视';'冰箱';'冰箱';'洗衣机';'洗衣机';'洗衣机';'空调';'空调';'空调';'空调';'电视';'电视';'冰箱';'冰箱';'冰箱';'空调'}

  • 利用TRANSPOSE函数将其转置后和单元格区域A3:A20对比,形成一个18行18列的矩阵。这个矩阵中只包含TRUE和FALSE两种逻辑值

  • 利用N函数将TRUE转换为1,将FALSE转换为0

  • 用MMULT函数求出每种电气的销售总和。为了区别有求和相同的情况,还要加上ROW(3:20)%,即行号缩小100倍

  • 取最大值后利用TEXT函数将数字格式强制变更为“0.00”,原因是当行号是10的倍数时,在后一步用RIGHT函数提取时会出错

  • 利用RIGHT提取行号,INDEX函数返回数据


02

另一种解题的思路。


图片

在单元格E3中输入公式“=INDEX(A:A,MOD(MAX(MMULT(N(TRANSPOSE(LOOKUP(ROW($3:$20),IF(A3:A20<>'',ROW($3:$20),''),$A$3:$A$20))=$A$3:$A$20),$B$3:$B$20)*10000+ROW($3:$20)),10000))”,三键回车。

思路:

  • 这个和上面那个本质上是一样的。只是用MOD函数替代了RIGHT函数,同时行号扩大了10000倍,而不是缩小100倍


03

最后我们来看看销量求和。


图片

在单元格D3中输入公式“=SUM((LOOKUP(ROW($3:$20),IF(A$3:A$20<>'',ROW($3:$20)),A$3:A$20)=D3)*B$3:B$20)”,三键回车。

由于这个是LOOKUP函数的经典用法,之前我们也多次介绍,这里就不详细展开了。如果小伙伴们有疑问,可以私信我哦!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多