假設我已經將單元格A1-A10填充了數字。我在B1單元格中的初始公式是= A1-A6。但是,我希望刪除單元格A3(如果可能,請將內容保留在刪除下方),並且我希望B1中的公式能夠識別此更改,然後自動將其自動調整爲= A1-A7 (這個想法是我想讓A1在單元格中的數字減去5個「未擊出」單元格中的數字)。然後,如果我打出A5單元格,我希望公式將自己調整爲= A1-A8等等。有誰知道如何做到這一點?動態Excel減法
0
A
回答
1
(編輯#1:誤讀輸入,抱歉)
有點簡單,但做的工作:類型=A1-INDIRECT("A"&SMALL(IF(A:A<>"",ROW(A:A),""),6))
並按CTRL + SHIFT + ENTER,而不是通常的ENTER - 這將定義一個ARRAY公式,並在其周圍產生{}
括號(但不要手動輸入!)。
要加速計算,您可以將A:A替換爲任何有限的範圍。
樣品文件(所得的式是黃色標記):https://www.dropbox.com/s/sy7zkg71xtfgib9/Subtract5th.xlsx
(EDIT#2:誤讀了 「擊出」,對不起)
字體樣式(以及類似的電池特性)可能不會被默認Excel函數讀取,這就是爲什麼你需要添加UDF稱爲StrikeOut
:
- 按ALT - F1 1 - 這將打開VBA編輯器。
- 插入新模塊:
Insert > Module
。在A1:A10
=A1-INDIRECT("A"&(6+StrikeOut(A2:A10)))
- 集刪除線字體的任何細胞:
Function StrikeOut(R As Range) As Long Dim c As Range StrikeOut = 0 For Each c In R.Cells If c.Font.Strikethrough = True Then StrikeOut = StrikeOut + 1 Next End Function
式添加到B1:
代碼添加模塊粘貼。
- 遺憾的是,單元格格式更改不會觸發任何更改事件,因此您需要按F9或更改工作表上的任何單元格值以重新計算並因此更新
B1
中的結果。
樣品文件共享:https://www.dropbox.com/s/n9o7tn3ks3x8nza/StrikeOut.xlsm
P.S.至少對我來說這是非常有用的)))
相關問題
- 1. Excel表中的動態減法公式
- 2. MX:DividedBox動態面板加法和減法
- 3. 減去動態列
- 4. 動態Excel中
- 5. 動態縮減器組合
- 6. 動態ImageIcon減少setFrameIcon
- 7. 如何削減動態串
- 8. 減少在Excel
- 9. 動態PowerQuery在Excel
- 10. Excel的動態列
- 11. 從動態添加的輸入文本JQuery加法/減法
- 12. Excel累計減少
- 13. Excel減去時間
- 14. Excel中的動態範圍
- 15. MS Excel - 動態表格
- 16. 動態Excel VBA篩選器
- 17. Excel多個動態圖形
- 18. 動態Target.Adress Excel VBA中
- 19. 動態列的Excel公式
- 20. 轉表動態地在Excel
- 21. Excel動態下拉列表
- 22. Excel動態數組公式
- 23. Excel VBA宏動態繪圖
- 24. 處理動態excel表
- 25. 動態範圍在Excel
- 26. 動態Excel電子表格
- 27. excel動態範圍公式
- 28. Excel到動態Word表格
- 29. 從Java生成動態Excel
- 30. 移動背景減法(OpenCV)
我試過這個,但不能得到它的工作。如果我點擊一個數字,公式結果不會更新(包括'F9'強制重新計算) –
@請注意,由於我的英語水平不好,我們似乎有一個誤解:我理解爲「清除」,即清除或刪除單元格是空的。你打算什麼意思?文本存在,但它通過一條線? –
我認爲罷工是一個通過它的線。我們將需要OP澄清... –