2011-07-15 16 views
2

有沒有一種方法來評估一系列值的公式表,而不必將它們組合成一個單一的megaformula?替代品創建一個megaformula

用示例來說明更容易。說表1是這樣的:

 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 

現在我想建立表2爲每個產品系列的標記率的回報利潤,就像這樣:!

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

在表2 B2,我想當單元格Table1!$ C2的值設置爲Table2!B $ 1中的列標題值時,希望顯示單元格Table1!$ C2的值。換句話說,當加價爲10%時,我想要一個漢堡的利潤。然後通過行和單元格複製,當我將標記從10%變爲50%時,我可以觀察到每個項目的利潤影響。

我知道我可以通過公式從表1可以結合手動執行此操作,COLS d和E成表2。例如單megaformula,細胞Table2B1會有這個公式:

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

但是,讓我們認爲SECRET FORMULA實際上是一系列非常複雜的一系列計算,其中有幾十個依賴關係。我實際的一組公式包括大約20列,並生成一個8行公式......無法編輯。

所以有內置的一系列相關的公式表1中,這將是巨大的,用這些公式生成表2,不必複製他們都在表2

+1

Ed,就是做你剛纔所做的 - 把你的計算分解成多箇中間單元。除非你100%確定這個邏輯永遠不會改變(哈!),否則這就是「超級配方」的優勢。但是,請參閱此答案中的選項(2.5)和(3),看看它們是否有幫助:http://stackoverflow.com/questions/4640336/using-a-sheet-in-an-excel-user-defined-功能/ 4640866#4640866 – jtolle

+0

謝謝。問題是如何將這些多箇中間單元用作另一個表中的計算? –

+0

選項2.5應該做我需要的。我只有一個獨立變量和一個結果,並且正在嘗試做「如果」分析。如果你發佈答案,我會接受,所以你得到積分。謝謝。 –

回答

0

抓鬥式的底部邊框酒吧和拖下來,只要你想編輯

enter image description here

+0

謝謝,做到了這一點,但仍然無法維持一個幾乎覆蓋整個屏幕的公式。雖然ALT + Enter將使其更具可讀性。我會發佈下面的公式,這樣你就可以看到我正在談論的有多大。 –

+0

@Ed海沃克OMG我在想這個公式的10%是一個很大的公式。如果您需要Excel,請定期使用VBA,否則請在Excel上按Alt + F4並嘗試使用其他編程語言。 –

+0

大聲笑,是的,這是一個醜陋的。這使得它很糟糕的事情是所有的IF公式與依賴關係。有些價值觀重複了十幾次。我可能會做一些因素來縮短它,但即便如此,這將是一個漫長的過程。 –

1

所以只是爲了得到如何巨大和無法控制的megaformula是一種什麼感覺,你會得到儘可能多的行,我在下面貼吧:

= Table6 [[#This Row],[FBLR]] * AC $ 1-((Table6 [[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) - 'Break Even'!$ (AC $ 1 - 'Break Even'!$ D $ 32))> 0,IF(表6 [[#This Row],[豁免]] =「Y」,IF((AC $ 1 - 'Break甚至'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1 -'Break Even'!$ D $ 32) - 'Break Even'!$ D $ 31,0),(AC $ 1 - 'Break Even '!$ D $ 32))* IF(Table6 [[#This Row],[exempt]] =「Y」,Table6 [[This Row],[Pay rate]],Table6 [[This Row] (表6 [[#本行],[基本工資]] + IF(IF(表6 [[#本行],[豁免]) ] =「Y」,IF((AC $ 1 -'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1 - 'Break Even'!$ D $ 32) - 'Break Even'! $($ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $' (AC $ 1 - 'Break Even'!$ D $ 32) - 'Break Even'!$ D $ 31,0),(AC $ 1 -'Break甚至'!$ D $ 32))* IF(Table6 [[#This Row],[exempt]] =「Y」,Table6 [[This Row],[Pay rate]],T (表6 [[本行],[基本工資]] + IF(表6)[表格6 [[本行],[基本工資]] + IF IF(Table6 [[#This Row],[exempt]] =「Y」,IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1 -'Break甚至'!$ D $ 32) - 'Break Even'!$ D $ 31,0),(AC $ 1-Break Even!$ D $ 32))> 0,IF(Table6 [[#This Row],[exempt] ] =「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))* IF(Table6 [[#This Row],[豁免]] =「Y」,Table6 [[This Row],[支付率]],表6 [[本行],[支付率]] * 1.5),0)))+(表6 [[此行],[基本工資]] + IF(IF [表6] [[ (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(Table6 [[This Row],[exempt]] =「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))* IF(Table6 [[#This Row],[豁免]] =「Y」,Table6 [[This Row],[付款率]],表6 [[#此行],[付款率]] * 1.5),0))*附帶!$ D $ 28 +附帶!$ D $ 29 *附帶!$ E $ 29 +附帶!$ D $ 30 * (表1 [[#本行],[TC?]] =「Y」,附帶!$ F $ 34 * 12,IF 「N」,Fringe!$ E $ 34 * 12 * Fringe!$ D $ 34,(附帶!$ F $ 34 * 12 +附帶!$ E $ 34 * 12 *附帶!$ D $ 34)/ 2))+(表6 [ (此行),[基本工資]] + IF(IF(表6 [[#本行],[豁免]] =「Y」,IF((AC $ 1 - '連擊'!$ D $ 32)甚至'!$ D $ 31,(AC $ 1 - 'Break Even'!$ D $ 32) - 'Break Even'!$ D $ 31,0),(AC $ 1 - 'Break Even'!$ D $ 32))> 0, IF(Table6 [[#This Row],[exempt]] =「Y」,IF((AC $ 1-'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1 -'Break甚至'!$ D $ 32) - 'Break Even'!$ D $ 31,0),(AC $ 1 - 'Break Even'!$ D $ 32))* IF(Table6 [[#This Row],[exempt]] = 「Y」,表6 [[本行],[付款率]],表6 [[#本行],[付款率]] * 1.5),0))* Fringe!$ D $ 32 +(表6 [[#這行],[基本工資]] + IF(IF(表6 [[本行#],[豁免]] =「Y」,IF((AC $ 1 - '連擊'!$ D $ 32) '!$ D $ 31,(AC $ 1 - 'Break Even'!$ D $ 32) - 'Break Even'!$ D $ 31,0),(AC $ 1 - 'Break Even'!$ D $ 32))0,IF (表6 [[#此行],[豁免]] =「Y」,如果((AC $ 1 - 'Break Even'!$ D $ 32)>'Break Even'!$ D $ 31,(AC $ 1 - '!$ D $ 32) - 'Break Even'!$ D $ 31,0),(AC $ 1 -'Break Even'!$ D $ 32))* IF(Table6 [[#This Row],[exempt]] =「 Y表6 [[本行#],[付款率]],表6 [[#本行],[付款率]] * 1.5),0))*附帶!$ D $ 33 +附帶!$ E $ 35 * 12 * Fringe!$ D $ 35 + Table1 [[#This Row],[Base Salary]] * Fringe!$ D $ 36 +附帶!$ E $ 37 *附帶!$ D $ 37)