2017-06-14 59 views
0

所以我感興趣的使用Excel來分析數據做數學集中的數據奠定了類似下面跳過空白行,並在隨後的非空行

Color | WEIGHT 
------ | ------ 
Blue | 1000 
Blue | 2000 
Blue | 3000 
Red | 4225 
Red | 5000 
Red | 5750 
Yellow | 6250 
Red | 7220 
Red | 9280 
Blue | 9720 
Blue | 11000 
Blue | 12000 

然後,我會找個量例如藍色初始值1000最終值3000的變化2000.對於紅色5750-3000 =變化2750,我知道如何找到顏色變化發生的時間,例如,如果(A1 <> A2,A1,0)。這樣做給我輸出像

Color | WEIGHT 
------ | ------ 
Blue | 1000 | 1000 
Blue | 2000 | 
Blue | 4225 | 
Red | 4225 | 4225 
Red | 5000 | 
Red | 5750 | 
Yellow | 5750 | 5750 
Yellow | 7220 | 
Red | 7220 | 7220 
Red | 9280 | 
Blue | 9280 | 9280 
Blue | 11000 | 
Blue | 12000 | 1200 

我想做一個新的表,顯示顏色和重量的變化。 類似於輸出下面

我使用下面的公式來獲得輸出

=IFERROR(MMULT(AGGREGATE({14,15},6,$B$1:$B$78/($A$1:$A$78=G2),1),{1;-1}),"") 

感謝@XOR LX與上面式 在我的顏色選擇是在G2和我的數據是在A和B

使用這個公式我能得到像

Color|Change 
Blue | 11000 
Red | 5055 
Yellow| 970 

相反的輸出,我想獲得一個OUTP如下所示。

Color|Change 
Blue | 3225 eg (4225-1000) 
Red | 1525 
Yellow| 1570 
Red | 2060 
Blue | 2720 
+0

您的顏色按照升序排列。他們總是**以升序方式排序? – Jeeped

+0

不,他們不是。它可以像紅色,紅色,紅色,藍色,藍色,白色,白色,紅色,紅色,紅色@Jeeped – dgard

+0

權重將始終以升序排列 – dgard

回答

0

陣列式**

=MMULT(INDEX(B:B,N(IF(1,SMALL(IF(MMULT(COUNTIF(E2,CHOOSE({1,2},A$1:A$14,A$2:A$15)),{1;1})=1,LOOKUP(ROW(A$2:A$15),ROW(A$2:A$14))),2*COUNTIF(E$2:E2,E2)-{1,0})))),{-1;1})

其中假定:

1)你有Excel 2010或更高

2)你的表是在A1:B14(第1行標題)

3)您選擇的顏色,例如「藍」,是E2

複製後得到相似的結果顏色E3E4

問候

**數組公式不以同樣的方式輸入爲「標準'公式。您只需按住CTRL和SHIFT鍵,而不是按下ENTER鍵,然後按ENTER鍵。如果你做得對,你會注意到Excel在公式周圍放置了大括號(儘管不要試圖自己手動插入這些)。

+0

嘿,這個工程很好,但我最初提出這個問題時忽略了一些細節。我忽略了一些細節,數據可能會變成藍色,藍色,藍色,紅色,紅色,紅色,藍色,藍色,黃色,綠色等。數據還包括從第一次提到顏色到第一次提到下一個顏色。例如。對於第一個藍色數據集,它實際上將從1000到4225的值,這是紅色的第一個值,而不是藍色的最後一個值。 – dgard

+0

似乎很好,除了一個小問題,它似乎給出了輸出下一個顏色,而不是E2中的顏色。編輯:無視工程很大,一旦我在E1添加標題 – dgard

+0

好聽!別客氣! –