[[20150417100923]] 『連続しているデータの連続数を個別に数えたい』(acculi) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『連続しているデータの連続数を個別に数えたい』(acculi)

3年間の業績に応じて10000件の顧客を独自にランク分けしています。
ランクは毎月業績に応じて変更され、行数は10000行近くあります。

    A        B      C     D      E      F 
   2012.4月  2012.5月 2012.6月 2012.7月  2012.8月 2012.9月 

1  ランク1   ランク1  ランク1  ランク1  ランク1  ランク1

2  ランク2   ランク2  ランク1  ランク1  ランク1  ランク1

3  ランク1   ランク1  ランク2  ランク1  ランク1  ランク1

4  ランク2   ランク2  ランク2  ランク3  ランク3  ランク1

5  ランク1   ランク3  ランク1  ランク1  ランク1  ランク1

6  ランク2   ランク2  ランク2  ランク3  ランク1  ランク1

・・・と上記のようなデータが3年分36列、10000行近く続きます。
件数をカウントし各行の37(AK)列目以降にランク1の連続している月数を
表示させたいのですが、困っているのは3行目のようにランク1が途切れて、
再度復活する場合です。
この場合には37(AK3)列目に「2」、38(AL3)列目に「3」と
表示させたいのです。
同様に3年間36列のデータで昇格降格を繰り返す場合には、
37・38・39列というように各行のランク1のそれぞれの連続月数を
表示させたいです。
最終的な目的はランク1の連続寿命を知りたいということと、
2か月連続、3か月連続、4か月連続・・と連続月数ごとに構成比を出したいです。

ご教授のほどよろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 Sub test()
    Dim i As Long
    Dim j As Long
    Dim jMax As Long
    Dim ip As Long
    Dim iFlag As Long
    Dim iDim() As Long

    jMax = Cells(1, Columns.Count).End(xlToLeft).Column

    For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        ip = 0
        iFlag = 0
        ReDim iDim(0)
        For j = 1 To jMax
            If Cells(i, j).Value = "ランク1" Then
                If iFlag = 1 And 0 < iDim(ip) Then
                    ip = ip + 1
                    ReDim Preserve iDim(ip)
                End If
                iDim(ip) = iDim(ip) + 1
                iFlag = 0
            Else
                iFlag = 1
            End If
        Next j
        Cells(i, "AK").Resize(, ip + 1) = iDim
    Next i
 End Sub
(???) 2015/04/17(金) 10:56

???様 ありがとうございました。完璧に出来上がりました。
10000件を1件ずつ見るしかないかと思い、ぞっとしてました。
本当にありがとうございました。
(acculi) 2015/04/17(金) 11:12

 数式で。

 AK1 =IFERROR(INDEX(FREQUENCY(COLUMN($A1:$AK1),($A1:$AJ1<>"ランク1")*COLUMN($A1:$AJ1))-1,SMALL(INDEX((FREQUENCY(COLUMN($A1:$AK1),($A1:$AJ1<>"ランク1")*COLUMN($A1:$AJ1))<3)*10^16+ROW($A$1:$A$37),),COLUMN(A1))),"")

 右、下へコピー。
 
(GobGob) 2015/04/17(金) 13:38

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.