2014-12-02 38 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

相关问题