EXCEL 怎样将某复杂计算表变成一个函数?

假如我在sheet1 中的某个区域建立了一套复杂计算表,即当在A1,B1,C1 输入某些数值,然后经过后面格子中的复杂计算,在 F15,得出一个最终值。
然后我想把这个计算表当做一个固定的函数,当我在 A100, B100,C100 输入三个值,然后 D100就会返回将 A100, B100,C100 代入A1,B1,C1生成的F15 的值,
依次类推,在 A101, B101,C101 输入三个值 ,D101返回将 A101, B101,C101 代入A1,B1,C1生成的新F15 的值,
需要用什么办法实现?

从描述看,本来应该是不太难的问题,但自己把问题搞复杂了。说搞复杂了,并不是说计算公式有多复杂,因为根本就不知道你所说的“复杂计算”是如何个复杂法。而是不清楚你为何要把计算结果与数据源既列错位,同时还行错位。这就使得你后面的需求不太好实现了。姑且把F15的“复杂计算”称为模板吧,但它的数据源在第1行,行数错了14行。要解决问题得到结果却又与数据源在同一行,举例为第100行、第101行;列也变在D列了,而不是对应的F列。这种既有行错位,又有列错位的公式要引用过来,就极其为难了!

想到的解决办法(假设你的F15中必须有A1、B1、C1的“复杂计算”结果)

    在第1行右侧不要用的列中进行你的“复杂计算”,得到“计算模板”——将F15的复杂计算搬过来,比如BA1中,公式中的A1、B1、C1引用都在列标前加上符号$,即$A1、$B1、$C1。这样公式向下错列复制时,列标ABC就不变,而只是行号变;如果公式中还引用了其他单元格(考虑到“计算模板”在F15,极有可能引用了第2行到第15行,A列到E列的数据),那么公式中就用绝对引用,如引用了E14,就写成$E$14。

    F15=BA1,将BA1的结果引用以F15中,以满足你那个“必须的需求”;

    将BA1中的“复杂计算”公式复制到要得到结果的行中,如D100、D101。因为BA1中的公式中ABC前加了符号$,而又是引用的同一行数据,现在你复制第100行无论哪一列,“计算模板”都是按原公式引用A100、B100、C100,而计算模板中引用的固定单元格(如前述E14)仍然保持不。

    通过以上方法,问题应该得到圆满解决。

追问

谢谢您的解答,这个问题再具体一点就是:
这个计算表是一个成本计算表,A1, B1 ,C1 ,是产品的参数,比如长宽高,通过它们计算出材料用量人工费用,利润率等,然后在 F15 (假设)的最终销售价,
然后现在通过上述的计算表,在另一个地方,A100,B100,C100,填入长宽高时,D100就自动算出销售价并保留,当A101,B101,C101,为不一样参数时,D101就显示不一样售价,
以上。

追答

你试了我说的方法,把复杂的计算在A1、B1、C1的同一行中,并与要得到结果的同一列D列中,也就是在D1中完成所有“复杂的计算”(F15中的复杂计算放到D1中)。再F15=D1
现在把D1的公式复制到D100,就是计算A100、B100、C100
就这么简单!
再如果D1不空,有其他数据,那么就再绕一个弯,在右侧的空单元格中进行“复杂的计算”,如AB1——总之必须与A1、B1、C1同一行,才好向下复制公式。那么就是F15=AB1
现在把AB1的公式复制到AB100,就是按AB1的“复杂计算”方法计算A100、B100、C100,然后D100=AB100
再把第100行的公式复制到哪一行都行。如果觉得AB列碍眼,就把AB列隐藏好了。
这样复杂的问题就简单了!
既然在F15可以完成计算,那么放到哪个单元格都可以完成,我们就把放到与引用数据源同一行中!F15引用这个计算结果。这是一种解决问题的方法。

追问

