ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 内存数组四之美好生活

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-26 10:55 | 显示全部楼层
虽然我很喜欢excel,甚至将其运用到工作、生活的方方面面,在公司几乎所有excel相关的、不相关的,能解决的、不能解决的都会有人来问问我,或者要我来解决。
而当我看到这里,看到这道题.......我突然觉得我这自学成才的老年人和你们真真的不是一个星球的啊!
佩服!敬仰!

TA的精华主题

TA的得分主题

发表于 2019-11-26 10:57 | 显示全部楼层
本帖最后由 Michael.Deng 于 2019-11-26 11:12 编辑

=IFERROR(VLOOKUP(IF(IF(MOD(((ROW()-4)*4+COLUMN()-6),8)=0,8,MOD(((ROW()-4)*4+COLUMN()-6),8))-N(INDIRECT(ADDRESS(INT(ROW()/2.6)+3,4)))>=1,0,IF(MOD(((ROW()-4)*4+COLUMN()-6),8)=0,8,MOD(((ROW()-4)*4+COLUMN()-6),8))),INDIRECT((LEFT(ADDRESS(1,MATCH(INDIRECT("C"&INT(ROW()/2.6)+3),$P$3:$Z$3,0)+14,4)))&4&":"&(LEFT(ADDRESS(1,MATCH(INDIRECT("C"&INT(ROW()/2.6)+3),$P$3:$Z$3,0)+15,4)))&13),2,0),"")
三建下拉,花了一上午时间,真值得,好久没有来论坛了,一来就碰到如此有意思的题目,还做出来了,开心啊,其中有的地方用IF了,赶时间想到哪写到哪,不仅学了T,还顺手学了N(T 是TEXT的首字母,因此推测出来N有可能能置换数字,果不其然啊),感谢各位老师!
有Excel的生活真美好!

美好生活.rar

45.98 KB, 下载次数: 2

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-11-26 10:59 | 显示全部楼层
思路就是首先将对应的数组(1-8)拉出来,然后根据条件判断区域,选择区域,最后用vlookup取出来。不知道前面有没有老师和我一样的思路,我感觉我的思路挺笨的,一开始准备用index取的,后来发现不好判断,就改用了vlookup,偷了个懒吧。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-26 11:30 | 显示全部楼层
本帖最后由 solextrade 于 2019-11-26 21:57 编辑
Michael.Deng 发表于 2019-11-26 10:57
=IFERROR(VLOOKUP(IF(IF(MOD(((ROW()-4)*4+COLUMN()-6),8)=0,8,MOD(((ROW()-4)*4+COLUMN()-6),8))-N(INDIRE ...

感谢Michael.Deng老师参与此题,公式很优秀。

有点小瑕疵,请参见附件中的举例2(在下面)
用VLOOKUP,Michael.Deng老师是第四人,请参考22楼我走我流老师、25楼liu老师和42楼杨老师,他们也用的VLOOKUP.

TA的精华主题

TA的得分主题

发表于 2019-11-26 11:39 | 显示全部楼层
solextrade 发表于 2019-11-26 11:30
感谢Michael.Deng老师参与此题,公式很优秀。

有点小瑕疵,请参见附件中的举例2(在下面)

  我没有仔细审题不好意思 哭了,那我找个时间重新改一下

TA的精华主题

TA的得分主题

发表于 2019-11-26 13:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
思路比较呆板,好歹300内
=T(INDIRECT(TEXT(RIGHT(SMALL(IFERROR(IF(P4:X13<=CEILING(N(OFFSET(D1,MATCH(Q3:Y3,C:C,)-1,)),INT(D4/2)),(MATCH(Q3:Y3,C:C,)&P4:X13)/1%%+(IF(P4:X13>N(OFFSET(D1,MATCH(Q3:Y3,C:C,)-1,)),99,ROW(4:13))&COLUMN(Q:Y))),""),ROW(1:10)*INT(D4/2)-IF(D4>7,{3,2,1,0},{2,1,0,""})),4),"R0C00"),))

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-26 13:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mmlzh 发表于 2019-11-26 13:10
思路比较呆板,好歹300内
=T(INDIRECT(TEXT(RIGHT(SMALL(IFERROR(IF(P4:X13N(OFFSET(D1,MATCH(Q3:Y3,C:C,) ...

感谢mm老师捧场,公式非常犀利!276
看来结题有点早了,大师们的精彩公式姗姗来迟,好饭不怕晚
在下这就修改结题附件,把mm老师的公式添加进去。

mm老师好像不太支持在下的题目哈,前面好几道题目都没出手。



TA的精华主题

TA的得分主题

发表于 2020-1-11 20:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
小罗的题出得挺好,有设计,有情节,有趣味,有应用,有难度。可惜结题文件做得有些差强人意,有一些错误。

这道题,只是“评分”数据有些多余,当然作为干扰数据也是一种处理。揣测小罗的本意,是希望根据“评分”从高到低显示清单,只是比根据“排名”显示清单难度更大点。而且“排名”不设置成重名比“评分”不重分的合理性可能更大些。

对本题做了一个更新,改成根据“评分”显示清单的公式(当出现重分时,有可能有的项目显示了,而有的项目没有显示)。公式有点长,480+,有不少重复计算的部分。高手们看看,可有改进的余地?

把“数量”,“列数”,“评分”的公式也都做了一些变动,主要是增加范围,增加灵活性。

我觉得如果纯一公式过于复杂的话,有的时候加一些辅助单元格或者定义名称也未尝不是一种好的选择(比如本题的更新,根据“评分”先计算出“排名”的辅助列)。其实,辅助单元格和名称的功能是类似的,辅助单元格之于名称,如同高级语言的宏之于函数一样,一个是时间换空间,一个是空间换时间。



美好生活(Anonym更新).gif

美好生活(Anonym更新).zip

47.29 KB, 下载次数: 1

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-2-1 23:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
没有优化,太伤脑筋了。或许用=INDIRECT()会短些吧。
  1. =IFNA(VLOOKUP(MOD(SMALL(IF(COLUMN(A:J)<=CEILING(D4:D6,INT(D4/2)),IF(D4:D6>=COLUMN(A:I),TRANSPOSE(T4:T13),15)+{1;2;4}/1%),ROW(1:10)*INT(D4/2)-INT(D4/2)+COLUMN(A1:IF(INT(D4/2)=4,D1,C1))),100),OFFSET(A4,,MOD(SMALL(IF(CEILING(D4:D6,INT(D4/2))>=COLUMN(A:I),MATCH(C4:C6,3:3,)+ROW(1:3)/1%),ROW(1:10)*INT(D4/2)-INT(D4/2)+COLUMN(A1:IF(INT(D4/2)=4,D1,C1))),100)-2): Z14,2,),IF(COLUMN(A:D)<=INT(D4/2),"",1/0))
复制代码


评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-5 19:21 , Processed in 0.055773 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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