ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 见过这么长的公式吗

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-2 07:49 | 显示全部楼层
LZ接了个大工程,,,
只要不卡,,你再加上reduce循环下也行,,,

TA的精华主题

TA的得分主题

发表于 2024-8-2 07:53 | 显示全部楼层
wanghui834 发表于 2024-8-1 19:05
python不会啊,目前正在学VBA

这种表格太过于集中,,,可以考虑分段成几个表格处理,,,
其实你用VBA也还是要一段一段的处理的

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-2 08:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
沈默00 发表于 2024-8-2 07:49
LZ接了个大工程,,,
只要不卡,,你再加上reduce循环下也行,,,

在公司自己做着玩的,减少自己的劳动量

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-2 08:40 | 显示全部楼层
沈默00 发表于 2024-8-2 07:53
这种表格太过于集中,,,可以考虑分段成几个表格处理,,,
其实你用VBA也还是要一段一段的处理的

我再理下思路

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-2 08:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wp231957 发表于 2024-8-2 06:44
方便把原始数据放出来吗,狠好奇,这么长的公式,究竟是怎么样的需求

需求就是根据出入库时间、生产计划时间和产品型号来计算每个出入库模具的使用次数,需要有一个模具型号和产品型号的对应表作为辅助表,出入库时间是我手工输入的,生产计划时我用PQ从文件夹直接导入的。都是从时间上进行判断,不过模具出入库时间有重叠,或者出库的时候是在2#线生产,入库的时候又在3#线生产,大概情况就是这样的,但是情况太复杂只通过时间来判断肯定做不到100%准确,我们情况相对简单一些,但是也有点复杂。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-2 09:36 | 显示全部楼层
沈默00 发表于 2024-8-2 07:49
LZ接了个大工程,,,
只要不卡,,你再加上reduce循环下也行,,,

我目前的i7-12700CPU、16G内存,运行起来还好,不卡,我这个表还有好多其他表格,公式也都不短,运行不卡,但是偶尔会出现反应慢半拍的情况!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-2 10:12 | 显示全部楼层
一楼公式的使用场景
image.jpg

模具管理.7z

212.38 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2024-8-2 10:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wanghui834 发表于 2024-8-2 09:36
我目前的i7-12700CPU、16G内存,运行起来还好,不卡,我这个表还有好多其他表格,公式也都不短,运行不卡 ...

最长的火车了,没有之一!

函数只要不卡,能跑就行啦!!
========================================================

方便放出原始数据来看看,这个火车是描述了怎样的需求么?











TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-2 10:29 | 显示全部楼层
wanghui834 发表于 2024-8-2 10:12
一楼公式的使用场景

