ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 通过去掉关键字母获得最短字符问题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-28 10:07 | 显示全部楼层

大佬好,刚看了代码,
KEY是未知的是需要分析得到的。

TA的精华主题

TA的得分主题

发表于 2024-12-28 10:19 | 显示全部楼层
本帖最后由 wintroop 于 2024-12-28 10:40 编辑

Power Query 解法,最小长度有多个不同方案或结果时,不同方案的KEY和RESULT去重后用“ 或 ”隔开, 结果见18-31行
1.PNG

字母消消乐.zip

19.87 KB, 下载次数: 5

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-28 11:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wintroop 发表于 2024-12-28 10:19
Power Query 解法,最小长度有多个不同方案或结果时,不同方案的KEY和RESULT去重后用“ 或 ”隔开, 结果见 ...

大佬厉害,可惜PQ不会,也不支持,函数或VBA方法可以吗?

TA的精华主题

TA的得分主题

发表于 2024-12-28 20:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
玩一玩,受在7楼的SUBSTITUES全部替换方法有瑕疵的影响,结果不太理想,不折腾了。
微信图片_20241228200214.png

TA的精华主题

TA的得分主题

发表于 2024-12-29 18:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xtmyd5156 发表于 2024-12-28 11:35
大佬厉害,可惜PQ不会,也不支持,函数或VBA方法可以吗?


函数解法见E列,好长啊!运煤专列来了!
E4=LET(a,SEQUENCE(LEN(A4)-1),
b,VSTACK(a,UNIQUE(TOCOL(IF(a<TOROW(a+1),a&"\"&TOROW(a+1),"")))),
c,IFNA(IF(ISNUMBER(b),REPLACE(A4,b,1,""),REPLACE(REPLACE(A4,TEXTAFTER(b,"\"),1,""),TEXTBEFORE(b,"\"),1,"")),A4),
d,MAP(c,LAMBDA(x,REDUCE(,MID(x,SEQUENCE(LEN(x)),1),LAMBDA(y,z,IF(RIGHT(y)=z,LEFT(y,LEN(y)-1),y&z))))),
e,IFNA(IF(ISNUMBER(b),MID(A4,b,1),MID(A4,TEXTBEFORE(b,"\"),1)&IF(TEXTAFTER(b,"\")-TEXTBEFORE(b,"\")=1,"","\")&MID(A4,TEXTAFTER(b,"\"),1)),""),
f,e&" | "&d&" | "&LEN(c)-LEN(d)&" | "&IF(LEN(c)-LEN(d)>=LEN(SUBSTITUTE(e,"\",""))*2,"是","否")&" | "&LEN(d),
g,IF(SUM(--MAP(f,LAMBDA(k,AND(LEN(INDEX(TEXTSPLIT(k," | "),1))=0,INDEX(TEXTSPLIT(k," | "),4)="是",INDEX(TEXTSPLIT(k," | "),5)="0")))),0,
        IF(SUM(--MAP(f,LAMBDA(m,AND(LEN(INDEX(TEXTSPLIT(m," | "),1))=1,INDEX(TEXTSPLIT(m," | "),4)="是",INDEX(TEXTSPLIT(m," | "),5)="1")))),1,
                MIN(MAP(FILTER(f,MAP(f,LAMBDA(n,INDEX(TEXTSPLIT(n," | "),4)="是"))),LAMBDA(s,--INDEX(TEXTSPLIT(s," | "),5)))))),
h,FILTER(f,MAP(f,LAMBDA(t,AND(INDEX(TEXTSPLIT(t," | "),4)="是",INDEX(TEXTSPLIT(t," | "),5)=g&"")))),
i,TEXTJOIN(CHAR(10),,UNIQUE(h)),
i)

1.PNG

字母消消乐.zip

13.18 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2024-12-29 19:02 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-21 21:24 来自手机 | 显示全部楼层
沉默老王王佬给出的解决方法,佩服佩服=LET(a,ROW($1:$12),r,ROW($2:$11),b,TOROW(r),c,MID(A4,a,1),d,TOCOL(IFS(r=b,r,(b-r)=1,r&"+"&b,r<b,r&-b),2),e,REGEXP(MAP(d,LAMBDA(x,CONCAT(REPT(c,BYROW(REGEXP(x,"\d+")-a,AND))))),"(.)(?R)*\1",2),f,LEN(e),g,MAP(d,LAMBDA(y,TEXTJOIN(IF(COUNT(-y),"\",""),,INDEX(c,REGEXP(y,"\d+"))))),h,TAKE(SORTBY(HSTACK(g,e,f),f+LEN(g)),1),IF(OR(h<8),h,HSTACK("",A4,12)))

TA的精华主题

TA的得分主题

发表于 2025-3-22 07:21 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-22 08:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-3-22 08:31 | 显示全部楼层
本帖最后由 wj65134 于 2025-3-22 08:35 编辑
xtmyd5156 发表于 2025-3-21 21:24
沉默老王王佬给出的解决方法,佩服佩服=LET(a,ROW($1:$12),r,ROW($2:$11),b,TOROW(r),c,MID(A4,a,1),d,TOCO ...

再精简一下,总觉得有点勉强,某些特殊情况下不一定正确
2025-03-22 083454.jpg
  1. =LET(a,ROW($1:$12),b,TOROW(a),c,TOCOL(IFS(a=b,a,b-a=1,a&"+"&b,1,a&-b)),r,REGEXP(MAP(c,LAMBDA(x,CONCAT(REPT(MID(A4,a,1),BYROW(REGEXP(x,"\d+")-a,AND))))),"(.)(?R)*\1",2),l,LEN(r),k,MAP(c,LAMBDA(y,TEXTJOIN(REPT("",COUNT(-y)),,MID(A4,REGEXP(y,"\d+"),1)))),j,TAKE(SORTBY(HSTACK(k,r,l),l+LEN(k)/1.5),1),IF(OR(j<8),j,HSTACK("",A4,12)))
复制代码

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2025-12-15 03:20 , Processed in 1.085559 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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