2015-01-20 30 views
0

我有3列遵循下列規則:VBA(EXCEL)2010:具體的腳本如何做,涉及範圍比較

  • 在柱A的任何細胞可能是空的,否則它包含一個字符串。
  • 如果Col A中的一行是空的,Col的B和C中的那一行將爲空。
  • 如果列A中的一行被填充,列B中的那一行將填充整數,列C中的那一行可能爲空或具有「1」。

我需要一個腳本,在柱A的每個細胞,

  1. 檢查單元格中的字符串,並會在山口A.
  2. 所有相同的字符串對於每一行含有所述吻合字符串,檢查列C「1」
  3. 對於上述兩者均爲爲真的每一行,將列B中的值相加,並用該總和替換它們中的每一個。

因此,例如,這樣的:

A B C 
x 1 
x 2 
z 2 1 
y 1 1 
y 2 1 

y 1 
z 2 1 
z 1 1 

應成爲這樣:

A B C 
x 1 
x 2 
z 5 1 
y 3 1 
y 3 1 

y 1 
z 5 1 
z 5 1 

所以3個不同的字符串在柱A,(x和y和z)找到。找到x的重複項,但col B中的值沒有相加,因爲Col C中沒有「1」。找到y的倍數,但只有右邊的「1」被求和。所有被發現的z都有一個「1」,所以所有的都是相加的。

這樣做的最好方法是什麼?請讓我知道,如果我需要澄清這個問題的某些事情(我知道這很複雜,但我花了很多時間試圖儘可能清楚哈哈)。

+0

是什麼阻止你從這裏到達您的目標是什麼?究竟哪一部分你有問題? – 2015-01-21 05:52:22

回答

0

一個簡單的公式應該做的工作:假設數據在A的實測值:C

=IF(ISBLANK(A2),"",IF(ISBLANK(C2),B2, SUMIFS(B:B,A:A,A2,C:C,1))) 

IF顯示什麼時column A是空的。
column C爲空時,內部IF顯示column B
SUMIFS加起來column B其中column A是相同的(如當前行),當column C爲1

+0

那麼,我真的需要這個VBA腳本。此外,我不能假設列的長度,這個腳本將不得不在不知道列長度的情況下工作。不過謝謝你的回覆,這是一個很好的起點。 – AnthonyJS 2015-01-20 22:15:14

+0

我修改了公式以使其在整列上工作。 – Xiaoy312 2015-01-20 22:18:05

+0

謝謝,我當然可以使用這個。如果我想出一些VBA,我會在這裏發佈它。 – AnthonyJS 2015-01-21 13:25:17