2013-12-10 46 views
0

我需要製作一個excel電子表格,該表格接受用戶輸入的兩列中的一列。無論哪個列沒有手動輸入都需要計算其值。爲了說明:圓形Excel公式

enter image description here

在這張照片中,在三列之間的關係。總價格=(價格/單位)*(單位數量)。

我的電子表格的用戶會做兩件事情之一:「價格/單位」

  1. 他們將手動輸入的值如果發生這種情況,需要計算「總價」(價格/單位*單位數)。
  2. 他們將手動輸入「總價」的值。如果發生這種情況,需要計算「價格/單位」(總價/單位數)。

有沒有一個公式可以實現這個功能?也許一個「If-C1-a-a-formula」功能?我認爲這是不可能的。

編輯:宏是一個不適合我。抱歉不要提早提及它。我將通過Java來開發Apache POI,其中doesn't allow for the creation of macros

+0

你完全需要一個事件處理程序。宏很容易。 –

+0

Excel 2013有一個名爲'FormulaText'的新函數,它將返回您引用單元格的公式。但是,我同意其他人認爲這應該用VBA代碼來完成。 – jgridley

回答

3

如果宏是不是一種選擇,那麼你就需要一個稍微不同的設置,像這樣:

tigeravatar non-circular method

在左邊,是用戶將填寫他們將進入Unit CountPrice,然後在C列他們將選擇一個Price Type這是一個驗證下拉列表指向$F$1:$G$1(價格/單位,總價)。一旦他們選擇了價格類型,表格將自動使用公式填充。

在E2單元格並複製下來(單位計數):

=IF(A2="","",A2) 

在小區F2,抄下來(價格/單位):

=IF(COUNTBLANK(A2:C2)>0,"",IF(C2=F$1,B2,B2/A2)) 

在細胞G2和抄下來(總價格):

=IF(COUNTBLANK(A2:C2)>0,"",IF(C2=G$1,B2,B2*A2)) 

然後你就可以格式化列F和G所需(在這種情況下,你可能會格式化爲currenc y或會計)。我還應該提到生成的表可以放在不同的工作表上,您只需要爲您的數據驗證下拉列表使用命名範圍(如果只有兩個選項,則只需使用硬編碼)。

+1

如果您有能力創建條件格式,您可以通過對左側的價格類型進行顏色編碼等操作,並突出顯示右側計算的字段,使此解決方案具有極高的用戶可讀性。爲便於使用,下拉列表(數據驗證)也可能對用戶有所幫助。 – smcjones

+0

這是一個非常好的建議!我非常喜歡使用條件格式來突出顯示計算字段的想法。 – tigeravatar

+0

雖然由於客戶的要求,它不適用於我的電子表格,我很欣賞答案,因爲它是正確的。謝謝。 – ryvantage