ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [72期]倒取不重复数字(二)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-30 13:31 | 显示全部楼层 |阅读模式
题目:倒取不重复数字

1、A列数字为 0~9 之间的整数,全是数值型数字,不会出现空单元格、文本型数字、文本字符;
2、在 E21 输入公式下拉,要求倒着从 A20、A19、A18、A17、A16 直至 A4、A3、A2、A1取不重复数字;
3、最终将 每20行 的不重复数字连起来,即 D21 所呈现的形式,F列为验证列,如果全是 TRUE ,即为正确;
4、现给出其中一个公式,这个公式前两天已经公布,可参照使用,也可以按自己的思路设计公式;

=MID(SUM(RIGHT(LARGE((COUNTIF(OFFSET(A20,,,ROW($1:$20)-21),A1:A20)=1)*ROW(1:20)/1%+A1:A20,ROW($1:$10)))/10^ROW($1:$10))&0,3,COUNT(MATCH(ROW($1:$10)-1,A1:A20,)))

5、公式长度限定在208以内,也可给出不同思路的公式。每一种思路加技术分 1分,精彩公式给 2分,但每人最多加 2分;
6、因为已经给出参照公式,所以要求主体函数不能相同,不能再使用 COUNTIF(OFFSET()) 这种形式;双下划线的标示即为主体公式;
7、公式需保证在2003版附件、2007版兼容模式正常运行;
8、题目有效期至 2011-4-10

补充说明:
我的原先公式稍有纰漏,应改为
=MID(SUM(RIGHT(LARGE((COUNTIF(OFFSET(A20,,,ROW($1:$20)-21),A1:A20)=1)*ROW(1:20)/1%+A1:A20,ROW($1:$10)))/10^ROW($2:$11))&1%,4,COUNT(MATCH(ROW($1:$10)-1,A1:A20,)))
以免20行全是0,出现错误提取的情况,希望不要影响大家情绪,呵呵。

