楼主 fangjianp |
关于ROW()+数据区域的方法说明: 处理一平面表格数据时,要同时求出每行(列)的最值时,常用SUBTOTAL()+OFFSET()等三维取数方法,这方法很好,但不是很直观,特别是OFFSET()取出的数用F9去查看时,经常看不到欲取数的全貌,初学函数者难于理解,掌握。 本文介绍一种用二维取数方法,解决要同时求出每行(列)的最值的方法(结合以下例子说明,该例取自EH正式竞赛题 [第2期]按最后得分排序) ROW()+表格数据解答方法 两个公式分别为:
其中核心公式为:
A、直接取数:C10:G19 B、ROW(1:10)/1%+C10:G19,将C10:G19分别置于区间:[100,200),[200,300),[300,400),[400,500),[500,600),[600,7000),[7000,800),[800,900),[900,1000),[1000,1100) 结果为:{103,102,103,102,101;204,201,205,205,204;304,305,301,302,304;402,401,403,402,405;505,503,502,501,502;602,604,603,602,603;701,703,705,701,704;801,803,804,802,802;901,904,904,902,904;1001,1004,1005,1005,1003} 这样处理后,表格中第N行数据加了N*100,后续行的数比前面所有的数据大。 C、按题目要求,每行数据要去掉一个最高分和最低分,即每行取在该行中排位在{2,3,4}的数据 第一行5个数据排序(增序){2,3,4}的数据是{102,102,103},在全部数据中排名{2,3,4} 第二行5个数据排序(增序){2,3,4}的数据是{204,204,205},在全部数据中排名{7,8,9} …………………… 第十行5个数据排序(增序){2,3,4}的数据是{1003,1004,1005},在全部数据中排名{47,48,49} 通过SMALL(……,ROW(1:10)*5-{3,2,1})取出, <1> {102,102,103;204,204,205;302,304,304;402,402,403;502,502,503;602,603,603;701,703,704;802,802,803;902,904,904;1003,1004,1005} <1>式中ROW(1:10)*5-{3,2,1}={2,3,4;7,8,9;12,13,14;17,18,19;22,23,24;27,28,29;32,33,34;37,38,39;42,43,44;47,48,49} D、用MOD()函数将取出的数据还原, 再后是程式化的步骤,详见附件,不再赘述。 三维取数解答 两个公式分别为:
公式中OFFSET(C9,ROW(1:10),,,5)用F9查看是看不到取出的数的全貌的 ROW()+数据.rar |
2楼 bluexuemei |
我觉得这种方法很难理解。 |
3楼 laowuwyx |
楼主可否解释一下公式中ROW(1:10)*5-{3,2,1}? |
4楼 kakaco |
诶。太难了。。~~能开个课程就好了。 |
5楼 fangjianp |
看看,还有没有其他问题,一起解释,谢谢提问! |
6楼 wise |
那个截图不规范,我看不到啊 |
7楼 LOGO |
那图我也看不到。 |
8楼 cookijie |
感觉有点复杂 |