再分享一个公式,此楼计算模具出入库状态的
  1. =IFERROR(TOROW(LET(ee,UNIQUE(LET(dd,LET(aa,IFERROR(LET(pp,IFERROR(LET(x,FILTER(辅助表!$E$2:$E$300,ISNUMBER(SEARCH("出库",辅助表!$E$2:$E$300))*ISNUMBER(SEARCH(TEXTAFTER(W7,"热封")&"-",辅助表!$E$2:$E$300))),y,FILTER(辅助表!$Q$2:$Q$300,ISNUMBER(SEARCH("出库",辅助表!$Q$2:$Q$300))*ISNUMBER(SEARCH(TEXTAFTER(W7,"热封")&"-",辅助表!$Q$2:$Q$300))),IFS(OR(ISNUMBER(SEARCH("1号",W7)),ISNUMBER(SEARCH("中试",W7))),x,OR(ISNUMBER(SEARCH("2号",W7)),ISNUMBER(SEARCH("3号",W7))),y)),""),UNIQUE(LEFT(pp,SEARCH("热封",pp)-2))),""),bb,IFERROR(LET(nn,LET(n,IFS(OR(LEFT(W7,1)="2",LEFT(W7,1)="3"),FILTER(入库明细!$E$11:$E$33300&"-"&入库明细!$F$11:$F$33300&入库明细!$G$11:$G$33300&"于"&TEXT(入库明细!$D$11:$D$33300,"yyyy/mm/dd")&"入库",(入库明细!$H$11:$H$33300&入库明细!$E$11:$E$33300="2#线"&TEXTAFTER(W7,"热封"))+(入库明细!$H$11:$H$33300&入库明细!$E$11:$E$33300="3#线"&TEXTAFTER(W7,"热封"))),OR(LEFT(W7,1)="1",LEFT(W7,1)="中"),FILTER(入库明细!$E$11:$E$33300&"-"&入库明细!$F$11:$F$33300&入库明细!$G$11:$G$33300&"于"&TEXT(入库明细!$D$11:$D$33300,"yyyy/mm/dd")&"入库",(入库明细!$H$11:$H$33300&入库明细!$E$11:$E$33300="1#线"&TEXTAFTER(W7,"热封")))),FILTER(n,ISNUMBER(SEARCH(TEXTAFTER(TEXTBEFORE(TAKE(n,-1),"入库"),"于"),n)))),TEXTJOIN("、",,UNIQUE(LEFT(nn,SEARCH("热封模",nn)-2)))&"于"&TEXTAFTER(TAKE(nn,-1),"于")),""),cc,IFS(OR(LEFT(W7,1)="2",LEFT(W7,1)="3"),FILTER(出库明细!$E$11:$E$33300&"-"&出库明细!$F$11:$F$33300&出库明细!$G$11:$G$33300&"于"&TEXT(出库明细!$D$11:$D$33300,"yyyy/mm/dd")&"出库",(出库明细!$H$11:$H$33300&出库明细!$E$11:$E$33300="2#线"&TEXTAFTER(W7,"热封"))+(出库明细!$H$11:$H$33300&出库明细!$E$11:$E$33300="3#线"&TEXTAFTER(W7,"热封"))),OR(LEFT(W7,1)="1",LEFT(W7,1)="中"),FILTER(出库明细!$E$11:$E$33300&"-"&出库明细!$F$11:$F$33300&出库明细!$G$11:$G$33300&"于"&TEXT(出库明细!$D$11:$D$33300,"yyyy/mm/dd")&"出库",(出库明细!$H$11:$H$33300&出库明细!$E$11:$E$33300="1#线"&TEXTAFTER(W7,"热封")))),a,XLOOKUP(UNIQUE(aa),LEFT(cc,SEARCH("热封",cc)-2),TEXTBEFORE(TEXTAFTER(cc,"于"),"出库"),"",0,-1),b,TEXTBEFORE(TEXTAFTER(bb,"于"),"入库"),c,TEXTBEFORE(TEXTAFTER(TAKE(cc,1),"于"),"出库"),IFS(TAKE(aa,1)<>"",aa&"于"&a&RIGHT(TAKE(cc,-1),2),AND(TAKE(aa,-1)="",bb<>""),bb,AND(TAKE(aa,1)="",bb=""),UNIQUE(SUBSTITUTE(REPLACE(cc,SEARCH("热封",cc)-1,4,""),"出库","报废")))),FILTER(dd,NOT(ISNA(dd))))),LET(o,RIGHT(ee,12),r,LEFT(ee,LEN(ee)-13),SCAN("",UNIQUE(o),LAMBDA(x,y,TEXTJOIN("、",1,IF(o=y,r,""))&"于"&y))))),"")
复制代码

TA的精华主题

TA的得分主题

发表于 2024-8-2 10:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wanghui834 发表于 2024-8-2 10:29
再分享一个公式,此楼计算模具出入库状态的

楼主 逻辑思维 直强,这都没晕
================================================================
我写过最长的,5层IFNA套用,卡优先级、卡日期、卡地区、卡销售人员的,然后在“备案表”上还有一堆辅助列呢

=IFNA(LOOKUP(1,0/(($AO6>='XX-备案表'!$AD:$AD)*($AO6<='XX-备案表'!$AE:$AE)*($S6='XX-备案表'!$B:$B)),'XX-备案表'!$Z:$Z),IFNA(LOOKUP(1,0/(($AO6>='XX-备案表'!$AD:$AD)*($AO6<='XX-备案表'!$AE:$AE)*($T6='XX-备案表'!$C:$C)),'XX-备案表'!$Z:$Z),IFNA(LOOKUP(1,0/(($AO6>='XX-备案表'!$AD:$AD)*($AO6<='XX-备案表'!$AE:$AE)*($U6='XX-备案表'!$D:$D)),'XX-备案表'!$Z:$Z),IFNA(LOOKUP(1,0/(($AO6>='XX-备案表'!$AD:$AD)*($AO6<='XX-备案表'!$AE:$AE)*($V6='XX-备案表'!$E:$E)),'XX-备案表'!$Z:$Z),IFNA(LOOKUP(1,0/(($AO6>='XX-备案表'!$AD:$AD)*($AO6<='XX-备案表'!$AE:$AE)*($W6='XX-备案表'!$F:$F)),'XX-备案表'!$Z:$Z),"")))))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 00:31 , Processed in 1.053754 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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