這是一個要求,我使用Excel來解決這個問題。動態插入功能
在col A
我有0
S和1
s的的1
S之間的0
小號各種數量。每次出現1
時,我都希望在二進制列旁邊的兩列中給出兩個數字之間的差異。不過,我希望從前面的1
旁邊的計算中獲得結果。
我應付不同的軟件,但我如何使用Excel來實現這一目標?
這是一個要求,我使用Excel來解決這個問題。動態插入功能
在col A
我有0
S和1
s的的1
S之間的0
小號各種數量。每次出現1
時,我都希望在二進制列旁邊的兩列中給出兩個數字之間的差異。不過,我希望從前面的1
旁邊的計算中獲得結果。
我應付不同的軟件,但我如何使用Excel來實現這一目標?
=IF(A4=1,OFFSET(B4,MATCH(1,A5:A$1000,0),0)-OFFSET(C4,MATCH(1,A5:A$1000,0),),"")
在D4
並複製下來,以適應似乎工作。
編輯:
=(IF(A$=1, ,"")
是在:IF(logical_test,value_if_true,value_if_false)其中值,如果是假的(空白),表示爲 「」。
的value_if_true
是如=OFFSET(reference,rows,cols,height,width)從OFFSET函數ColumnB
和ColumnC
值,每個「位於」之間的差。
reference
s適用於插入公式的行(即B4
和C4
)的適當列,其中所需值爲「南」的可變金額。
MATCH,as in = MATCH(lookup_value,lookup_array,[match_type])將根據具體情況確定偏移的範圍。按照相反的順序,這裏的參數是match_type
= 0
(要求精確匹配),並且lookup_array
與所需的ColumnA一樣多。最初選擇Row1000(A$1000
),但可以根據需要進行擴展,但必須符合相關Excel版本的行限制。
第一個參數lookup_value
)當然是1
,因爲那是包含要減去的值的行的標誌。
在不和5
在MATCH函數數組的大小自動減小作爲式被複制下來$
之間A
(頂部單元行的參考增大),因此發現下實例(而不是同一一個以上並再次)。
我幾乎不知道它做什麼,但它的工作。非常感謝!! – roarknuppel 2013-05-03 13:10:15
很高興知道有這樣的事情。避免編碼總是更好。 – 2013-05-03 13:19:56
@ user2346636這是我最好的解釋,如果不夠好,我要回家了! – pnuts 2013-05-03 13:26:57
對於VBA,我首先將公式設置爲顯示與「ones」相同的結果。 (假設我使用的d列這一點。)
=如果(A1 = 1; B1 - C1 「;」)
然後,在VBA窗口,執行以下操作:
Dim i as integer
Dim Filled as Collection
Set Filled = new Colleciton 'this collection will stored filled lines
'store filled lines
for i = 2 to 1000 'use your table limit
if Sheet1.Cells(i, 4).Value <> "" then 'the 4 is for D column, i for the line
Filled.Add i
end if
next
'now fill the E column with displaced values
for i = 1 to Filled.Count - 1
Sheet1.Cells(Filled(i), 5).Value = Sheet1.Cells(Filled(i+1), 5).Value
next
'please note there's a missing line (the last), it's up to you to decide how to fill it
'sorry I cannot debug this code
我會將它關聯到一些表單事件或一個按鈕。
如果表太大,請在代碼前將'Application.ScreenUpdating'設置爲false,並且不要忘記在末尾將其重新設置爲'true'。 – 2013-05-03 12:58:06
嗨丹尼爾..這也適用,乾杯! – roarknuppel 2013-05-03 13:13:06
你是什麼意思的「旁邊的陳述」??它是否在第四列的頂部,每個結果之間沒有空格,而不是與各個結果行相對應? – 2013-05-03 12:00:04
嗨,丹尼爾。假設你在第3行和第7行中有一個。然後你在第7行中得到了兩個減法數字,結果需要在第3行。此外,如果下一個數據位於第13行,那麼該行的結果必須在第7行等 – roarknuppel 2013-05-03 12:18:30
我相信你唯一的選擇是使用VBA代碼。 – 2013-05-03 12:21:13