送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
【置顶公众号】或者【设为星标】及时接收更新不迷路
小伙伴们啊,前两天在和群友互动时看到了这样一个题目,是和合并单元格相关的。题目如下。
首先看到合并单元格后,我们要在脑海中第一个反映出来的函数就是LOOKUP函数。其次,解决这个题目,还需要另一个神秘函数的帮助--MMULT函数!
我们可以这样写下面的公式。
在单元格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函数返回数据
另一种解题的思路。
在单元格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))”,三键回车。
思路:
最后我们来看看销量求和。
在单元格D3中输入公式“=SUM((LOOKUP(ROW($3:$20),IF(A$3:A$20<>"",ROW($3:$20)),A$3:A$20)=D3)*B$3:B$20)”,三键回车。
由于这个是LOOKUP函数的经典用法,之前我们也多次介绍,这里就不详细展开了。如果小伙伴们有疑问,可以私信我哦!
好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
