2014-12-02 64 views
0

所以我遇到了一些麻煩,希望有人可以幫助,我試圖模擬天氣。如何計算excel中行之間交互的獨特組合?

我試着去計算在Excel中明確的數據之間的某些交互發生的次數,例如數據集:

 Sunny 
    Sunny 
    Cloudy 
    P-Cloudy 
    Sunny 
    Rainy 
    Cloudy 
    Sunny 
    Sunny 
    Etc... 

所以第一天陽光明媚,第二天陽光明媚的,第三個它的渾濁等等。如何計算每種天氣類型變化的次數,即

Sunny to Sunny  2 
    Sunny to P-Cloudy 0 
    Sunny to Cloudy 1 
    Sunny to Rainy  1 
    Cloudy to P-Cloudy 1 
    Cloudy to Sunny 1 
    Cloudy to Rainy 0 Etc.. 

任何幫助將不勝感激。

+0

像這樣在第二列'= A2& 「到」 &A3'複製下來然後從中創建數據透視表。 – pnuts 2014-12-02 03:22:36

回答

0
Row A   B  C  D       E        F       G 
1  Today  Tomorrow       
2  Sunny  =A3    Sunny      Cloudy      P-Cloudy     Rainy 
3  Sunny  =A4  Sunny =COUNTIFS(a:a,$D3,b:b,E$2) =COUNTIFS(a:a,$D3,b:b,F$2) =COUNTIFS(a:a,$D3,b:b,G$2) =COUNTIFS(a:a,$D3,b:b,H$2) 
4  Cloudy =A5  Cloudy =COUNTIFS(a:a,$D4,b:b,E$2) =COUNTIFS(a:a,$D4,b:b,F$2) =COUNTIFS(a:a,$D4,b:b,G$2) =COUNTIFS(a:a,$D4,b:b,H$2) 
5  P-Cloudy =A6  P-Cloudy =COUNTIFS(a:a,$D5,b:b,E$2) =COUNTIFS(a:a,$D5,b:b,F$2) =COUNTIFS(a:a,$D5,b:b,G$2) =COUNTIFS(a:a,$D5,b:b,H$2) 
6  Sunny  =A7  Rainy =COUNTIFS(a:a,$D6,b:b,E$2) =COUNTIFS(a:a,$D6,b:b,F$2) =COUNTIFS(a:a,$D6,b:b,G$2) =COUNTIFS(a:a,$D6,b:b,H$2) 
7  Rainy  =A8      
8  Cloudy =A9      
9  Sunny  =A10       
10 Sunny       

我希望這有助於。 :)

好吧我不想重寫這個,但所有列引用我會讓他們絕對($ A:$ A & $ B:$ B)只是爲了使複製和粘貼更容易。

話雖這麼說,天在C欄的垂直列表是今天列和行2列表是過渡到下一個

0
  • 只要把你的輸入columnA天氣。
  • B列顯示從一個天氣到另一個天氣的過渡。
  • 列C & d示出了示出了它與的 occurances數排序的順序(但具有一式兩份)
  • ˚F& G爲您的最終結果

子model_weather()

lastrow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row - 1 

For i = 1 To lastrow 
Cells(i, 1) = Trim(Cells(i, 1)) 
Cells(i, 2).Value = Cells(i, 1) & " to " & Cells(i + 1, 1) 
Cells(i, 3).Value = Cells(i, 1) & " to " & Cells(i + 1, 1) 
Next 

Range("C1:C" & lastrow).Sort Key1:=Range("C1:C" & lastrow), Order1:=xlAscending, Header:=xlNo 

temp = 1 

For i = 1 To lastrow 
If Cells(i, 3) = Cells(i + 1, 3) Then 
temp = temp + 1 
Else: temp = 1 
End If 
Cells(i, 4) = temp 
Next 

Range("C1:D" & lastrow).Select 
    Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, _ 
        Key2:=Range("D1"), Order2:=xlAscending, _ 
        Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 
x = 1 
For i = 1 To lastrow 
If Cells(i, 3) <> Cells(i + 1, 3) Then 
Cells(x, 6) = Cells(i, 3) 
Cells(x, 7) = Cells(i, 4) 
x = x + 1 
End If 
Next 

End Sub 

enter image description here

相關問題