[ 本帖最后由 wangg913 于 2011-4-11 09:50 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-30 22:36 | 显示全部楼层

回复 1楼 wangg913 的帖子

{=SUBSTITUTE(SUM(RIGHT(0&MID(RIGHT(0&MMULT(TRANSPOSE(A1:A20),10^(ROW($1:$20)-1)),20),SMALL(FIND(ROW($1:$10)-1,0&MMULT(TRANSPOSE(A1:A20),10^(ROW($1:$20)-1))&1/17),ROW($1:$10)),1))*10^(1-ROW($1:$10))),".","")}

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-30 23:02 | 显示全部楼层

回复 1楼 wangg913 的帖子

版主把路给堵死了(不准用countif(offset())),搞了几个,其中有个长度209,太恶心了。
终于碰巧,有了一个,先交上:
长度:165
E21=MID(SUM(RIGHT(LARGE(MMULT(COLUMN(A:T)^0,(A1:A20=COLUMN(A:J)-1)*2^ROW($1:$20)*5)+COLUMN(A:J)-1,ROW($1:$10)))/10^ROW($1:$10))&0,3,COUNT(MATCH(COLUMN(A:J)-1,A1:A20,)))
数组公式,下拉。
简化:长度:149
E21=MID(SUM(RIGHT(LARGE(MMULT(2^COLUMN(A:T),5*(A1:A20=COLUMN(A:J)-1))+COLUMN(J:S),ROW($1:$10)))/10^ROW($1:$10))&0,3,COUNT(MATCH(COLUMN(A:J)-1,A1:A20,)))

再给一个,硬凑,长度:199
E21=MID(SUM(RIGHT(SMALL(FIND(COLUMN(A:J)-1,RIGHT(0&SUM(A8:A20*10^ROW($2:$14))%,13)&SUM(A1:A8*10^ROW($2:$9))%&5^19)/1%+COLUMN(A:J)-1,COLUMN(A:J)))/10^COLUMN(A:J))&0,3,COUNT(MATCH(COLUMN(A:J)-1,A1:A20,)))
(说明其中A8字符是0也不会遗失)
再给一个,长度:204
E21=MID(SUM(RIGHT(SMALL(MATCH(COLUMN(A:J)-1,IF(ROW($1:$30)<21,LOOKUP(21-ROW($1:$20),ROW($1:$20),A1:A20),ROW($1:$30)-21),)/1%+COLUMN(J:S),COLUMN(A:J)))/10^COLUMN(A:J))&0,3,COUNT(MATCH(COLUMN(A:J)-1,A1:A20,)))
硬搞一个,长度:203(呵呵^^)
E21=MID(SUM(RIGHT(SMALL(FIND(COLUMN(A:J)-1,A20&A19&A18&A17&A16&A15&A14&A13&A12&A11&A10&A9&A8&A7&A6&A5&A4&A3&A2&A1&5^19)/1%+COLUMN(J:S),COLUMN(A:J)))/10^COLUMN(A:J))&0,3,COUNT(MATCH(COLUMN(A:J)-1,A1:A20,)))
以上公式最后全是MID(SUM(RIGHT(SMALL/LARGE()))结束,换一种思路
公式长度:183
E21=MID(SUM(N(OFFSET(A$1,LARGE(MOD(SMALL((ROW(1:20)-1)*(A1:A20=COLUMN(A:J)-1)+COLUMN(A:J)/1%,20*COLUMN(A:J)),100),COLUMN(A:J)),))/10^COLUMN(A:J))&0,3,COUNT(MATCH(COLUMN(A:J)-1,A1:A20,)))
公式长度:178
E21=MID(SUM(RIGHT(LARGE(RIGHT(SMALL(ROW($1:$20)*(A1:A20=COLUMN(A:J)-1)/1%+COLUMN(A:J)*10001,20*COLUMN(A:J)),4)-1,COLUMN(A:J)))/10^COLUMN(A:J))&0,3,COUNT(MATCH(COLUMN(A:J)-1,A1:A20,)))

[ 本帖最后由 fangjianp 于 2011-4-5 16:49 编辑 ]

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-31 11:31 | 显示全部楼层
先来一个201个字符的
  1. =LEFT(TEXT(SUM(RIGHT(LARGE(--((MATCH(A1:A20,LOOKUP(21-ROW($1:$20),ROW($1:$20),A1:A20),)=21-ROW($1:$20))*ROW($1:$20)&A1:A20),ROW($1:$10)))*10^(10-ROW($1:$10))),REPT(0,10)),SUM(1/COUNTIF(A1:A20,A1:A20)))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-31 14:52 | 显示全部楼层
E21=MID(SUM(MID(TEXT(LARGE(MMULT(100^COLUMN(A:T),(COLUMN(A:J)+9)*(A1:A20=COLUMN(A:J)-1)),ROW($1:$10)),"0.0E+0"),3,1)/10^ROW($2:$11))&1%,4,COUNT(MATCH(ROW($1:$10)-1,A1:A20,)))

E21=MID(SUM(RIGHT(LARGE((MATCH(A1:A20,N(OFFSET(A21,-ROW($1:$20),)),)=21-ROW($1:$20))*ROW($1:$20)*10+A1:A20,ROW($1:$10)))/10^ROW($2:$11))&1%,4,COUNT(MATCH(ROW($1:$10)-1,A1:A20,)))

[ 本帖最后由 wddn 于 2011-3-31 18:07 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-31 17:59 | 显示全部楼层
  1. =MID(SUM(RIGHT(LARGE((MATCH(A1:A20,N(OFFSET(A21,-ROW($1:$20),)),)=ROW()-ROW(1:20))*ROW(1:20)/1%+A1:A20,ROW($1:$10)))/10^ROW($2:$11))&1%,4,COUNT(MATCH(ROW($1:$10)-1,A1:A20,)))
复制代码
招葫芦画瓢写一个,长度174

[ 本帖最后由 Zaezhong 于 2011-3-31 18:01 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-31 21:43 | 显示全部楼层
最近竞赛版在几位新版主的带领下,又热闹起来了,深感欣慰.

支持一下 ,顺带骗分.

很少做EXCEL函数题了,脑子快锈了,做一下练练,免得都忘了.

感觉本题难度相对简单一些,基本上是对以前概念的复习.我也没有什么新的思路, 基本还是原先的思路.

希望看到新的思路,学习一下.

含"="公式字符数148:
=MID(SUM(RIGHT(LARGE(MMULT(2^COLUMN(A:T),(A1:A20=COLUMN(A:J)-1)/1%)+COLUMN(J:S),COLUMN(A:J)))/10^COLUMN(A:J))&0,3,COUNT(1/FREQUENCY(A1:A20,A1:A20)))

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-31 23:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-4-1 07:25 | 显示全部楼层
=MID(SUM(N(OFFSET(A1,LARGE((FREQUENCY(ROW($1:$11)-1,A1:A20+(21-ROW($1:$20))%)>0)*(ROW($1:$21)-1),ROW($2:$11)),))/10^ROW($1:$10))&"00",3,COUNT(1/FREQUENCY(A1:A20,A1:A20)))
170字符
=MID(SUM(RIGHT(LARGE((21-MATCH(A1:A20,N(OFFSET(A1,20-ROW($1:$20),)),)=ROW($1:$20))*ROW(1:20)/1%+A1:A20,ROW($1:$10)))/10^ROW($1:$10))&"00",3,COUNT(1/FREQUENCY(A1:A20,A1:A20)))
174字符
=MID(SUM(RIGHT(LARGE((FREQUENCY(ROW($1:$11)-1,A1:A20+(21-ROW($1:$20))%)>0)*ROW(1:21)/1%+A1:A21,ROW($2:$11)))/10^ROW($1:$10))&"00",3,COUNT(1/FREQUENCY(A1:A20,A1:A20)))
166字符

[ 本帖最后由 chunlin1wang 于 2011-4-6 18:07 编辑 ]

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-4-1 11:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

=IF(A20=0,0,"")&SUM(RIGHT(SMALL(IF(MATCH(N(OFFSET(A21,-ROW($1:$20),)),N(OFFSET(A21,-ROW($1:$20),)),)=ROW($1:$20),ROW($1:$20)/1%+N(OFFSET(A21,-ROW($1:$20),)),9000),ROW($1:$10)))/10^ROW($1:$10))*10^(COUNT(MATCH(ROW($1:$10)-1,A1:A20,)))

233个字符,纠结中。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-23 18:14 , Processed in 0.039148 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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