ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 求抽取k个数字能组成的最大数字(已结贴)

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-22 14:13 | 显示全部楼层
更新一个公式:

  1. =LET(s,ROW($1:99),t,REDUCE(SUBSTITUTE(A2,",",),s,LAMBDA(x,y,IF(LEN(x)=B2,x,REPLACE(x,IFNA(MATCH(1=1,MID(x,s,1)<MID(x,s+1,1),),99),1,)))),LEFT(RIGHT(t,LEN(--t)),B2))
复制代码
图片.png


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-22 14:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 象山海鲜 于 2023-11-22 15:29 编辑

  1. =REDUCE(,LEFT(SCAN(","&A2,SEQUENCE(B2),LAMBDA(x,y,MID(x,FIND(@SORT(DROP(DROP(TEXTSPLIT(x,,","),1),y-B2),,-1),x,2),99)))),LAMBDA(x,y,IF(-x,x,)&y))
复制代码
  1. =@REDUCE(TEXTSPLIT("0,"&A2&",",,","),SEQUENCE(B2),LAMBDA(x,y,LET(m,DROP(DROP(x,1),y-B2-1),n,@SORT(m,,-1),VSTACK(IF(-@x,@x,)&n,DROP(x,MATCH(n,m,)+1)))))
复制代码

评分

8

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-22 17:03 | 显示全部楼层
  1. =LET(a,--TEXTSPLIT(A2,,","),b,ROWS(a),REDUCE("",SEQUENCE(b),LAMBDA(x,y,LET(c,DROP(a,y-1),d,b-y+2-B2+LEN(x),IF(LEN(x)=B2,x,IF(-(0&x),x,)&IF(d,IF(@c=MAX(TAKE(c,d)),@c,""),@c))))))
复制代码
这个有点长

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-22 22:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =LET(u,TAKE(REDUCE(HSTACK(""," "&A2),SEQUENCE(B2)-B2,LAMBDA(X,Y,LET(n,@TAKE(X,-1,1),p,@TAKE(X,-1,-1),m,--TEXTSPLIT(REPLACE(p,1,FIND(RIGHT(n),p),""),,",",1),VSTACK(X,HSTACK(n&MAX(DROP(m,Y)),TEXTJOIN(",",,m)))))),-1,1),IF(LEN(u*1)>15,LEFT(u,15)*1&RIGHT(u,B2-15),TEXT(u,0)))
复制代码

000.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-23 08:48 | 显示全部楼层
本帖最后由 shaowu459 于 2023-11-23 09:36 编辑

改写一个:

  1. =LET(u,TEXTSPLIT(A2,,","),REDUCE(,INDEX(u,SCAN(0,SEQUENCE(B2),LAMBDA(x,y,LET(t,DROP(DROP(-u,x),y-B2),x+MATCH(MIN(t),t,))))),LAMBDA(x,y,IF(-x,x,)&y)))
复制代码
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-23 11:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 橒♂蝣 于 2023-11-23 11:23 编辑

自定义名称:aaa(A2,B2),下拉

=LAMBDA(x,y,
LET(o,--TEXTSPLIT(x,","),
n,LARGE(o,SEQUENCE(y)),
m,MAX(IF(LEN(SUBSTITUTE(x,",",""))-FIND(n,SUBSTITUTE(x,",",""))>=y-1,n)),         
rr, TEXTJOIN(",",1,DROP(CHOOSECOLS(o, SEQUENCE(COLUMNS(o)-XMATCH(m,o)+1, 1, XMATCH(m,o), 1)),,1)),
IF(y<=1,n,CONCAT(VSTACK(m,aaa(rr,y-1))))
))

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-23 11:47 | 显示全部楼层
=LAMBDA(l,n,r,IF(n<2,IF(-r,r,)&MAX(l),LET(a,DROP(l,1-n),b,MAX(a),c,MATCH(b,a,),fx(DROP(l,c),n-1,IF(-r,r,)&b))))
递归,可以再砍一点

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-23 15:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =@REDUCE(0,SEQUENCE(B2),LAMBDA(x,y,LET(a,@TAKE(x,-1),b,DROP(DROP(--TEXTSPLIT(A2,,","),a),y-B2),c,MAX(b),VSTACK(IF(-@x,@x,)&c,MATCH(c,b,)+a))))
复制代码

递归改循环

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-23 15:34 | 显示全部楼层
本帖最后由 346465039 于 2023-11-23 15:39 编辑
  1. =LET(a,TEXTSPLIT(A2,",")+0,b,SUM(COMBIN(COUNT(a),SEQUENCE(COUNT(a)))),c,BASE(SEQUENCE(b),2,COUNT(a)),d,IF(MID(c,SEQUENCE(1,COUNT(a)),1)+0,a,""),e,BYROW(d,LAMBDA(x,CONCAT(x))),MAX(FILTER(e,LEN(e)=B2)+0))
复制代码

用了穷举法,最后两行填充时会卡

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-23 16:00 | 显示全部楼层
346465039 发表于 2023-11-23 15:34
用了穷举法,最后两行填充时会卡

不只是卡的问题,数字可能会超过15位的,题目上限设定是20位,现在你的公式对长数字来说最后几位会变成0
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-21 00:27 , Processed in 0.041112 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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