ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 各位老师看看这题,谁能写出最简洁的公式?

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-30 13:40 | 显示全部楼层
名称管理器建立=EVALUATE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(香烟包数!$A2,"箱","*500+"),"条","*10+"),"包","*1+")&0)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-6-4 17:20 | 显示全部楼层
本帖最后由 hjxszg 于 2025-6-4 21:39 编辑
mykitami 发表于 2024-1-12 14:54
=SUM(MAP({"箱","包","条"},LAMBDA(x,IFERROR(MATCH(,-FIND(COLUMN(1:1)&x,A2)),)))*{500,1,10})

整体思路类似,区别在于提取的方式,相差1个字符。
5023=SUM(MAP({"箱","条","包"},LAMBDA(X,IFERROR(REGEXP(REGEXP(A2,"\d+"&X),"\d+"),)))*{500,10,1})

公式一=MAP(A2:A12,LAMBDA(Y,SUM(MAP({"箱","条","包"},LAMBDA(X,IFERROR(REGEXP(REGEXP(Y,"\d+"&X),"\d+"),)))*{500,10,1})))

公式二=SUM(MAP(A2:A12,LAMBDA(Y,SUM(MAP({"箱","条","包"},LAMBDA(X,IFERROR(REGEXP(REGEXP(Y,"\d+"&X),"\d+"),)))*{500,10,1}))))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-6-5 10:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=EVALUATE(REGEXP(SUBSTITUTES(A2,{"箱","条","包"},{"*500+","*10+","*1+"}),"\+$",2,""))    公式81个字符

TA的精华主题

TA的得分主题

发表于 2025-6-5 10:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hjxszg 于 2025-6-5 12:02 编辑
WSC123 发表于 2025-6-5 10:13
=EVALUATE(REGEXP(SUBSTITUTES(A2,{"箱","条","包"},{"*500+","*10+","*1+"}),"\+$",2,""))    公式81个字 ...


这个公式只计算出A2单元格的和,并没有计算出全部。如果只计算A2。=SUM(IFERROR(REGEXP(REGEXP(A2,"\d+"&{"箱","条","包"}),"\d+")*{500,10,1},))
71字符

TA的精华主题

TA的得分主题

发表于 2025-6-5 10:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hjxszg 于 2025-6-5 12:02 编辑

71字符A2=SUM(IFERROR(REGEXP(REGEXP(A2,"\d+"&{"箱","条","包"}),"\d+")*{500,10,1},))


92字符公式一=MAP(A2:A12,LAMBDA(Y,SUM(IFERROR(REGEXP(REGEXP(Y,"\d+"&{"箱","条","包"}),"\d+")*{500,10,1},))))


97字符公式二=SUM(MAP(A2:A12,LAMBDA(Y,SUM(IFERROR(REGEXP(REGEXP(Y,"\d+"&{"箱","条","包"}),"\d+")*{500,10,1},)))))

TA的精华主题

TA的得分主题

发表于 2025-6-5 11:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hjxszg 于 2025-6-5 12:01 编辑

=BYROW(IFERROR(REGEXP(REGEXP(A2:A12,"\d+"&{"箱","条","包"}),"\d+")*{500,10,1},),SUM)公式一81个字符
=SUM(BYROW(IFERROR(REGEXP(REGEXP(A2:A12,"\d+"&{"箱","条","包"}),"\d+")*{500,10,1},),SUM))公式二86个字符
还能优化这样提取 "\d+(?=箱)"

TA的精华主题

TA的得分主题

发表于 2025-6-5 11:27 | 显示全部楼层
=SUM(--IFERROR(REGEXP(A2,"\d+"&"(?="&{"箱","条","包"}&")"),0)*{500,10,1})
71个字符
1749093851123.jpg

TA的精华主题

TA的得分主题

发表于 2025-6-5 11:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hjxszg 于 2025-6-5 12:00 编辑
人有言兮是然 发表于 2025-6-5 11:27
=SUM(--IFERROR(REGEXP(A2,"\d+"&"(?="&{"箱","条","包"}&")"),0)*{500,10,1})
71个字符

"\d+(?=箱)"就是在找这个表达式,感谢,学习了!

TA的精华主题

TA的得分主题

发表于 2025-6-5 12:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =IFERROR(SUM(IFNA(REGEXP(A2,"\d+(?="&{"箱","条","包"}&")"),)*{500,10,1}),)
复制代码

TA的精华主题

TA的得分主题

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

"\d+(?=箱)"不会写表达式到处找,感谢大神们。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-12-22 22:04 , Processed in 0.029787 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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