替代创建一个巨型公式

时间:2011-07-15 20:58:23

标签: excel spreadsheet worksheet-function

有没有办法评估一组价值表的公式而不将它们合并为一个单一的公式?

通过示例更容易说明。说Table1看起来像这样:

        A        B       C            D                E          F
1    PRODUCT    COST   MARKUP    SECRET FORMULA      PRICE      PROFIT
2    burger     4.00    50%         =22*12345    =B2*(1+C2)*D2  =E2-B2
3    fries      3.00    50%         =22*12345    =B3*(1+C3)*D3  =E3-B3
4    soda       1.50    50%         =22*12345    =B4*(1+C4)*D4  =E4-B4

现在我想构建Table2以获得每种产品的一系列标记率的利润,如下所示:

       A        B        C         D         E       F
1   MARKUP    10%       20%      30%       40%     50%
2   burger
3   fries
4   soda 

在Table2!B2中,我想要显示单元格Table1!$ C2的值,当单元格Table1!$ C2的值设置为Table2的列标题值时!B $ 1。换句话说,当标记为10%时,我希望获得汉堡的利润。然后通过复制行和单元格,当我将标记从10%变为50%时,我可以观察到每个项目对利润的影响。

我知道我可以通过将表1中的公式cols D和E组合成表2的单个megaformula来手动执行此操作。例如,单元格TableB1将具有以下公式:

= Table1!B2*(1 + B$1)*22*12345

但是,让我们说SECRET FORMULA实际上是一系列非常复杂的计算,它们涉及几个具有许多依赖关系的列。我的实际公式集横跨大约20列,并生成一个8行公式...无法编辑。

因此,在表1中构建了一系列依赖公式后,使用这些公式生成表2会很棒,而不必在表2中复制它们。

2 个答案:

答案 0 :(得分:1)

所以,为了感受这个巨型组织的庞大和无法控制的程度,我在下面发布了它:

=表6 [[#This Row],[FBLR]] * AC $ 1-((表6 [[#This Row],[Base Salary]] + IF(IF(表6 [[#This Row],[豁免] ]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32))> 0,IF(表6 [[#This row],[exempt]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32))* IF(表6 [[#This row],[exempt]] =“Y”,表6 [[#This Row],[Pay rate]],Table6 [[#这一行],[工资率]] * 1.5),0))+ Fringe!$ D $ 27 * IF((表6 [[#This row],[Base Salary]] + IF(IF(表6 [[#This Row ],[豁免]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) -'Break Even'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32))> 0,IF(表6 [[#This Row],[exempt]] =“Y”, IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0 ) (AC $ 1-'Break Even'!$ D $ 32))* IF(表6 [[#This row],[exempt]] =“Y”,表6 [[#This Row],[Pay rate]],Table6 [ [#This Row],[支付率]] * 1.5),0))>边缘!$ E $ 27,边缘!$ E $ 27,(表6 [[此行],[基本工资]] + IF(IF(表6 [[此行],[豁免]] =“Y”,IF( (AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0), (AC $ 1-'Break Even'!$ D $ 32))> 0,IF(表6 [[此行],[豁免]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)>'收支平衡'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32))* IF(表6 [[#This Row],[exempt]] =“Y”,表6 [[#This Row],[Pay rate]],Table6 [[#This Row],[Pay rate]] * 1.5),0)))+(表6 [[#This Row],[Base Salary]] + IF(IF(Table6 [[#This row],[exempt]] =“Y”,IF((AC $ 1) -'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1 -'Break Even'!$ D $ 32))> 0,IF(表6 [[此行],[豁免]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)&gt ;'收支平衡'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32)) * IF(表6 [[#This row],[exempt]] =“Y”,表6 [[#这一行],[支付率]],表6 [[#Indline],[支付率]] * 1.5),0))* Fringe!$ D $ 28 + Fringe!$ D $ 29 * Fringe!$ E $ 29 + Fringe !$ D $ 30 * Fringe!$ E $ 30 + IF(表1 [[#This Row],[TC?]] =“Y”,Fringe!$ F $ 34 * 12,IF(表1 [[#This Row],[ TC?] = “N”,边缘!$ E $ 34 * 12 *条纹!$ d $ 34(边缘!$ F $ 34 * 12 +条纹!$ E $ 34 * 12 *条纹!$ d $ 34)/ 2)) +(表6 [[#This Row],[Base Salary]] + IF(IF(Table6 [[#This row],[exempt]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)>'收支平衡'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32))> 0,IF(表6 [[#This Row],[exempt]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32))* IF(表6 [[#This行],[豁免]] =“Y”,表6 [[#This Row],[Pay rate]],Table6 [[#This Row],[Pay rate]] * 1.5),0))* Fringe!$ D $ 32 +(表6 [[#This Row],[Base Salary]] + IF(IF(Table6 [[#This row],[exempt]] =“Y”,IF((AC $ 1-'Break Even'! $ D $ 32)>'收支平衡'!$ D $ 31,(AC $ 1-'Break甚至'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break偶数'!$ D $ 32))> 0,IF(表6 [[#This Row],[豁免] ]] =“Y”,IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1-'Break Even'!$ D $ 32) - '收支平衡'!$ D $ 31,0),(AC $ 1-'Break Even'!$ D $ 32))* IF(表6 [[此行],[豁免]] =“Y”,表6 [[#This Row] ,[支付率]],表6 [[#此行],[支付率]] * 1.5),0))*边缘!$ D $ 33 + Fringe!$ E $ 35 * 12 * Fringe!$ D $ 35 + Table1 [ [#This Row],[Base Salary]] * Fringe!$ D $ 36 + Fringe!$ E $ 37 * Fringe!$ D $ 37)

答案 1 :(得分:0)

抓住公式栏的下边框并向下拖动,您将获得任意数量的线条进行编辑

enter image description here