ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 【练习小题】压缩连续数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-7-6 11:18 | 显示全部楼层
本帖最后由 shaowu459 于 2020-7-6 11:19 编辑
17601211544 发表于 2020-7-6 11:04
太牛逼了,大神们,但是用到的机会基本没有吧

这个不一定。单独说完全一样的题目工作中不会有,但是通过练习解决这些题目获得的对函数公式、解决方案的积累是有用的。就跟下围棋似的,工作中也用不到围棋,但是围棋锻炼出来的脑子和眼界及思维宽广度、记忆力和计算力,是影响很多方面的。

评分

4

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-6 11:32 | 显示全部楼层
17601211544 发表于 2020-7-6 11:04
太牛逼了,大神们,但是用到的机会基本没有吧

怎么说呢   
对于函数而言,都有自己的功能与应用场景。我个人观点是需要了解函数以及处理问题的思路。这样才能在遇到具体问题时想到可以使用什么函数和按照什么思路来解决问题。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-7-6 11:42 | 显示全部楼层
这个最近遇到一个需求貌似还真就用的上,可惜对方没有CONCAT 或者textjion 等。 最后换了一种实际操作方式来绕过这个需求。

给各位老师点赞。 会的已经忘记完。

TA的精华主题

TA的得分主题

发表于 2020-7-6 14:29 | 显示全部楼层
shaowu459 发表于 2020-7-6 11:18
这个不一定。单独说完全一样的题目工作中不会有,但是通过练习解决这些题目获得的对函数公式、解决方案的 ...

说得牛逼,赞一个

TA的精华主题

TA的得分主题

发表于 2020-7-6 18:33 | 显示全部楼层
本帖最后由 象山海鲜 于 2020-7-6 18:38 编辑

简化下
  1. =MID(SUBSTITUTE(CONCAT(FILTERXML("<a><b a='-"&SUBSTITUTE(A2,",","'>,</b><b a='-")&"'>,</b></a>","//@a[not(.+1=//@a and .-1=//@a)]|//b[not(@a+1=//@a)]")),",-",","),2,99)
复制代码

换个思路 未简化
  1. =MID(CONCAT(IFERROR(MID(",-,",MMULT(--ISERR(FIND(","&MID(SUBSTITUTE(A2,",",REPT(" ",99)),ROW($1:$50)*99-98,99)+{-1,1}&",",","&A2&",")),{1;2}),1)&--MID(SUBSTITUTE(A2,",",REPT(" ",99)),ROW($1:$50)*99-98,99),"")),2,99)
复制代码

评分

6

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-7-11 11:29 | 显示全部楼层
抄一个
=MID(CONCAT(IFERROR(MID(",-,",MMULT(--ISERR(FIND(","&ROW($1:$999)-{1,-1}&",",","&A2&",")),{1;2}),1)&IF(FIND(","&ROW($1:$999)&",",","&A2&","),ROW($1:$999),""),"")),2,99)

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-7-28 23:50 | 显示全部楼层
今天终于学会用PQ搞了,仅供参考。

【练习小题】压缩连续数-PQ.rar

14.28 KB, 下载次数: 16

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-1-29 23:25 | 显示全部楼层
17601211544 发表于 2020-7-6 11:04
你们都是大神无敌,但是我感觉工作中用处不会有。

我见过有这种需求,只是那些数字分在别的单元格了

TA的精华主题

TA的得分主题

发表于 2022-11-1 13:30 | 显示全部楼层
  1. =MAP(A2:A5,LAMBDA(x,LET(_a,--TEXTSPLIT(x,,","),_b,ISNA(MATCH(_a-1,_a,)),_c,ISNA(MATCH(_a+1,_a,)),_d,FILTER(_a,_b),_e,FILTER(_a,_c),ARRAYTOTEXT(IF(_d=_e,_d,_d&"-"&_e),0))))
复制代码
另一个方法
  1. =MAP(A2:A5,LAMBDA(s,LET(_a,--TEXTSPLIT(s,,","),_b,"A"&(_a-SEQUENCE(ROWS(_a))),_c,UNIQUE(_b),ARRAYTOTEXT(MAP(_c,LAMBDA(x,LET(_d,FILTER(_a,_b=x),IF(ROWS(_d)=1,_d,@_d&"-"&TAKE(_d,-1))))),0))))
复制代码


捕获.PNG

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-11-3 20:02 | 显示全部楼层
本帖最后由 micch 于 2022-11-3 20:47 编辑
  1. =SUBSTITUTE(SUBSTITUTE(TRIM(CONCAT(IF(MMULT(IFERROR(FIND(","&{-1,0,1}+ROW($1:$9999)&",",","&A2&",")^0,),{1;2;4})={3,2,6},{"-"," "," "}&ROW($1:$9999)&{" "," ","-"},""))),"--","-")," ",",")
复制代码
  1. =SUBSTITUTE(TRIM(CONCAT(IF(MMULT(IFERROR(FIND(","&{-1,0,1}+ROW($1:$9999)&",",","&A2&",")^0,),{1;2;4})={3,2,6},{""," "," "}&ROW($1:$9999)&{" "," ","-"},"")))," ",",")
复制代码

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-4-27 23:55 , Processed in 0.039605 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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