[[20171206105948]] 『「連続する数値の抽出について」[ぱーく] につい』(さりぃ) ページの最後に飛ぶ

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

 

『「連続する数値の抽出について」[ぱーく] について』(さりぃ)

投稿
[[20070612175340]] 『連続する数値の抽出について』(ぱーく) 
について...

この投稿での質問に似ているのですが、オートフィルターで抽出し表示されているセルの1から始まる連番を求める関数かマクロはありますでしょうか?

3 0
4 0
5 0
6 1
7 2
8 3
9 4

上記のようにフィルターで抽出された数値に、左の例のような場合は最大値とせず、右の例のように1から始まる連番のみの最大値を抽出したいです。
ご教授ください。

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


作業列を使用して =A2-A1入力
下にまでフィルして
フィルターで1を抽出

(Q::) 2017/12/06(水) 11:39


早々のご回答、ありがとうございます。

すみません。説明が足りませんでした。

抽出した値は、3 4 5 6 7 0 0 0 1 2 3 4 0 0 0 1 2 3 4 5 6 7 ***のようにゼロと連番が続いています。
その中で可視セルの1から始まる最大値を求めたいです。
(さりぃ) 2017/12/06(水) 11:55


補足: 0の数はまちまちです。
(さりぃ) 2017/12/06(水) 12:53

Sub main()
    '対象がA列のケース
    Dim c As Range, d As Range, ctr As Long, maxctr As Long
    For Each c In Sheets("Sheet1").Range("A:A").SpecialCells(xlCellTypeVisible)
        If c.Value = 1 Then
            ctr = 1
            For Each d In Sheets("Sheet1").UsedRange.Range("A" & c.Row & ":A" & Rows.Count).SpecialCells(xlCellTypeVisible)
                If d.Value = ctr Then
                    ctr = ctr + 1
                Else
                    If ctr - 1 > maxctr Then maxctr = ctr - 1
                    Exit For
                End If
            Next d
        End If
    Next c
    MsgBox maxctr & "が最大"
End Sub
(mm) 2017/12/06(水) 13:08

できました。ありがとうございます。

最後の表示だけ、

    Range("A1").Value = maxctr
と変えさせて頂きました。

早々のご回答、ありがとうございました。
(さりぃ) 2017/12/06(水) 13:43


コメント返信:

[ 一覧(最新更新順) ]


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