ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: wangg913

[Excel 函数与公式] [开_128][已结]相同数字个数之和(续)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-4-3 13:56 | 显示全部楼层
关于ROW()+数据区域的方法说明:
    早先在处理一平面表格数据时,要同时求出每行(列)的最值时,常用SUBTOTAL()+OFFSET()等三维取数方法,
此方法很好,但不是很直观,特别是OFFSET()取出的数用F9去查看时,经常看不到欲取数的全貌,这让初学者
很难理解,亦较难掌握,这对于不擅长空间想象的E友而言更是如此,这里介绍一种用二维取数法解决要同时求出
每行(列)的最值的方法(以下例子取自正式竞赛题 [第2期]按最后得分排序)


三维取数解答:
两个公式分别为:
=OFFSET(B9,11-MOD(LARGE(MMULT(SUBTOTAL({4,5,9},OFFSET(C$9,ROW(1:10),,,5)),{-1;-1;1})/1%+11-ROW(1:10),ROW(1:10)),100),)
=LARGE(MMULT(SUBTOTAL({4,5,9},OFFSET(C9,ROW(1:10),,,5)),{-1;-1;1}),ROW(1:10))
公式中OFFSET(C9,ROW(1:10),,,5)用F9查看是看不到取出的数的全貌的
ROW()+表格数据解答方法
两个公式分别为:
=INDEX(B10:B19,11-MOD(LARGE(MOD(MMULT(SMALL(ROW(1:10)/1%+C10:G19,ROW(1:10)*5-{3,2,1}),{1;1;1}),100)/1%+11-ROW(1:10),ROW()-37),100),)
=LARGE(MOD(MMULT(SMALL(ROW(1:10)/1%+C10:G19,ROW(1:10)*5-{3,2,1}),{1;1;1}),100),ROW(1:10))
其中核心公式为:SMALL(ROW(1:10)/1%+C10:G19,ROW(1:10)*5-{3,2,1})
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}
C、然后通过SMALL()按数值大小取出ROW(1:10)/1%+C10:G19数据中的排位分别为:
{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}
的值(原数据维数保持不变)
再后是程式化的步骤,不再赘述。

ROW()+数据.rar

5.6 KB, 下载次数: 37

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-4-3 16:58 | 显示全部楼层
感谢fangjianp的精彩讲解,下载,学习!
offset三维取数的确很不直观。我也是上次在看wangg913版主解答一题时才明确它的用法。后来我找出了用indirect代替的方法,但也无法在内存数组中直观的看到,而且嵌套也是比较多。
fangjianp这个方法真的很好。支持一下

TA的精华主题

TA的得分主题

发表于 2011-4-5 20:06 | 显示全部楼层
原来这一题我没有留名啊。。。

TA的精华主题

TA的得分主题

发表于 2011-4-19 17:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 4楼 fangjianp 的帖子

首先,在原始数据列不变的情况下,为你的思路喝彩。
但很显然,取巧的嫌疑很大。
如果数据一和数据二间隔的列数不定,或者置于两个不同的工作表中,这种思路可就无用武之地了。

TA的精华主题

TA的得分主题

发表于 2011-4-19 18:38 | 显示全部楼层

回复 24楼 lzzgzby 的帖子

怎么讲?比如?

TA的精华主题

TA的得分主题

发表于 2011-5-5 09:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-8-17 13:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-12-27 17:19 | 显示全部楼层
感谢fangjianp 和wangg913 两位的精彩讲解呀~~~
这个题目的构造的思路、方法已经远远超过题目本身的意义了!!
受教学习并留名了!! 再次感谢分享~~~~

TA的精华主题

TA的得分主题

发表于 2012-2-28 11:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yumoym 发表于 2011-3-23 21:42
=COUNT(SEARCH(TEXT(COLUMN(A:J)-1&"*0","@z!*@"),TEXT(MMULT(-OFFSET(A1:G10,COUNT(A:A)-9,),10^ROW(1:7)) ...

"@z!*@"弱弱地问下,这个是什么意思呀

TA的精华主题

TA的得分主题

发表于 2012-3-22 21:22 | 显示全部楼层
hou_xuerong 发表于 2012-2-28 11:27
"@z!*@"弱弱地问下,这个是什么意思呀

@与!是自定义格式中的特殊字符。
一个@表示要显示原字符一次;
!的作用是强制显示其后的一个字符。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-3 07:44 , Processed in 0.039861 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表