试了不行,F15的值 ,不是由 A1B1C1 直接计算得来的,它是由A1B1C1经过公式1算出D1 ,通过公式2算出D2 .....公式n算出Dn , 然后又由A1,D1,D3通过另一个公式1算出 E1 ,B1D2,C3 由另一个公式2算出E2 , 然后由E1~En 通过别的公式算出 F1~F14 , 然后F15=SUM(F1:F14)
公式是一段表格,不是一个单元格里的公式

追答

那你就按A1到F15,同样从A100到F114去得结果。
坦率说,本人做工程设计,自从用了Excel后,就基本丢弃了用纸和笔进行计算。无论多复杂的计算,也一样想怎么套用就怎么套用。如离心泵的计算,安装位置、物料特性、流量、管径等数据计算出雷诺准数、管道摩擦系数,再计算出泵的扬程。应该不会比你所的说简单,更复杂的些换热器设计计算,更要用到循环引用计算。所以你完全可以根据实际情况来处理,不要总拘泥于一定后面就要在第100行中得出X结果。退一步讲,把A1到X99(这里x代表实际的列标)得A100到X198,在F114中不是相当于引用了F15的公式。如果再一定要在第100行有结果,就在要得到结果中引用F114,再如果希望不显示中间计算结果,那就选择这些行,隐藏起来。
总而言之这,灵活处理,把复杂问题简单化。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-03-18
在你的补充信息里说的是可以实现的,你原本F15单元格的值有可能是通过其他N个计算A1、B1、C1这三个值后得到的值,因此在D100、D101中的公式就不能直接使用F15单元格的公式,需要将原本N个计算式整合为一个,等同于省掉了计算表。
当然这样的话可能会显得这个公式很复杂,所以想要看着简单点,那么可以选择VBA编制自定义函数。追问

谢谢您的解答,这个问题再具体一点就是:
这个计算表是一个成本计算表,A1, B1 ,C1 ,是产品的参数,比如长宽高,通过它们计算出材料用量人工费用,利润率等,然后在 F15 (假设)的最终销售价,
然后现在通过上述的计算表,在另一个地方,A100,B100,C100,填入长宽高时,D100就自动算出销售价并保留,当A101,B101,C101,为不一样参数时,D101就显示不一样售价,
以上。

追答

那就好比是在D100输入公式:=A100*B100*C100得到体积,然后再向下填充,在A101、B101、C101输入值后D101也会自动计算出体积。

追问

不是体积那样简单,里头还有别的参数,A1,B1,C1是取值好多次的参数
F15也是经过重复取值后结果的。
比如由参数 A1B1C1 ,通过公式1计算出F1,又通过公式2,算出F2 ,通过公式3算出F3 ....最后通过 F15=sum(F1:F14) 。
可能需要 VBA 编写函数,但我不会,原理应该是,把上面的表格做F15=f(A1,B1,C1),然后D100=f(A100,B100,C100)

追答

估计是你这个计算表比较复杂吧,所以你也没有办法详细描述。我也无法给出你另外的公式。

第2个回答  2022-04-02
本来应该是不太难的问题,但自己把问题搞复杂了。说搞复杂了,并不是说计算公式有多复杂,因为根本就不知道你所说的“复杂计算”是如何个复杂法。而是不清楚你为何要把计算结果与数据源既列错位,同时还行错位。这就使得你后面的需求不太好实现了。姑且把F15的“复杂计算”称为模板吧,但它的数据源在第1行,行数错了14行。要解决问题得到结果却又与数据源在同一行,举例为第100行、第101行;列也变在D列了,而不是对应的F列
第3个回答  2022-04-02
若在A,B,C列中的1,2,3行已经输入数据,在A列的第4行的格子中输入了“=A1+A2+A3,按回车后则在A4中得出了A1+A2+A3的值,此时只需将鼠标移到A4格子的右下角出现加号时将表格向后拉扩选后边的表格,则在B4中就能得到B1+B2+
B3的结果,以此类推,C4,D4,E4表格中...都能得出相应结果
第4个回答  2022-03-18
需要下拉填充。
相似回答