ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第94期_2]不重复数字间的数字之和[已总结]

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-20 21:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本题目粗看简单,再看复杂,继续看又简单了,不重复统计,无外乎3种方案,FREQUENCY、COUNTIF、MATCH,本题目挑战字符数当然是COUNTIF取胜,3个思路都可以实现效果
从短到长吧!
1.COUNTIF(算是取巧,目前的108字符应该是这种写法)
  1. =SUM((MMULT(N(COLUMN(B:AE)>ROW(1:30)),N(COUNTIF(OFFSET(A1,ROW(1:30),COLUMN(A:G)-1,30),A2:G31)=1))=7)*A2:G31)
复制代码
2.COUNTIF(比1更加规范的写法,但是不幸的是字符长了2个计110字符,但是没有取巧)
  1. =SUM((MMULT(N(COLUMN(B:AE)>ROW(1:30)),N(COUNTIF(OFFSET(A31,,COLUMN(A:G)-1,ROW(1:30)-31),A2:G31)=1))=7)*A2:G31)
复制代码
3.COUNTIF(OFFSET参数不用负数,常规写法,计118字符)
  1. =SUM((MMULT(N(COLUMN(B:AE)>ROW(1:30)),N(COUNTIF(OFFSET(A1,ROW(1:30),COLUMN(A:G)-1,31-ROW(1:30)),A2:G31)=1))=7)*A2:G31)
复制代码
4.MATCH(使用数组重构和MATCH=ROW原来统计是否第一次出现,然后利用MMULT累计,计170字符)
  1. =SUM((MMULT(N(COLUMN(B:AE)>ROW(1:30)),N(MATCH(A2:G31&COLUMN(A:G),RIGHT(SMALL(A2:G31%-ROW(2:31)+COLUMN(A:G)*100.001,ROW(1:210)),2),)=COLUMN(B:H)*30-ROW(30:59)))=7)*A2:G31)
复制代码
5.FREQUENCY(利用FREQUENCY对第二次出现的重复性分段的频率皆为0特性,后续同MATCH和COUNTIF,字符最长,计206字符,未简化)
  1. =SUM((MMULT(N(COLUMN(B:AE)>ROW(1:30)),MOD(SMALL((FREQUENCY(A2:G31+COLUMN(A:G)*10,MOD(SMALL(A2:G31-ROW(2:31)/1%+COLUMN(A:G)*10010,ROW(1:209)),100))>0)+ROW(1:210)/1%,COLUMN(B:H)*30-ROW(30:59)),10))=7)*A2:G31)
复制代码



评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-5-21 11:31 | 显示全部楼层
坐等高手的108字符,只能写到174字符:
  1. =SUM(SUBTOTAL(9,OFFSET(A2,,COLUMN(A:G)-1,MOD(-SMALL(COUNTIF(OFFSET(A1:A30,ROW(1:30),COLUMN(A:G)-1),A2:G31)/1%-ROW(1:30)+COLUMN(A:G)/1%%,COLUMN(A:G)*30-{23;22}),100)))*{1;-1})
复制代码

点评

悟空还那么犀利,我两年没怎么碰Excel,发现自己老了。跟不上趟了!  发表于 2013-5-29 04:29

TA的精华主题

TA的得分主题

发表于 2013-5-21 16:29 | 显示全部楼层
本想在原楼层编辑一下,提示我无权操作,只好再占一层楼
593字
  1. =SUM((MMULT(SIGN(COUNTIF(OFFSET(A1,ROW(1:30),,30),COLUMN(A:J)-1)),ROW(1:10)^0)=7)*A2:A31+(MMULT(SIGN(COUNTIF(OFFSET(B1,ROW(1:30),,30),COLUMN(A:J)-1)),ROW(1:10)^0)=7)*B2:B31+(MMULT(SIGN(COUNTIF(OFFSET(C1,ROW(1:30),,30),COLUMN(A:J)-1)),ROW(1:10)^0)=7)*C2:C31+(MMULT(SIGN(COUNTIF(OFFSET(D1,ROW(1:30),,30),COLUMN(A:J)-1)),ROW(1:10)^0)=7)*D2:D31+(MMULT(SIGN(COUNTIF(OFFSET(E1,ROW(1:30),,30),COLUMN(A:J)-1)),ROW(1:10)^0)=7)*E2:E31+(MMULT(SIGN(COUNTIF(OFFSET(F1,ROW(1:30),,30),COLUMN(A:J)-1)),ROW(1:10)^0)=7)*F2:F31+(MMULT(SIGN(COUNTIF(OFFSET(G1,ROW(1:30),,30),COLUMN(A:J)-1)),ROW(1:10)^0)=7)*G2:G31)
复制代码

TA的精华主题

TA的得分主题

发表于 2013-5-24 07:33 | 显示全部楼层
108 字符
  1. =SUM((MMULT(N(ROW(1:30)>COLUMN(A:AD)),N(COUNTIF(OFFSET(A1,ROW(1:30),COLUMN(A:G)-1,30),A2:G31)=1))=3)*A2:G31)
复制代码

