|
|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
感谢。这个练习关键在于那个递归公式。我花了很长时间总算基本上理解了这个公式。对于递归的初学者,不好理解的是LAMBDA的z是什么,后来我认为BOM示例表的E2:G32,也就是filter筛选的区域,也即是所有子件区域是z,这样后面的计算才理解得通。可是,怎么知道z是什么,这个挺难的。
当COUNTA(t)不等于1时,也就是子件是半成品,就调用fx,开始递归,fx(IF({1,1,0},t,TAKE(t,,-1)*TAKE(s,-1,-1)))这部分,我不太明白,以前用过IF({1,0},这是第一次遇到IF({1,1,0},后面的t和TAKE(t,,-1)*TAKE(s,-1,-1)应该都是对应1的吧?0对应默认的false?t是生产半成品的原料数组,TAKE(t,,-1)*TAKE(s,-1,-1)是原料的单耗数组乘以半成品的单耗,得到生产一个单位的成品需要的若干单位的原料。可是,这样不就是四列了吗,t是三列,加一列最终原料的单耗,共四列。可是应该是三列才对。不知道是不是我的理解有偏差。 |
|