1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 比较典型的有条件连续问题,求公式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-3-11 12:23 | 显示全部楼层
最大天数,
=MAX(LEN(REGEXP(CONCAT(A2:AE2),"[3-9]{3,}|")))
image.png

TA的精华主题

TA的得分主题

发表于 2025-3-11 12:24 来自手机 | 显示全部楼层
第一问:
=MAX(SCAN(0,A2:AE2,LAMBDA(x,y,IF(y<3,0,x+1))))
=MAX(SCAN(0,A2:AE2,LAMBDA(x,y,IF(y<3,0,x+y))))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-3-11 12:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-3-11 12:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
最大天数
  1. =MAX(LEN(REGEXEXTRACT(CONCAT(A2:AE2),"[3-9]+",1)))
复制代码

数量
  1. =LET(x,REGEXEXTRACT(CONCAT(A2:AE2),"[3-9]+",1),y,INDEX(SORTBY(x+0,LEN(x),-1),1),SUM(MID(y,SEQUENCE(LEN(y)),1)+0))
复制代码

组数
  1. =SUM(N(LEN(REGEXEXTRACT(CONCAT(A2:AE2),"[3-9]+",1))>=3))
复制代码

组成内容
  1. =LET(a,REGEXEXTRACT(CONCAT(A2:AE2),"[3-9][3-9][3-9]+",1),b,MAP(a,LAMBDA(x,TEXTJOIN(",",,MID(x,SEQUENCE(LEN(x)),1)))),TEXTJOIN(CHAR(10),,b))
复制代码

image.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-3-11 12:36 | 显示全部楼层
有BUG,没考虑10台及以上问题,
仅供参考,
=LET(d,REGEXP(CONCAT(A2:AE2),"[3-9]{3,}"),SUM(--REGEXP(CONCAT(TAKE(SORTBY(d,LEN(d),-1),,1)),"\d")))
image.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-3-11 13:04 来自手机 | 显示全部楼层
第二问:
=TEXTJOIN(CHAR(10),,REGEXP(REGEXP(CONCAT(IF(A2:AE2<3,0,A2:AE2)),"[1-9]{3,}"),"(?<!^)(?!$)",2,","))
Screenshot_2025-03-11-13-03-20-209_cn.wps.moffice_eng-edit.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-11 14:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

数据源中的数据都是一位数字,是我忽视了。如果数字位数不仅仅是1位(可能是2位,3位......),该怎么写公式?

TA的精华主题

TA的得分主题

发表于 2025-3-11 14:24 | 显示全部楼层
  1. =LET(x,REGEXP(CONCAT(IF(A2:AE2>2,A2:AE2,0)),"[1-9]+"),HSTACK(MAX(LEN(x)),SUM(REGEXP(FILTER(x,LEN(x)=MAX(LEN(x))),"\d")*1)))
  2. =LET(x,REGEXP(CONCAT(IF(A2:AE2>2,A2:AE2,0)),"[1-9]+"),HSTACK(SUM(N(LEN(x)>2)),TEXTJOIN(CHAR(10),,MAP(FILTER(x,LEN(x)>2),LAMBDA(y,TEXTJOIN(",",,REGEXP(y,"\d")))))))
复制代码
微信截图_20250311142126.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

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

PQ我也一直想学习,也许是感觉暂时用不到,也许是太懒,所以一直未行动。
希望自己以后也能运用的跟老师一样这么熟练。
感谢老师的解答!

TA的精华主题

TA的得分主题

发表于 2025-3-11 14:30 | 显示全部楼层
=MAX(LEN(TEXTSPLIT(TEXTJOIN(,,(A2:AE2)*(A2:AE2>=3)),"0")))
第一问的最大天数,我用此公式计算出。我给出答案的不少朋友和我一样的思路,但我认为这种方式极为不妥,或者有局限性。这个局限性在于如果单日销量大于10,这类思路的解题就不正确了。虽然发帖人的案例中最高是9,但不排除超过9的情况发生。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

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

GMT+8, 2025-4-23 17:45 , Processed in 0.026351 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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