![Excel 公式可根據第三個儲存格將一個儲存格值變更為另一個值](https://rvso.com/image/1466431/Excel%20%E5%85%AC%E5%BC%8F%E5%8F%AF%E6%A0%B9%E6%93%9A%E7%AC%AC%E4%B8%89%E5%80%8B%E5%84%B2%E5%AD%98%E6%A0%BC%E5%B0%87%E4%B8%80%E5%80%8B%E5%84%B2%E5%AD%98%E6%A0%BC%E5%80%BC%E8%AE%8A%E6%9B%B4%E7%82%BA%E5%8F%A6%E4%B8%80%E5%80%8B%E5%80%BC.png)
為了讓這個簡單,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 中顯示的值變更為0
A1="RESET" 時的值。如果沒有 VBA,我認為最接近您所描述的內容將是這樣的:
- 在 C1 中輸入新值,取代先前的值。
- B1 可以包含:
=IF(A1="RESET",0,C1)
.
這就完成了您的公式所描述的內容。 B1 將用作表中的顯示位置,並指示需要新值,但該值將放在 C1 中。
但是,除非 A1 發生更改,否則它將繼續包含RESET
,因此更改 C1 中的值不會使 B1 顯示新值。 A1 也需要更改,但此要求將建立循環引用,而無需 VBA 或手動幹預。您需要一些東西來檢測新值的輸入並觸發 A1 中的變更。此類操作需要 VBA,或在新值準備好顯示在 B1 後,使用者對 A1 進行手動變更。