补充内容 (2013-6-4 07:32):
头一把鸡。在省一字符。107字符
=SUM((MMULT(N(ROW(1:26)>COLUMN(A:Z)),N(COUNTIF(OFFSET(A1,ROW(1:26),COLUMN(A:G)-1,30),A2:G27)=1))=3)*A2:G27)

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-5-24 12:53 | 显示全部楼层
解法一:108字,数组公式
  1. =SUM((MMULT(-(COLUMN(B:AE)>ROW(1:30)),-(COUNTIF(OFFSET(A1,ROW(1:30),COLUMN(A:G)-1,30),A2:G31)=1))=7)*A2:G31)
复制代码
解法二:220字,数组公式
  1. =SUM(SUBTOTAL(9,OFFSET(A32,,COLUMN(A:G)-1,COLUMN(A:G)*30-SMALL(MATCH(REPT("?",COLUMN(B:H))&ROW(1:10)-1&"*",LARGE(ROW(11:40)*10^7+MMULT(A2:G31,10^(7-ROW(1:7))),ROW(1:30))&"",)+COLUMN(A:G)*30,COLUMN(A:G)-1&{7;8})))*{-1;1})
复制代码

点评

Xcd还在,看这照片以为我往生了。。。  发表于 2013-5-29 04:30

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-5-26 17:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =SUM({1,-1}*SUBTOTAL(9,OFFSET(A2,,,LARGE((COUNTIF(OFFSET(A31,,,ROW(1:30)-31),A2:A31)=1)*ROW(1:30),{7,8})),OFFSET(B2,,,LARGE((COUNTIF(OFFSET(B31,,,ROW(1:30)-31),B2:B31)=1)*ROW(1:30),{7,8})),OFFSET(C2,,,LARGE((COUNTIF(OFFSET(C31,,,ROW(1:30)-31),C2:C31)=1)*ROW(1:30),{7,8})),OFFSET(D2,,,LARGE((COUNTIF(OFFSET(D31,,,ROW(1:30)-31),D2:D31)=1)*ROW(1:30),{7,8})),OFFSET(E2,,,LARGE((COUNTIF(OFFSET(E31,,,ROW(1:30)-31),E2:E31)=1)*ROW(1:30),{7,8})),OFFSET(F2,,,LARGE((COUNTIF(OFFSET(F31,,,ROW(1:30)-31),F2:F31)=1)*ROW(1:30),{7,8})),OFFSET(G2,,,LARGE((COUNTIF(OFFSET(G31,,,ROW(1:30)-31),G2:G31)=1)*ROW(1:30),{7,8}))))
复制代码
真心佩服你们这些高手们,晕死,我弄了三天才过800个字

本帖子中包含更多资源

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

x

点评

有点穷举的感觉。  发表于 2013-6-27 11:12

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-5-28 10:54 | 显示全部楼层
170字符
  1. =SUM((MMULT(N(ROW(1:30)>30-MOD(COLUMN(A:HC)-1,30)),FREQUENCY(ROW(10:79),N(OFFSET(A32,-COLUMN(A:AD),ROW(1:7)-1))+ROW(1:7)*10)*(INT(ROW(30:240)/30)=COLUMN(A:G)))=3)*A2:G31)
复制代码

TA的精华主题

TA的得分主题

发表于 2013-5-31 10:32 | 显示全部楼层
本帖最后由 delete_007 于 2013-5-31 15:01 编辑

又不能编辑帖子了??

弄了个108字符的,只能另回帖了:
  1. =SUM((MMULT(N(ROW(1:30)>COLUMN(A:AD)),N(COUNTIF(OFFSET(A1,ROW(1:30),COLUMN(A:G)-1,30),A2:G31)=1))=3)*A2:G31)
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-6-2 14:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
chunlin1wang 发表于 2013-5-28 10:54
170字符

144
  1. =SUM((MMULT(N(ROW(1:30)>31-COLUMN(A:AD)),N(COUNTIF(OFFSET(A31,,COLUMN(A:G)-1,-ROW(1:30)),N(OFFSET(A32,-ROW(1:30),COLUMN(A:G)-1)))=1))=3)*A2:G31)
复制代码

点评

请不要重复占楼哦。  发表于 2013-6-2 15:03

TA的精华主题

TA的得分主题

发表于 2013-6-3 14:49 | 显示全部楼层
没装03 用07测试的

不过肯定受了108的提示才完成


补充内容 (2013-6-10 16:25):
=SUM((MMULT(N(ROW(1:30)>COLUMN(A:AD)),N(COUNTIF(OFFSET(A2,ROW(1:30),COLUMN(A:G)-1,30),A2:G31)=0))=3)*A2:G31)

补充内容 (2013-6-14 22:25):
03和07还真不一样
=SUM((MMULT(N(ROW(1:30)>COLUMN(A:AD)),N(COUNTIF(OFFSET(A1,ROW(1:30),COLUMN(A:G)-1,30),A2:G31)=1))=3)*A2:G31)

本帖子中包含更多资源

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

x

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-4-27 09:10 , Processed in 0.056105 second(s), 22 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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