这题会一种解的有80%;两种的50%;仨全会的不到1.5%了!
发布日期:2024-07-22 06:56 点击次数:126
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
【置顶公众号】或者【设为星标】及时接收更新不迷路
图片
小伙伴们好,今天来和大家分享一道有意思的题目。根据给定的数值,来拆分一个比较大的值,并生成多行数据。这个类型的题目在现实工作中是会遇到的,就让我们一起来看看吧。
原题目是这样子的:
图片
题目要求以50为给定值,将左侧的数据结构变更为右侧的结构。实际上就是以50为一档,连续来拆分左侧的数据,直至剩余数据小于50为止。
01先来看D列。
图片
在单元格D2中输入下列公式,三键回车并向下拖曳即可。
=INDEX(A$2:A$8,SUM(1,N(ROW(A1)>MMULT(N(ROW($1:$7)>=COLUMN($A:$G)),-INT(-$B$2:$B$8/50)))))
思路:
-INT(-$B$2:$B$8/50)部分,这个操作实现了向上取余。它等同于INT($B$2:$B$8/50)+1
N(ROW($1:$7)>=COLUMN($A:$G))部分,形成下面这样一个结构。
图片
MMULT(N(ROW($1:$7)>=COLUMN($A:$G)),-INT(-$B$2:$B$8/50))部分,其结果为{2;4;6;9;15;16;17},这个正是D列中字母个数逐次累加的结果
N(ROW(A1)>MMULT(N(ROW($1:$7)>=COLUMN($A:$G)),-INT(-$B$2:$B$8/50)))部分,再做一个比较,并通过N函数将TRUE转换为1,FALSE转换为0
SUM(1,N(ROW(A1)>MMULT(N(ROW($1:$7)>=COLUMN($A:$G)),-INT(-$B$2:$B$8/50))))部分,随着公式向下拖曳,ROW(A1)的值也逐渐增大。当在第1、2行时,N函数返回的结构都是0,所以SUM函数结结果就是1;当在第3、4行时,由于3和4都大于2,所以N函数返回的结果中有一个1,因此SUM函数的结果就是2。后面的依次类推。这个这部分将作为INDEX函数的第二参数
最后,利用INDEX函数来返回正确的答案
再来看看E列。
图片
在单元格E2中输入下列公式,并向下拖曳即可。
=IF(COUNTIF(D$2:D2,D2)<COUNTIF(D:D,D2),50,VLOOKUP(D2,A:B,2,)-COUNTIF(D$1:D1,D2)*50)
由于这是一个简单的IF函数逻辑判断,这里就不再详细讲解了。朋友们如果有疑问可以私信我哦!
02下面我们试着用另一个技巧来解决这个问题。
图片
在单元格D2中输入下列公式,三键回车并向下拖曳即可。
=INDEX(A:A,SMALL(IF(INT($B$2:$B$8/50)+1<COLUMN(A:W),100,ROW($A$2:$A$8)),ROW(A1)))
思路:
IF(INT($B$2:$B$8/50)+1<COLUMN(A:W),100,ROW($A$2:$A$8))部分,INT函数取整后和COLUMN(A:W)比较。这个和上面介绍的的思路是一致的。利用IF函数返回不同的结果
SMALL函数依次提取第1、2、3..小的数值
INDEX函数返回正确答案。
这个技巧我们在以前的推文中有过多次的介绍了,如果朋友们还不是很清楚,可以参看相关的文章或者私信我。
下面来看E列。
图片
在单元格E2中输入下列公式,并向下拖曳即可。
=MIN(50,VLOOKUP(D2,A:B,2,)-COUNTIF(D$1:D1,D2)*50)
公式很简单,不再赘述了。
03最后给大家贴一个彩蛋,一条公式来完成这个题目。
图片
在单元格D2中输入下列公式,三键回车并向下拖曳即可。
=IFERROR(INDEX(IF({1,0},A:A,50-ROW(1:50)+1),MID(SMALL(IF(B2:B666>(COLUMN(A:W)-1)*50,ROW(10002:10666)/1%%+DDB(COLUMN(A:W)*50,B2:B666,1,1)+1),ROW(1:888)),{2,6},4),{1,2}),"")
公式比较复杂,看看了解一下就好啦!
本期内容练习文件提取方式:
链接:https://pan.baidu.com/s/1q9mbD-hjMtsoHyfqmUHM-A?pwd=shwy
提取码:shwy
好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”
图片
推荐阅读将数字拆分后求和的方法二三例
自从用了阶梯分析法,再也不怕算电费!
LOOKUP(1,0/(条件),(查询区域))这个公式到底该怎么用?
在上万条数据中根据摘要查找项目名称,说实话,我有些头大!
巧用中学时的数学知识,精妙构思套路解决怪异问题!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。