Excel 公式可根據第三個儲存格將一個儲存格值變更為另一個值

Excel 公式可根據第三個儲存格將一個儲存格值變更為另一個值

為了讓這個簡單,a1 有一個可以改變的值,b1 有測試 a1 值的公式。 c1 重設為基於 a1 選定的值。

我有一個人們可以輸入值的表。我在 a1 中有一個列錶框,他們可以選擇「重置」。我希望表值更改為 0 ,以“清除”表,以便人們可以輸入新值。

我試圖用如上所述的單一細胞來測試這一點。我將公式代入b1

=if(a1="RESET",(c1=0),c1)

這並沒有改變 c1 值,而是將 c1=0 包含到 if then 的測試部分。

問題是我們不允許使用巨集或 vb 程式碼,因為它們儲存在哪裡,所以我被迫使用公式。

這夠清楚了嗎?

答案1

一個公式不能改變另一個目標。你需要兩個公式

B1-=IF(A1="RESET",1,0)

C1-=IF(B1>0,"woohoo",0)

如果練習的重點是 B1 中只有一個公式(因為使用者可以更改 C1 來刪除該公式),則這是不可能的。

答案2

根據您的描述,不清楚哪個單元應該依賴另一個單元,但如果我正確理解了要求,那麼如果沒有 VBA 或額外的手動步驟,您想要做的事情就無法完成。

正如 Raystafarian 所描述的,您無法使用不同儲存格中的公式變更一個儲存格。但是,單元格也不能同時具有公式和值。如果您在 B1 或 C1 中有一個公式,然後在其中輸入一個值,則該公式將遺失,因此只能執行一次。

您的公式表示您希望輸入進入 C1,因為這就是 B1 中顯示的內容,並且 A1 將 B1 中顯示的值變更為0A1="RESET" 時的值。如果沒有 VBA,我認為最接近您所描述的內容將是這樣的:

  • 在 C1 中輸入新值,取代先前的值。
  • B1 可以包含:=IF(A1="RESET",0,C1).

這就完成了您的公式所描述的內容。 B1 將用作表中的顯示位置,並指示需要新值,但該值將放在 C1 中。

但是,除非 A1 發生更改,否則它將繼續包含RESET,因此更改 C1 中的值不會使 B1 顯示新值。 A1 也需要更改,但此要求將建立循環引用,而無需 VBA 或手動幹預。您需要一些東西來檢測新值的輸入並觸發 A1 中的變更。此類操作需要 VBA,或在新值準備好顯示在 B1 後,使用者對 A1 進行手動變更。

相關內容