ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 每天学习一个函数--(半年纪念)

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-22 11:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:公式基础
下载来学习学习,多谢分享!

TA的精华主题

TA的得分主题

发表于 2023-5-25 08:14 | 显示全部楼层
实在是太棒了

TA的精华主题

TA的得分主题

发表于 2023-6-21 08:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢楼主分享,下载学习。

TA的精华主题

TA的得分主题

发表于 2023-7-18 14:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学无止境,每天学习分享的知识,非常感谢

TA的精华主题

TA的得分主题

发表于 2023-7-21 16:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
收藏学习,汇总目录好用,方便学习。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-26 18:31 | 显示全部楼层
学习时间:2023-07-26
花费时间:两个半小时
参考资料:星光版主及网络搜索
学习函数:MAP
学习心得:365 函数,原以为没有用,后来发现经典的用法思路后,感觉非常香。



批量降价
   需要对公司所有的产品统一降价100元,按常规的公式写法,就是=C1-100,下拉填充,这样就得到了正确的结果。如果需要转成MAP函数的写法,就是录入函数:
=MAP(D2:D13,LAMBDA(X,X-100))
根据函数的定义,先把D2:D13定义成X,再用LAMBDA的表达未来传递,让X-100,这样X区域中的每一个元素都会执行一次减去100,等同于=C1-100,下拉填充。
   问题来了,为什么需要这样写,直接填充不好吗?
   直接填充与一键填充,这就是两个公式的区别,而且当公式2可以跳过空行,如果D列存在空行的话,双击下拉填充,遇到空行自动中断,用MAP函数自动一键填充,优势就出来了。
image.jpg
                              
重复次数统计
       重复数是生产计划中经常需要统计的,而且还需要按出现次数累计统计,如下图所示,这样就可以实现连续编号,为后面的引用创建一个新的ID,进而实现一对多引用时候的“一对一”引用。
   实现的方法也有很多,分别用四个方法来讲。
   方法一:=COUNTIFS($A$2:A2,A2),这个是条件统计,因为锁定了第一个单元格,向下填充就可以得出,这个方法的优势就是简单好理解,缺点就是速度太慢了,如果20000行,直接就运算超过60秒。
   方法二:=IF(A1<>A2,1,C1+1),这个方法是用IF判断,因为不是累计统计,速度非常快,最优推荐。传统公式,需要向下填充
   方法三:=MAP(A2:A10,LAMBDA(X,COUNTIFS(A2:X,X))),这个是动态数组公式,不需要填充,是方法一的MAP写法,优势就是不用填充,速度比方法一快一点,但是还是运算慢,放在这里只是为了说明MAP函数中LAMBDA参数可以用“A2:X”这样的写法;
   方法四:=SCAN(0,A2:A10,LAMBDA(X,Y,(Y=OFFSET(Y,-1,))*X+1)),这个运算速度非常快,而且是动态数组,因为不需要累计引用,所以数据量大的推荐此函数最佳;
image.jpg
累计求和
   有时候需要统计各个月的累计产量,累计完成量的时候,可以用MAP,公式理解后,逻辑结构非常清晰;举例说明:订单5000,工序1的日产能为500,工序2的日产能为750,问工序1需要前置几天生产才能满足工序2的生产?
   要解决这个问题,可以用Excel建立一个模型,按下图录入数据后,录入公式:
=MAP(B2:B11,LAMBDA(X,SUM(B2:X))),工序1的累计产能
=MAP(D2:D11,LAMBDA(X,SUM(D2:X))),工序2的累计产能
=C2#-E2#,工序1减去工序1
上图中,可以看到,如果工序2连续生产的话,第3天工序1的库存最高,达到1500,实际排程中,有时候要在连续生产和切换生产中平衡,没有绝对的平衡,一般情况成本最优来建模,如果库存成本高的话,就切换生产。如下图中,第2天开始生产,第5天停产1天,到第6天生产。这样只切换了1次,库存下降了1000。
image.jpg
累计欠料
       MC物控有时候需要针对物料的库存来预判累计欠料,此时可以用MAP函数来实现一键建模。如下图,零件A和B的库存分别为30和40,有8张生产任务需求,现计算出零件A和B的累计欠料。
=XLOOKUP(E2:E9,A2:A3,B2:B3),零件匹配库存数量
=G2#-MAP(E2:E9,LAMBDA(X,SUMIF(E2:X,X,F2:F9))),库存数量减去累计需求数量。得到累计欠料
=IF(H2#>0,0,IF(ABS(H2#)<F2:F9,H2#,-F2:F9)),IF判断得到工单欠料
,上述三个函数为动态数组,一键填充。
image.jpg



MAP.zip

17.16 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2023-7-28 21:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
牛人,你是在哪里学习?

TA的精华主题

TA的得分主题

发表于 2023-8-2 21:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢楼主分享

TA的精华主题

TA的得分主题

发表于 2023-9-23 11:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-10-18 14:57 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-22 14:47 , Processed in 0.045797 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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