ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 【练习题】内存数组同行排序——( 有技术分奖励!已结束)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-24 10:35 | 显示全部楼层
象山海鲜 发表于 2019-4-24 10:17
这里我的不是模拟结果,而是演示:
演示的结果 不是落地值,为了方便表达理解才这样演示的!
实际是结 ...

海版请亮剑吧,我想法区域数组,没思路了。
=SMALL(IFERROR(ROW()/1%+数据源,1=0),ROW()*2-{3,2})-ROW()/1%

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-24 10:39 | 显示全部楼层
江苏永能朱兴华 发表于 2019-4-24 10:35
海版请亮剑吧,我想法区域数组,没思路了。
=SMALL(IFERROR(ROW()/1%+数据源,1=0),ROW()*2-{3,2})-ROW() ...

不急,先看主楼,设置奖励了~!
加油~~~!

TA的精华主题

TA的得分主题

发表于 2019-4-24 10:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
象山海鲜 发表于 2019-4-24 10:39
不急,先看主楼,设置奖励了~!
加油~~~!

SMALL(IFERROR(ROW(1:90)/1%+数据源,1=0),ROW(1:90)*2-{1,0})-ROW(1:90)/1%,海版按F9可以得到内存数组啊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-24 10:52 | 显示全部楼层
江苏永能朱兴华 发表于 2019-4-24 10:49
SMALL(IFERROR(ROW(1:90)/1%+数据源,1=0),ROW(1:90)*2-{1,0})-ROW(1:90)/1%,海版按F9可以得到内存数组啊 ...

数据源是多少行,结果也是多少行!

TA的精华主题

TA的得分主题

发表于 2019-4-24 10:55 | 显示全部楼层
我是不是没理解题意?
  1. =SMALL(IFERROR(数据源+ROW(2:90)*10^3,""),ROW(1:89)*2-1+{0,1})-ROW(2:90)*10^3
复制代码

TA的精华主题

TA的得分主题

发表于 2019-4-24 11:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
天意转难知 发表于 2019-4-24 10:55
我是不是没理解题意?

厉害,题意应该是理解了,但是好像和满坛版主一样,海鲜老师说不符合,

TA的精华主题

TA的得分主题

发表于 2019-4-24 11:20 | 显示全部楼层
目的是得到一个内存数组,所以按题意肯定是个区域数组公式?

源有多大,就得到多大的结果,所以后面不能有错误值,也不用用text或者iferror,或者其他把错误值显示为空?

所以不能用row(1:89)这种可源大小不一致的引用?所以满坛版主,朱老师那种结果为89行的公式,属于不符合题意?
类似这种都不行:
=TEXT(SMALL(IFNA(数据源+ROW(2:90)/1%,4^8),ROW(1:89)*2-1+{0,1})-ROW(2:90)/1%,"[<9];")

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-4-24 11:21 | 显示全部楼层
江苏永能朱兴华 发表于 2019-4-24 10:49
SMALL(IFERROR(ROW(1:90)/1%+数据源,1=0),ROW(1:90)*2-{1,0})-ROW(1:90)/1%,海版按F9可以得到内存数组啊 ...

海鲜老师说明写的太专业了,要的结果就是真实可用不带杂质的内存数组(比如就随机到2行,就是{1,2;1,3;-2,4},随机到5行就是{1,2;1,3;-2,4;3,5;-3,3;2,3}),我也是海鲜给我最后的答案批错才明白要的结果是啥。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-24 11:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
micch 发表于 2019-4-24 11:20
目的是得到一个内存数组,所以按题意肯定是个区域数组公式?

源有多大,就得到多大的结果,所以后面不能 ...

假设数据源={-1,3;-4,-5}
那么得到的结果是={-1,3;-5,-4}
而不是
={-1,3;-5,-4;"",""....}
={-1,3;-5,-4;#N/A,#N/A;....}
用讨论2的附件 测试下rows的结果 和 J1 单元格的大小是否一致
     

TA的精华主题

TA的得分主题

发表于 2019-4-24 11:53 | 显示全部楼层
象山海鲜 发表于 2019-4-24 11:48
假设数据源={-1,3;-4,-5}
那么得到的结果是={-1,3;-5,-4}
而不是

好难啊。结果数组和源大小一致,首先就要判断源有多少,但是不论用什么函数判断,引用次数就超1次了。
所以根本就没有判断源大小的过程直接就要得出结果,我感觉我能想一辈子。今天翻翻书多学一点内容
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 06:59 , Processed in 0.044027 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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